Metrik Evaluasi Klasifikasi
Dina Chahyati, Siti Aminah, Ari Wibisono Fakultas Ilmu Komputer Universitas Indonesia
Referensi
• The 5 Classification Evaluation Metrics Every Data Scientist Must Know, Rahul Agarwal, https://towardsdatascience.com/the-5-classification- evaluation-metrics-you-must-know-aa97784ff226
• Tour of Evaluation Metrics for Imbalanced Classification, Jason Brownlee, https://machinelearningmastery.com/tour-of-evaluation-metrics-for-
imbalanced-classification/
• https://turi.com/learn/userguide/evaluation/classification.html
• https://towardsdatascience.com/multi-class-metrics-made-simple-part-ii- the-f1-score-ebe8b2c2ca1
• https://developers.google.com/machine-learning/crash- course/classification/roc-and-auc
• https://neptune.ai/blog/f1-score-accuracy-roc-auc-pr-auc
Pendahuluan
• Bagus atau tidaknya suatu classifier tergantung pada metrik evaluasi yang digunakan
• Jika metrik yang digunakan tidak tepat, maka bisa jadi model yang dipilih tidak bagus, atau bahkan misleading
• Untuk kasus dimana data untuk setiap kelas tidak berimbang (imbalanced class), kita perlu lebih hati-hati karena bisa jadi metrik akan sangat dipengaruhi oleh kelas mayoritas.
• Pemilihan metrik bergantung pada aspek apa yang penting untuk diperhatikan oleh peneliti.
Contoh-contoh Metrik
• Akurasi
• Specificity – Sensitivity
• Precision – Recall
• F1 – F Beta Score
• ROC (Receiver Operating Characteristic)
• AUC (Area Under Curve)
Akurasi
Hasil Tes Positif Hasil Tes Negatif Orang sakit (Kelas +) True Positive (TP) False Negative (FN) Orang sehat (Kelas - ) False Positive (FP) True Negative (TN)
Akurasi = 𝑇𝑃+𝑇𝑁
𝑇𝑃+𝐹𝑁+𝐹𝑃+𝑇𝑁
• Merupakan metric yang paling mudah dipahami
• Dapat digunakan untuk klasifikasi biner maupun multiclass
• Baik digunakan jika tidak ada masalah imbalanced class
Sensitivity - Specificity
Hasil Tes Positif Hasil Tes Negatif Orang sakit (Kelas +) True Positive (TP) False Negative (FN) Orang sehat (Kelas - ) False Positive (FP) True Negative (TN)
• Sensitivity mengitung seberapa baik kelas positif diprediksi dengan benar
Sensitivity = 𝑇𝑃
𝑇𝑃+𝐹𝑁
• Specificity menghitung seberapa baik kelas negatif diprediksi benar
Specificity = 𝑇𝑁
𝐹𝑃+𝑇𝑁
• Sensitivity dan Specificity dapat digabung, disebut dengan geometric mean atau G-mean
G-mean = 𝑠𝑒𝑛𝑠𝑖𝑡𝑖𝑣𝑖𝑡𝑦 ∗ 𝑠𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦
Precision - Recall
Hasil Tes Positif Hasil Tes Negatif Orang sakit (Kelas +) True Positive (TP) False Negative (FN) Orang sehat (Kelas - ) False Positive (FP) True Negative (TN)
• Precision menghitung rasio orang sakit yang diprediksi sakit terhadap kumpulan orang yang hasil tes nya positif
Precision = 𝑇𝑃
𝑇𝑃+𝐹𝑃
• Recall menghitung rasio orang sakit yang diprediksi sakit
terhadap seluruh orang yang sakit (sama dengan sensitivity)
Recall = Sensitivity = 𝑇𝑃
𝑇𝑃+𝐹𝑁
Hati-hati: Jika classifier kita error dan menebak semua sample menjadi positif, maka hasil Recall = 1
F1 Score
• 𝐹1 = 2 ∗ 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗𝑟𝑒𝑐𝑎𝑙𝑙 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙
• Memadukan nilai precision dan recall
• Nilainya antara 0 dan 1
• Disebut harmonic mean dari precision dan recall
• Mengapa tidak menggunakan simple mean dari precision dan recall saja?
• Kita akan lihat dua contoh kasus dimana terjadi imbalanced class
F1 Score
Hasil Tes Positif Hasil Tes Negatif
Orang sakit (Kelas +) 5 1
Orang sehat (Kelas - ) 100 894 Kasus: Imbalanced Class
• Akurasi : 0.899
• Precision: 5/105 = 0.048
• Recall : 5/6 = 0.833
• Simple Mean = (0.048+0.833)/2= 0.4405
• Harmonic Mean = 𝐹1 = 2 ∗ 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗𝑟𝑒𝑐𝑎𝑙𝑙
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙 = 2 ∗ 0.04
0.881 = 0.09
• Pada kasus ini, simple mean menghasilkan nilai yang masih tinggi (0.4405)
• Harmonic Mean (F1) menunjukkan angka yang mendekati 0, karena Precision juga mendekati 0
• Intuisi: Nilai F1 baru akan besar kalau kedua nilai precision dan recall besar.
Jika ada salah satu yang rendah, maka nilai F1 juga akan rendah)
• Alat tes/classifier ini tidak ideal karena masih banyak orang sehat yang dinyatakan positif.
• Akurasi (0.899) tidak baik digunakan karena misleading
F-Beta Score
• F1 score memberikan bobot yang sama untuk precision dan recall.
• Jika kita ingin mementingkan salah satunya, maka kita bisa menambahkan bobot 𝛽 pada precision
• Rumusnya menjadi sebagai berikut
F-Beta Score
• Pada kasus dimana kita ingin menghindari FP (cost kesalahan FP sangat besar), maka
direkomendasikan untuk menggunakan Beta = 0.5
• Contoh kasus di samping
Precision = 𝑇𝑃
𝑇𝑃+𝐹𝑃 = 5
105 = 0.048
Recall = 𝑇𝑃
𝑇𝑃+𝐹𝑁 = 5
6 = 0.833
𝐹1 = 2 ∗ 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗𝑟𝑒𝑐𝑎𝑙𝑙
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙 = 2 ∗ 0.04
0.881 = 𝟎. 𝟎𝟗
𝐹0.5 = 1 + 0.52 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛∙𝑟𝑒𝑐𝑎𝑙𝑙 (0.52∙𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙)
= 1.25 0.04
0.25 0.048 +0.833 = 0.05
0.845 = 𝟎. 𝟎𝟔
𝐹2 = 5 0.04
4 0.048 +0.833 = 0.2
1.025 = 𝟎. 𝟏𝟗
Hasil Tes Positif
Hasil Tes Negatif Orang sakit
(Kelas +)
5 1
Orang sehat (Kelas - )
100 894
Pada Kasus ini, FP masih sangat tinggi (100 kejadian), sehingga precision rendah.
Maka kita menginginkan metrik yang memberi
penilaian paling buruk untuk classifier ini pilih 𝐹0.5
F-Beta Score
• Pada kasus dimana kita ingin menghindari FN (cost kesalahan FN sangat besar), maka
direkomendasikan untuk menggunakan Beta = 2
• Contoh kasus di samping
Precision = 𝑇𝑃
𝑇𝑃+𝐹𝑃 = 6
7 = 0.857
Recall = 𝑇𝑃
𝑇𝑃+𝐹𝑁 = 6
10 = 0.6
𝐹1 = 2 ∗ 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗𝑟𝑒𝑐𝑎𝑙𝑙
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙 = 2 ∗ 0.514
1.457 = 𝟎. 𝟕𝟎
𝐹0.5 = 1.25 0.514
0.25 0.857 +0.6 = 0.6425
0.8142 = 𝟎. 𝟕𝟗
𝐹2 = 5 0.514
4 0.857 +0.6 = 2.57
4.028 = 𝟎. 𝟔𝟒
Hasil Tes Positif
Hasil Tes Negatif Orang sakit
(Kelas +)
6 4
Orang sehat (Kelas - )
1 9
Pada Kasus ini, FN masih sangat tinggi (4 kejadian), sehingga recall rendah.
Maka kita menginginkan metrik yang memberi
penilaian paling buruk untuk classifier ini pilih 𝐹2
F-Beta Score
• 𝐹0.5 = 0.49 𝐹0.5 = 0.46
• 𝐹1 = 0.47 𝐹1 = 0.47
• 𝐹2 = 0.46 𝐹2 = 0.49
• Classifier mana yang dipilih jika FP diinginkan minimal? Apa metrik yang sesuai?
• Classifier mana yang dipilih jika FN diinginkan minimal? Apa metrik yang sesuai?
Classifier A Hasil Tes Positif
Hasil Tes Negatif Orang sakit
(Kelas +)
5 6
Orang sehat (Kelas - )
5 5
Classifier B Hasil Tes Positif
Hasil Tes Negatif Orang sakit
(Kelas +)
5 5
Orang sehat (Kelas - )
6 5
Klasifikasi dengan Threshold
• Seringkali kita menggunakan thresholding untuk menentukan apakah suatu objek termasuk dalam suatu kelas tertentu
• Misal, alat tes positif sakit dalam contoh sebelumnya mengeluarkan angka dari 0 - 1
– Jika digunakan threshold 0.8, maka orang yang ditest dinyatakan positif jika hasil tes menunjukkan angka >= 0.8
• Cenderung akan sedikit kasus False Positive, tapi False Negative bisa jadi tinggi
– Jika digunakan threshold 0.4, maka orang yang ditest dinyatakan positif jika hasil tes menunjukkan angka >= 0.4
• Cenderung akan banyak kasus False Positive, tapi False Negative jadi rendah
• Menentukan threshold tidak mudah, maka dibuat metric untuk
ROC
• ROC: Receiver Operating Characteristic
• Merupakan kurva yang dibentuk dengan mem-plot nilai True Positive Rate (TPR) terhadap False Positive Rate (FPR) pada bermacam threshold.
• TPR = Sensitivitiy = Recall
• FPR = FP/(TN+FP) = 1 – Specificity
ROC
• Contoh: suatu alat menunjukkan hasil sebagai berikut ketika digunakan
beberapa threshold
• Threshold 0 tidak berguna, karena semua dianggap positif sakit
• Thrshold 1 tidak berguna, karena tidak ada yang dianggap sakit
Thres
hold TP FN FP TN Spec 1- Spec
Sens
1.0 0 50 0 50 1 0 0
0.9 30 20 3 47 0.94 0.06 0.6
… … … … … … … …
0.6 40 10 5 45 0.9 0.1 0.9
0.2 45 5 30 20 0.4 0.6 0.95
0 50 0 50 0 0 1 1
https://towardsdatascience.com/the-5-
ROC
• Kita mengharapkan
classifier / alat tes yang kinerjanya mendekati kurva hijau
• Kita tidak menginginkan kurva yang kinerja
mendekati kurva merah
https://machinelearningmastery.com/tour-of- evaluation-metrics-for-imbalanced-classification/
(image source)
AUC
• AUC = Area Under ROC Curve
• Merupakan luas dari daerah dibawah kuva ROC
• Menunjukkan probabilitas kelas positif dapat dipisahkan dari kelas negative
• Contoh sebelumnya, luas daerah dibawah kurva hijau mendekati 1, artinya kinerjanya baik
• AUC bersifat scale-invariant
– It measures how well predictions are ranked, rather than their absolute values.
– (caveat) Scale invariance is not always desirable. For example, sometimes we really do need well calibrated probability outputs, and AUC won’t tell us about that.
AUC
• AUC bersifat threshold-invariant, karena memperlihatkan kinerja classifier di berbagai nilai threshold, tidak seperti F1 score yang masih bergantung pada satu nilai threshold saja.
– Caveat: Classification-threshold invariance is not always desirable. In cases where there are wide disparities in the cost of false negatives vs. false positives, it may be critical to minimize one type of classification error. For example, when doing email spam detection, you likely want to
prioritize minimizing false positives (even if that results in a significant increase of false negatives). AUC isn't a useful metric for this type of optimization.
PR-AUC
• PR-AUC: Area Under Precision vs Recall Curve
• Direkomendasikan jika kelas positif lebih penting, karena PR lebih sensitive terhadap perubahan pada kelas positif
• Biasanya terjadi ketika datanya imbalance, dimana kasus positif jarang ditemukan dibanding kasus negatif
• Misalkan suatu penelitian deteksi kanker paru menunjukkan hasil seperti berikut ini. Metode deteksi mana yang paling baik kinerjanya?
Computer-aided diagnosis of lung carcinoma using deep learning – a pilot study https://arxiv.org/ftp/arxi v/papers/1803/1803.054 71.pdf
Contoh AUC ROC
Brier Score
• Pada beberapa metode klasifikasi, outputnya tidak langsung berupa kelas, namun berupa probabilitas suatu sample masuk ke suatu kelas
• Kelas biner: hanya ada kelas 0 dan kelas 1
• Rumus: 𝐵𝑆 = 1
𝑁 𝑡=1𝑁 𝑓𝑡 − 𝑜𝑡 2
• 𝑓𝑡 adalah nilai yang dikeluarkan oleh classifier
• 𝑜𝑡 adalah kelas sesungguhnya dari sampel (0 atau 1)
Multiclass
• Jika jumlah kelas lebih dari dua, maka perhitungan nilai akurasi, precision, recall, F1, dst dapat menggunakan pendekatan sebagai berikut:
– micro: Calculate metrics globally by counting the total number of times each class was correctly predicted and incorrectly predicted.
– macro: Calculate metrics for each "class" independently, and find their unweighted mean. This does not take label imbalance into account.
Contoh Multiclass: Macro
https://towardsdatascience.com/multi-class-metrics-made- simple-part-ii-the-f1-score-ebe8b2c2ca1
Macro-F1 = (42.1% + 30.8% + 66.7%) / 3 = 46.5%
Macro-precision = (31% + 67% + 67%) / 3 = 54.7%
Macro-recall = (67% + 20% + 67%) / 3 = 51.1%
Ketika menghitung TP untuk Cat, anggap hanya ada 2 kelas yaitu
Cat dan Non-Cat
Cat Precision = 4/13 = 30.8%
Cat Recall = 4/6 = 66.6%
True Cat True Non- Cat
Pred Cat 4 9
Pred Non- Cat
2 10
Contoh Multiclass: Micro
Pada penghitungan Micro, nilai FP, TP, FN, TN dihitung langsung dari tabel confusion matrix tersebut.
• TP = 4 + 2 + 6 = 12
• FP = 6 + 3 + 1 + 0 + 1 + 2 = 13
• False Negative: jika cat dianggap sebagai fish, maka itu dianggap false negative, sehingga nilainya sama dengan FP
• Micro Precision = 12/(12 + 13) = 48%
• Micro Recall = 12/(12+13) = 48%
• Karena nilai Micro precision = micro recall, maka nilai micro-F1 juga akan sama dengan kedua nilai ini.