Cara menghitung skor f1 di r (dengan contoh)


Saat menggunakan model klasifikasi dalam pembelajaran mesin, metrik umum yang kami gunakan untuk mengevaluasi kualitas model adalah skor F1 .

Metrik ini dihitung sebagai berikut:

Skor F1 = 2 * (Presisi * Recall) / (Presisi + Recall)

Emas:

  • Akurasi : Benar prediksi positif relatif terhadap total prediksi positif
  • Pengingat : Mengoreksi prediksi positif terhadap total positif aktual

Misalnya, kita menggunakan model regresi logistik untuk memprediksi apakah 400 pemain bola basket perguruan tinggi yang berbeda akan direkrut ke NBA atau tidak.

Matriks konfusi berikut merangkum prediksi yang dibuat oleh model:

Berikut cara menghitung skor F1 model:

Akurasi = Positif Benar / (Positif Benar + Positif Palsu) = 120/ (120+70) = 0,63157

Penarikan kembali = Benar Positif / (Positif Benar + Negatif Palsu) = 120 / (120+40) = 0,75

Skor F1 = 2 * (.63157 * .75) / (.63157 + .75) = . 6857

Contoh berikut menunjukkan cara menghitung skor F1 untuk model eksak ini di R.

Contoh: Menghitung skor F1 di R

Kode berikut menunjukkan cara menggunakan fungsi ConfusionMatrix() dari paket caret di R untuk menghitung skor F1 (dan metrik lainnya) untuk model regresi logistik tertentu:

 library (caret)

#define vectors of actual values and predicted values
actual <- factor(rep(c(1, 0), times=c(160, 240)))
pred <- factor(rep(c(1, 0, 1, 0), times=c(120, 40, 70, 170)))

#create confusion matrix and calculate metrics related to confusion matrix
confusionMatrix(pred, actual, mode = " everything ", positive=" 1 ")

          Reference
Prediction 0 1
         0 170 40
         1 70 120
                                          
               Accuracy: 0.725           
                 95% CI: (0.6784, 0.7682)
    No Information Rate: 0.6             
    P-Value [Acc > NIR]: 1.176e-07       
                                          
                  Kappa: 0.4444          
                                          
 Mcnemar's Test P-Value: 0.005692        
                                          
            Sensitivity: 0.7500          
            Specificity: 0.7083          
         Pos Pred Value: 0.6316          
         Neg Pred Value: 0.8095          
              Accuracy: 0.6316          
                 Recall: 0.7500          
                     F1: 0.6857          
             Prevalence: 0.4000          
         Detection Rate: 0.3000          
   Detection Prevalence: 0.4750          
      Balanced Accuracy: 0.7292          
                                          
       'Positive' Class: 1

Kita melihat bahwa skor F1 adalah 0,6857 . Ini cocok dengan nilai yang kami hitung secara manual sebelumnya.

Catatan : Kita perlu menentukan mode=”semuanya” agar skor F1 ditampilkan di output.

Jika Anda menggunakan skor F1 untuk membandingkan beberapa model, model dengan skor F1 tertinggi mewakili model yang paling mampu mengklasifikasikan observasi ke dalam kelas.

Misalnya, jika Anda memasukkan model regresi logistik lain ke dalam data dan model tersebut memiliki skor F1 sebesar 0,85, model tersebut akan dianggap lebih baik karena memiliki skor F1 yang lebih tinggi.

Sumber daya tambahan

Bagaimana melakukan regresi logistik di R
Skor F1 vs Akurasi: Mana yang Harus Anda Gunakan?

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *