Memahami Confusion Matrix PrecisionRecall Dan F1Score

Gambar Sampul (Gambar oleh Canva, diedit dengan izin oleh penulis)Saat saya memeriksa beberapa buku catatan di Kaggle beberapa hari terakhir, saya tidak bisa tidak memperhatikan beberapa buku catatan yang berjudul “Mencapai 100% akurasi pada nama_dataset”, “Akurasi 100% sempurna menggunakan nama_ogaritma”, bersama dengan berbagai panduan lain tentang cara mencapai akurasi 100% pada setiap kumpulan data yang akan Anda temukan. Sementara beberapa dari notebook ini melakukan pekerjaan yang baik dalam membangun model umum untuk dataset dan memberikan hasil yang cukup bagus, sebagian besar dari mereka hanya overfitting pada data.

Overfitting adalah produksi analisis yang berhubungan terlalu dekat atau persis dengan kumpulan data tertentu, dan karena itu mungkin gagal untuk menyesuaikan data tambahan atau memprediksi pengamatan di masa depan dengan andal – Wikipedia

Dan bagian paling menyedihkan dari semua ini? Mereka bahkan tidak menyadari bahwa mereka overfitting pada dataset saat mencoba mencapai angka emas itu. Sebagian besar notebook ini ditemukan pada kumpulan data ramah pemula seperti “kumpulan data Iris” atau “kumpulan data Titanic” dan itu masuk akal, bukan? Sebagian besar dari kita saat memulai lintasan Machine Learning hanya diajarkan satu hal: “Akurasi penting” . Dan meskipun ini benar, itu hanya penting sampai batas tertentu. Inilah mengapa saya akan membahas beberapa metrik kinerja lainnya seperti Confusion Matrix, Precision-Recall, dan F1-Score yang harus Anda pertimbangkan untuk digunakan bersama dengan Akurasi saat mengevaluasi model Machine Learning. Mari kita mulai.

Di bidang pembelajaran mesin dan khususnya masalah klasifikasi statistik, matriks kebingungan , juga dikenal sebagai matriks kesalahan, adalah tata letak tabel khusus yang memungkinkan visualisasi kinerja suatu algoritma, biasanya pembelajaran yang diawasi. – Wikipedia

Confusion Matrix untuk masalah klasifikasi dua kelas (Sumber Gambar: Penulis)Untuk memahami matriks kebingungan mari kita pertimbangkan masalah klasifikasi dua kelas dengan dua hasil menjadi “Positif” dan “Negatif”. Dengan adanya titik data untuk diprediksi, hasil model akan menjadi salah satu dari keduanya.

Jika kita memplot nilai prediksi terhadap nilai kebenaran dasar (aktual), kita mendapatkan matriks dengan elemen perwakilan berikut:

True Positives (TP): Ini adalah titik data yang hasil aktualnya positif dan algoritme mengidentifikasinya dengan benar sebagai positif.

True Negatives (TN): Ini adalah titik data yang hasil aktualnya negatif dan algoritme mengidentifikasinya dengan benar sebagai negatif.

False Positives (FP): Ini adalah titik data yang hasil aktualnya negatif tetapi algoritme salah mengidentifikasinya sebagai positif.

False Negatives (FN): Ini adalah titik data yang hasil aktualnya positif tetapi algoritme salah mengidentifikasinya sebagai negatif.

Seperti yang dapat Anda tebak, tujuan mengevaluasi model menggunakan matriks konfusi adalah untuk memaksimalkan nilai TP dan TN serta meminimalkan nilai FP dan FN.

Untuk memahami konsep ini dengan lebih baik, mari kita ambil contoh kehidupan nyata: Prediksi penyakit jantung. Dalam hal ini, hasilnya adalah pasien menderita penyakit jantung atau tidak. Matriks konfusi akan terlihat seperti ini:

Confusion Matrix untuk prediksi penyakit jantung (Sumber Gambar: Penulis)Di sini, TP berarti pasien benar-benar menderita penyakit jantung dan algoritme memprediksinya dengan benar. TN berarti pasien tidak menderita penyakit jantung dan algoritme memprediksinya dengan benar. Jadi, tujuannya adalah untuk menjaga nilai-nilai ini setinggi mungkin.

Bagaimana matriks konfusi membantu mendeteksi overfitting?
Untuk memahami hal ini, mari kita perhatikan contoh penyakit jantung. Sebagian besar waktu ketika kita berurusan dengan kasus penggunaan medis, ada kemungkinan besar memiliki kumpulan data yang miring, yaitu salah satu variabel target akan memiliki lebih banyak titik data daripada yang lain. Dalam kasus ini, sebagian besar orang yang menjalani tes tidak akan didiagnosis dengan penyakit jantung. Karena itu, ada ketidakseimbangan (skewness) dalam dataset.

