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?