Mulai sekarangMulai gratis

Pertukaran Precision-Recall

Saat mengerjakan tugas klasifikasi, istilah Precision-Recall trade-off sering muncul. Dari mana asalnya?

Biasanya, kelas dengan probabilitas tertinggi dipilih untuk menetapkan suatu dokumen. Namun, bagaimana jika probabilitas maksimum bernilai 0.1? Haruskah Anda menganggap dokumen tersebut termasuk ke kelas itu dengan probabilitas hanya 10%?

Jawabannya tergantung pada masalah yang dihadapi. Anda dapat menambahkan ambang minimum untuk menerima hasil klasifikasi, dan ketika ambang ini diubah, nilai precision dan recall akan bergerak berlawanan arah.

Variabel y_true dan model model sudah dimuat. Selain itu, jika probabilitas lebih rendah daripada ambang, dokumen akan ditetapkan ke DEFAULT_CLASS (dipilih sebagai kelas 2).

Latihan ini merupakan bagian dari kursus

Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Lihat Kursus

Instruksi latihan

  • Gunakan metode .predict() untuk memperoleh probabilitas tiap kelas dan simpan ke variabel pred_probabilities.
  • Terima probabilitas maksimum hanya jika nilainya lebih besar atau sama dengan 0.5 dan simpan hasilnya ke variabel y_pred_50.
  • Gunakan fungsi np.argmax() dan np.max() untuk melakukan hal yang sama untuk ambang bernilai 0.8.
  • Cetak variabel trade_off beserta seluruh metriknya.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# Get probabilities for each class
pred_probabilities = model.____(X_test)

# Thresholds at 0.5 and 0.8
y_pred_50 = [np.argmax(x) if np.max(x) >= ____ else DEFAULT_CLASS for x in pred_probabilities]
y_pred_80 = [np.____(x) if np.____(x) >= 0.8 else DEFAULT_CLASS for x in pred_probabilities]

trade_off = pd.DataFrame({
    'Precision_50': precision_score(y_true, y_pred_50, average=None), 
    'Precision_80': precision_score(y_true, y_pred_80, average=None), 
    'Recall_50': recall_score(y_true, y_pred_50, average=None), 
    'Recall_80': recall_score(y_true, y_pred_80, average=None)}, 
  index=['Class 1', 'Class 2', 'Class 3'])

____
Edit dan Jalankan Kode