Contoh Penyakit Jantung yang menggambarkan kumpulan data miring (Sumber Gambar: Penulis)Jika kita melatih model pada dataset yang ditunjukkan pada gambar di atas, karena jumlah titik data pasien yang tidak mengidap penyakit jantung jauh lebih banyak daripada pasien yang mengidap penyakit jantung, maka model akan bias ke target yang memiliki lebih banyak titik data (terutama jika kita mengevaluasi model hanya berdasarkan akurasinya).

Sekarang, setelah pelatihan, jika kita menguji model pada set pengujian (yang memiliki 8000 titik data untuk pasien yang tidak menderita penyakit jantung dan hanya 2000 titik data untuk pasien yang mengidap penyakit jantung), bahkan jika model tersebut memprediksi bahwa semua 10.000 titik data tidak tidak memiliki penyakit jantung, akurasinya masih mencapai 80%. Hal ini dapat menyesatkan terutama di bidang di mana risiko Negatif Palsu harus diabaikan (Model yang memprediksi pasien yang menderita penyakit jantung sebagai pasien yang tidak menderita penyakit jantung akan terbukti sangat fatal).

Di sinilah matriks kebingungan berperan. Untuk skenario di atas, matriks kebingungan akan terlihat seperti ini:

Confusion Matrix untuk skenario yang dijelaskan di atas (Sumber Gambar: Penulis)Sekarang, jika Anda melihat matriks konfusi bersama dengan keakuratan model, kami dapat dengan jelas mengidentifikasi bahwa model overfitting pada set data pelatihan karena memprediksi setiap titik data yang tidak diketahui sebagai pasien yang tidak menderita penyakit jantung. Jika bukan karena matriks kebingungan, kami tidak akan pernah tahu masalah yang mendasarinya.

Paket belajar scikit menyertakan Confusion Matrix. Anda dapat melihat dokumentasi resminya di sini .

Sekarang setelah Anda memahami apa yang dilakukan Confusion Matrix, akan lebih mudah untuk memahami Precision-Recall.

Kami telah melihat bagaimana akurasi dapat menyesatkan dalam beberapa kasus. Presisi dan Perolehan membantu kita lebih memahami seberapa kuat akurasi yang ditunjukkan berlaku untuk masalah tertentu.

Presisi (juga disebut nilai prediksi positif ) adalah bagian dari instance yang relevan di antara instance yang diambil, sementara Recall (juga dikenal sebagai sensitivitas ) adalah bagian dari jumlah total instance relevan yang benar-benar diambil. Baik presisi maupun perolehan didasarkan pada pemahaman dan ukuran relevansi . – Wikipedia

Secara sederhana, presisi berarti berapa persen dari prediksi positif yang dibuat benar-benar benar.

Formula Presisi (Sumber Gambar: Penulis)Dalam contoh penyakit jantung kita, akan terlihat seperti ini:

Contoh Presisi (Sumber Gambar: Penulis)Ini dapat diterjemahkan ke dalam bahasa sederhana sebagai, dari semua pasien yang diklasifikasikan menderita penyakit jantung, berapa banyak dari mereka yang benar-benar menderita penyakit jantung?

Mengingat dalam istilah sederhana, berapa persen dari prediksi positif aktual yang diklasifikasikan dengan benar oleh pengklasifikasi.

Recall Formula (Sumber Gambar: Penulis)Dalam contoh kami, akan terlihat seperti ini:

Ingat Contoh (Sumber Gambar: Penulis)Ini pada dasarnya bertanya, dari semua pasien yang menderita penyakit jantung, berapa banyak yang diklasifikasikan menderita penyakit jantung?

Rumusnya mungkin tampak agak identik pada awalnya, tetapi setelah Anda memahami intinya, akan lebih sulit untuk membedakan keduanya.

Precision-Recall juga tersedia dalam paket scikit learn. Anda dapat melihat dokumentasi resminya di sini .

Trade-Off Presisi-Recall
Misalkan kita melatih Pengklasifikasi Regresi Logistik untuk mengidentifikasi apakah pasien menderita penyakit jantung atau tidak. Ini akan memprediksi bahwa pasien menderita penyakit jantung jika probabilitas (ambang) lebih besar dari atau sama dengan 0,5 dan pasien tidak menderita penyakit jantung jika probabilitasnya kurang dari 0,5.

Sekarang, jika kita ingin membuat model sedemikian rupa sehingga dapat memprediksi apakah pasien menderita penyakit jantung hanya jika sangat yakin dengan hipotesisnya, kita mungkin harus menaikkan ambang menjadi 0,7 atau 0,8.

Dalam skenario ini, kami berakhir dengan pengklasifikasi yang memiliki presisi tinggi dan perolehan rendah . Presisi lebih tinggi karena sekarang pengklasifikasi lebih yakin bahwa pasien mengidap penyakit jantung. Ingatkan lebih rendah karena sekarang setelah ambang pengklasifikasi ditetapkan begitu tinggi, akan ada lebih sedikit pasien yang diklasifikasikan menderita penyakit jantung.

Alternatif untuk ini adalah kami membangun model sedemikian rupa sehingga tidak akan melewatkan kemungkinan kasus pasien yang menderita penyakit jantung (untuk menghindari negatif palsu). Jika seorang pasien yang mengidap penyakit jantung tidak diketahui oleh model, itu bisa berakibat fatal. Dalam hal ini, kami menurunkan ambang menjadi 0,2 atau 0,3 sehingga meskipun ada sedikit kemungkinan pasien mungkin menderita penyakit jantung, hal itu menimbulkan peringatan dan diagnosis lebih lanjut dapat dilakukan untuk membuktikan hipotesis.

Apa yang kami miliki di sini adalah contoh recall tinggi dan presisi rendah . Daya ingat lebih tinggi karena kami akan mengklasifikasikan sejumlah besar pasien yang menderita penyakit jantung. Ketepatan yang lebih rendah karena dari sejumlah besar pasien yang diprediksi menderita penyakit jantung, beberapa dari mereka sebenarnya tidak akan menderita penyakit jantung setelah diagnosis lebih lanjut.

Secara umum, nilai presisi-recall terus berubah saat Anda menambah atau mengurangi ambang batas. Membangun model dengan presisi atau perolehan yang lebih tinggi bergantung pada pernyataan masalah yang Anda hadapi dan persyaratannya.

Nilai Precision-Recall dapat sangat berguna untuk memahami performa algoritme tertentu dan juga membantu dalam menghasilkan hasil berdasarkan persyaratan. Tetapi ketika harus membandingkan beberapa algoritme yang dilatih pada data yang sama, menjadi sulit untuk memahami algoritme mana yang lebih cocok dengan data hanya berdasarkan nilai Precision-Recall.

Algoritme mana yang lebih baik hanya berdasarkan nilai Precision-Recall? (Sumber Gambar: Penulis)Oleh karena itu, ada kebutuhan akan metrik yang mengambil nilai presisi-recall dan memberikan representasi standar dari nilai-nilai tersebut.

Dalam analisis statistik klasifikasi biner, skor F1 (juga skor – F atau ukuran-F ) adalah ukuran akurasi tes. Ini dihitung dari presisi dan penarikan kembali tes, di mana presisi adalah jumlah hasil positif yang diidentifikasi dengan benar dibagi dengan jumlah semua hasil positif, termasuk yang tidak diidentifikasi dengan benar, dan penarikan kembali adalah jumlah hasil positif yang diidentifikasi dengan benar dibagi dengan jumlah semua sampel yang seharusnya diidentifikasi sebagai positif. – Wikipedia

Skor F1 juga dapat digambarkan sebagai rata-rata harmonis atau rata-rata tertimbang dari presisi dan perolehan.

Formula Skor F1 (Sumber Gambar: Penulis)Memiliki nilai presisi atau perolehan sebagai 0 tidak diinginkan dan karenanya akan memberi kita skor F1 0 (terendah). Sebaliknya, jika nilai presisi dan perolehan sama-sama 1, skor F1 1 menunjukkan nilai presisi-recall yang sempurna. Semua nilai tengah lainnya dari skor F1 berkisar antara 0 dan 1.

Skor F1 juga tersedia dalam paket belajar scikit. Anda dapat melihat dokumentasi resminya di sini .

Saya harap artikel ini membantu Anda memahami istilah Confusion Matrix, Precision-Recall, dan F1 Score. Menggunakan metrik ini pasti akan membantu Anda mendapatkan gambaran yang lebih baik tentang performa model Anda. Setelah Anda sepenuhnya memahami konsep ini, Anda juga dapat melihat beberapa metrik evaluasi lainnya seperti Kerugian log, kurva KOP-AUC, Crossentropy Kategoris, dan banyak lagi.