Memahami Confusion Matrix: Accuracy, Precision, Recall, Specificity, dan F1-Score untuk Evaluasi Model Klasifikasi
Evaluasi model adalah proses penting yang membantu kita memahami sejauh mana model kita berhasil dalam menghasilkan prediksi yang diharapkan. Untuk mengevaluasi, kita bisa mengambil contoh dari latihan menendang bola dalam permainan sepak bola. Catatan diambil tentang berapa kali bola mengenai gawang dan berapa kali bola meleset. Bola yang mengenai gawang menandakan prediksi yang benar, sedangkan bola meleset menunjukkan prediksi yang salah. Hasil ini kemudian digunakan untuk mengukur dan, jika perlu, meningkatkan keterampilan menendang bola.
Dalam data mining, text mining ataupun machine learning, evaluasi model juga penting untuk memastikan bahwa model kita bekerja dengan baik dalam menghasilkan prediksi yang tepat. Sebagai contoh, kita bisa menggunakan evaluasi model untuk melihat seberapa baik model kita membedakan teks yang bersifat positif atau negatif. Dengan evaluasi ini, kita bisa mendapatkan gambaran tentang seberapa sukses model kita dalam menjalankan tugas yang diinginkan.
1. Mengenal Evaluasi Model
Memahami evaluasi model adalah langkah penting dalam analisis data terstruktur maupun tidak terstruktur. Evaluasi model membantu kita mengetahui seberapa baik model kita dalam memberikan hasil yang tepat. Untuk mengevaluasi model, kita dapat menggunakan beberapa metode atau ukuran yang bisa memberikan gambaran objektif tentang kinerja model. Beberapa ukuran yang sering digunakan adalah akurasi, presisi, recall, specificity, dan F1-score. Dengan mengerti evaluasi model, kita bisa melihat kelebihan dan kekurangan model yang kita buat. Sehingga, kita bisa melakukan perbaikan agar model tersebut bisa memberikan hasil yang lebih baik.
2. Confusion Matrix
Confusion matrix atau matriks kebingungan adalah alat yang digunakan untuk menggambarkan kinerja model klasifikasi pada data uji yang sudah diketahui hasil sebenarnya. Mudahnya, kita bisa membayangkan sebuah permainan di mana ada dua kotak, satu berisi kelereng biru dan yang lainnya berisi kelereng merah. Model kita bertugas menebak warna kelereng yang kita ambil dari kotak tanpa melihatnya. Ketika model kita menebak benar, misalnya model bilang kita ambil kelereng biru dan ternyata memang benar kita ambil kelereng biru, kita mencatat sebagai poin benar. Jika model salah menebak, misalnya model bilang kita ambil kelereng merah padahal kita ambil kelereng biru, kita mencatat sebagai poin salah.
Confusion matrix merupakan cara kita mencatat poin benar dan poin salah tersebut. Di dalam matriks ini, kita tulis semua kemungkinan jawaban yang benar dan jawaban yang salah. Dari catatan ini, kita bisa mengetahui seberapa baik model kita dalam menebak kelereng dan apa yang perlu diperbaiki agar model kita makin pintar menebak. Dalam confusion matrix, ada 4 bagian yang penting untuk kita ketahui. Seluruh bagian tersebut digabung menjadi tabel sederhana seperti di bawah ini. Tujuan utama dari confusion matrix adalah untuk memvisualisasikan dan menganalisis hasil prediksi yang dibuat oleh model, sehingga kita bisa lebih mudah memahami kelebihan dan kekurangan model dalam mengklasifikasikan data.
Untuk memahami tabel di atas, kita akan menggunakan contoh kasus “COVID-19”. Di asumsikan kita membuat model klasifikasi menggunakan dataset COVID-19 yang memiliki label atau class “positif” dan “negatif”. Berikut penjelasan keempat bagian dalam confusion matrix yang ditampilkan pada tabel di atas:
- True Positive (TP): merupakan jumlah tebakan yang benar, di mana model kita menebak seseorang terinfeksi COVID-19, dan kenyataannya memang benar. Misalnya, model menebak seseorang positif COVID-19, dan hasil tes memang menunjukkan positif COVID-19.
- True Negative (TN): merupakan jumlah tebakan yang benar, di mana model kita menebak seseorang tidak terinfeksi COVID-19, dan kenyataannya memang benar. Misalnya, model menebak seseorang negatif COVID-19, dan hasil tes memang menunjukkan negatif COVID-19.
- False Positive (FP): merupakan jumlah tebakan di mana model kita menebak seseorang terinfeksi COVID-19, tapi kenyataannya itu salah. Misalnya, model menebak seseorang positif COVID-19, padahal hasil tes sebenarnya menunjukkan negatif COVID-19.
- False Negative (FN): merupakan jumlah tebakan di mana model kita menebak seseorang tidak terinfeksi COVID-19, tapi kenyataannya itu salah. Misalnya, model menebak seseorang negatif COVID-19, padahal hasil tes sebenarnya menunjukkan positif COVID-19.
Sampai di sini, apakah penjelasan di atas dapat dipahami dengan baik? Jika belum, kita akan menggunakan contoh lain yang lebih mudah untuk memahami apa itu confusion matrix. Kasus yang akan kita gunakan adalah model klasifikasi foto hewan yang terdiri dari 20 record atau tupel[2]. Dataset tersebut memiliki dua label atau class yaitu “kucing” dan “anjing”. Masing-masing class memiliki sebanyak 7 dan 13 record seperti gambar berikut:
Dari gambar di atas, hal pertama yang harus kita perhatikan adalah x label (Predicted values) dan y label (actual values)[4]. Menurut gambar tersebut, kucing diidentifikasi pada data aktual sebagai class positif dan anjing sebagai class negatif. Namun, model klasifikasi yang dibuat dapat memprediksi dengan benar class kucing sebanyak 6 record dan class anjing sebanyak 11 record.
Pertanyaan selanjutnya yang mungkin muncul “bagaimana dengan 3 data lainnya? Apakah model dapat memprediksi dengan benar atau justru salah?” Menurut gambar di atas, model memprediksi 1 data yang seharusnya memiliki class “kucing” menjadi class “anjing”. Begitu juga untuk 2 data lainnya, model memprediksi data yang seharusnya memiliki class “anjing” ke dalam class “kucing”. Dari penjelasan tersebut, dapat ditarik kesimpulan seperti berikut:
- True Positive (TP) = 6: Artinya, ada 6 kali model kita berhasil menebak dengan benar bahwa foto tersebut adalah kucing, dan kenyataannya memang benar foto tersebut menampilkan kucing.
- True Negative (TN) = 11: Artinya, ada 11 kali model kita berhasil menebak dengan benar bahwa foto tersebut bukan kucing (atau anjing), dan kenyataannya memang benar foto tersebut menampilkan anjing.
- False Positive (FP) = 2: Artinya, ada 2 kali model kita salah menebak bahwa foto tersebut adalah kucing, padahal kenyataannya foto tersebut menampilkan anjing.
- False Negative (FN) = 1: Artinya, ada 1 kali model kita salah menebak bahwa foto tersebut bukan kucing (atau anjing), padahal kenyataannya foto tersebut menampilkan kucing.
Agar mendapatkan pemahaman yang semakin baik, pada contoh berikutnya kita akan menghitung confusion matrix menggunakan dataset yang berisi review film “Upin & Ipin”. Dataset ini berisi 15 record yang terdiri dari class “positif” dan “negatif” seperti berikut:
Terlihat pada dataset di atas, model memprediksi dengan salah data ke 3, 5, 6, 11, dan 12 sehingga tabel confusion matrix yang dihasilkan seperti berikut:
Penjelasan:
- Di pojok kiri atas (6), ada enam review yang sebenarnya positif dan diprediksi sebagai positif. Ini adalah hasil yang benar atau True Positives (TP).
- Di pojok kanan bawah (4), ada empat review yang sebenarnya negatif dan diprediksi sebagai negatif. Ini juga hasil yang benar atau True Negatives (TN).
- Di pojok kiri bawah (2), ada dua review yang sebenarnya negatif, tetapi diprediksi sebagai positif. Ini adalah kesalahan atau False Positives (FP).
- Di pojok kanan atas (3), ada tiga review yang sebenarnya positif, tetapi diprediksi sebagai negatif. Ini juga kesalahan atau False Negatives (FN).
Setelah mempelajari confusion matrix, mungkin ada yang bertanya, “Mengapa kita perlu mengenal dan memahami confusion matrix ini?” Jawaban dari pertanyaan tersebut terdapat materi selanjutnya. Penting untuk mengingat dan memahami posisi dari setiap elemen dalam confusion matrix dengan tepat, karena hal tersebut akan sangat membantu dalam proses evaluasi model dan meningkatkan pemahaman kita tentang kinerja model dalam memprediksi hasil yang diinginkan.
2.1. Akurasi (Accuracy)
Akurasi adalah metrik evaluasi yang mengukur seberapa baik model membuat prediksi yang benar dari total prediksi yang dilakukan. Dalam konteks klasifikasi, akurasi memberikan gambaran mengenai seberapa sering model memprediksi kelas yang benar, baik itu kelas positif maupun negatif. Nilai akurasi akan menjawab pertanyaan sejauh mana model yang digunakan mampu memprediksi sentimen review film secara keseluruhan dengan benar. Dalam konteks review film, akurasi menggambarkan persentase prediksi yang benar (True Positive dan True Negative) dibandingkan dengan total jumlah review.
Dengan menggunakan nilai akurasi, kita bisa mengetahui seberapa baik model dalam mengidentifikasi review film sebagai positif atau negatif secara keseluruhan. Namun, perlu diingat bahwa akurasi saja mungkin tidak cukup untuk mengevaluasi kinerja model secara menyeluruh, terutama jika data tidak seimbang atau memiliki biaya yang berbeda untuk kesalahan jenis yang berbeda.
Data tidak seimbang adalah situasi di mana jumlah sampel untuk setiap kelas dalam data tidak sama atau jauh berbeda. Misalnya, jika dalam kumpulan data ada 95% sampel positif dan hanya 5% sampel negatif, data tersebut dianggap tidak seimbang. Dalam kasus seperti ini, akurasi mungkin tidak memberikan gambaran yang akurat tentang kinerja model, karena model yang hanya memprediksi kelas mayoritas (dalam hal ini, positif) akan memiliki akurasi tinggi, tetapi mungkin tidak bekerja dengan baik pada kelas minoritas (negatif).
Sedangkan biaya yang berbeda untuk kesalahan jenis yang berbeda mengacu pada situasi di mana konsekuensi dari salah mengklasifikasikan satu jenis data lebih serius daripada yang lain. Sebagai contoh, dalam konteks medis, salah mengklasifikasikan pasien yang sebenarnya sakit (False Negative) mungkin memiliki konsekuensi yang lebih serius daripada salah mengklasifikasikan pasien yang sebenarnya sehat (False Positive). Dalam kasus seperti ini, akurasi mungkin tidak memberikan gambaran yang cukup baik tentang kinerja model, karena tidak mempertimbangkan konsekuensi yang berbeda dari kesalahan klasifikasi yang berbeda.
Untuk menghitung nilai akurasi, kita dapat menggunakan persamaan matematika berikut:
Untuk mempermudah pemahaman, rumus di atas akan kita implementasikan pada kasus yang kita miliki sebelumnya yaitu data review film Upin & Ipin:
Sehingga, akurasi model dalam memprediksi sentimen review film adalah 0.67 atau 67%. Dalam konteks ini, artinya model berhasil memprediksi 67% dari total review film dengan benar, baik itu review positif maupun negatif. Jadi, dalam kasus ini, model berhasil memprediksi 10 review (6 review positif dan 4 review negatif) dengan benar dari total 15 review yang ada.
Dengan mengetahui akurasi, kita dapat menilai sejauh mana model berhasil dalam melakukan klasifikasi. Namun, perlu diingat kembali bahwa akurasi mungkin tidak selalu menjadi metrik terbaik, terutama ketika data tidak seimbang atau ketika ada biaya yang berbeda untuk kesalahan jenis yang berbeda (seperti False Positive dan False Negative). Oleh karena itu, penting untuk mempertimbangkan metrik evaluasi lain seperti presisi, recall, dan F1 score dalam mengukur kinerja model.
2.2. Presisi (Precision)
Presisi adalah metrik evaluasi yang mengukur seberapa baik model membuat prediksi yang benar untuk kelas positif dari total prediksi positif yang dilakukan. Dalam konteks klasifikasi, presisi memberikan gambaran mengenai seberapa sering model memprediksi kelas positif dengan benar, di antara semua prediksi positif yang dibuat oleh model. Nilai presisi akan menjawab pertanyaan sejauh mana model yang digunakan mampu memprediksi sentimen review film yang sebenarnya positif dengan benar. Dalam konteks review film, presisi menggambarkan persentase prediksi positif yang benar (True Positive) dibandingkan dengan total jumlah prediksi positif (True Positive dan False Positive).
Dengan menggunakan nilai presisi, kita bisa mengetahui seberapa baik model dalam mengidentifikasi review film sebagai positif tanpa salah mengklasifikasikan review negatif sebagai positif. Presisi sangat penting dalam situasi di mana biaya kesalahan False Positive lebih tinggi daripada kesalahan False Negative, misalnya dalam kasus diagnosis medis atau deteksi spam. Data tidak seimbang dan biaya yang berbeda untuk kesalahan jenis yang berbeda telah dijelaskan pada penjelasan akurasi sebelumnya. Dalam kasus di mana presisi lebih penting daripada akurasi, seperti ketika kita ingin memastikan bahwa model tidak salah mengklasifikasikan review negatif sebagai positif, kita bisa fokus pada metrik presisi.
Untuk menghitung presisi, kita bisa menggunakan rumus matematika berikut:
Rumus ini akan kita gunakan pada contoh data review film Upin & Ipin yang telah kita bahas sebelumnya. Berikut ini implementasi perhitungannya:
Dari hasil ini, presisi model dalam memprediksi sentimen review film yang sebenarnya positif adalah 0.75 atau 75%. Dalam konteks ini, artinya model berhasil memprediksi 75% dari total prediksi positif dengan benar. Jadi, dalam kasus ini, model berhasil memprediksi 6 review positif dengan benar dari total 8 prediksi positif yang dibuat oleh model.
Dengan mengetahui presisi, kita dapat menilai sejauh mana model berhasil dalam melakukan klasifikasi yang lebih fokus pada kelas positif dan mengurangi kesalahan jenis False Positive. Namun, perlu diingat bahwa presisi saja mungkin tidak selalu menjadi metrik terbaik, terutama ketika kita perlu mempertimbangkan kinerja model dalam mengklasifikasikan kelas negatif juga. Oleh karena itu, penting untuk mempertimbangkan metrik evaluasi lain seperti recall dan F1 score dalam mengukur kinerja model.
2.3. Sensitivitas (Recall)
Sensitivitas (Recall) adalah metrik evaluasi yang menggambarkan seberapa baik suatu model dalam mengidentifikasi kelas positif dengan benar. Dalam kasus review film Upin & Ipin, Recall akan menunjukkan kemampuan model kita untuk mengenali review positif yang sebenarnya. Sebagai analogi, bayangkan kita sedang mencari jarum di tumpukan jerami. Recall menggambarkan seberapa baik kita menemukan semua jarum yang ada di tumpukan tersebut. Jika kita menemukan 6 dari 10 dari jarum ditumpukan Jerami tersebut, artinya kita masih melewatkan 4 jarum yang belum ditemukan.
Nilai Recall akan menjawab pertanyaan sejauh mana model kita mampu mengenali dan mengklasifikasikan review positif dengan benar. Dalam konteks review film, ini penting karena kita ingin mengetahui seberapa akurat model kita dalam mengidentifikasi review yang memuji film, sehingga kita bisa memahami bagaimana film tersebut diterima oleh penonton.
Untuk menghitung nilai Recall, kita dapat menggunakan persamaan matematika berikut:
Dari hasil perhitungan, kita dapat menyimpulkan bahwa model kita memiliki Recall sebesar 67%, yang berarti model berhasil mengenali 67% review positif dengan benar. Namun, ini juga berarti model melewatkan 33% review positif yang sebenarnya (False Negatif). Kelebihan dari Recall adalah bahwa metrik ini fokus pada mengurangi kesalahan False Negative, sehingga kita bisa memastikan bahwa sebanyak mungkin review positif diidentifikasi dengan benar. Namun, perlu diingat bahwa Recall saja mungkin tidak selalu menjadi metrik evaluasi terbaik, terutama ketika kita perlu mempertimbangkan kinerja model dalam mengklasifikasikan kelas negatif juga. Oleh karena itu, penting untuk mempertimbangkan metrik evaluasi lain seperti Presisi dan F1 Score dalam mengukur kinerja model.
2.4. Spesifisitas (Specificity)
Spesifisitas (Specificity) merupakan metrik evaluasi yang menunjukkan seberapa efektif suatu model dalam mengklasifikasikan kelas negatif secara akurat. Menggunakan contoh review film Upin & Ipin, Specificity menggambarkan kemampuan model kita untuk membedakan review negatif yang asli. Sebagai ilustrasi, anggaplah kita sedang mencari kelereng di antara tumpukan pasir. Specificity menggambarkan betapa handalnya kita dalam menemukan seluruh kelereng yang ada di tumpukan pasir tersebut. Misalkan kita menemukan 4 dari 6 kelereng, artinya kita masih melewatkan 2 kelereng yang seharusnya ditemukan.
Nilai Specificity akan menjelaskan sejauh mana model kita berhasil mengenali dan mengklasifikasikan review negatif secara tepat. Dalam konteks review film, hal ini penting karena kita ingin menilai seberapa akurat model kita dalam mendeteksi review yang memberikan kritik terhadap film, sehingga kita bisa memperoleh gambaran tentang bagaimana film tersebut diterima oleh penonton.
Untuk menghitung Spesifisitas, kita gunakan rumus berikut:
Berdasarkan hasil perhitungan, kita bisa menyimpulkan bahwa model kita memiliki Specificity sebesar 67%, yang berarti model berhasil mengenali 67% review negatif secara akurat. Namun, ini juga berarti bahwa model masih melewatkan 33% review negatif yang sebenarnya (False Positif). Keunggulan Specificity adalah metrik ini fokus pada pengurangan kesalahan False Positive, sehingga kita bisa memastikan sebanyak mungkin review negatif teridentifikasi dengan tepat. Akan tetapi, hanya mengandalkan Specificity mungkin tidak cukup untuk menilai kinerja model, terutama jika kita ingin memperhatikan kinerja model dalam mengklasifikasikan kelas positif juga. Oleh karena itu, penting untuk mempertimbangkan metrik evaluasi lain seperti Sensitivitas (Recall) dan F1 Score dalam mengukur kinerja model.
2.5. F1-Score
F1 Score merupakan metrik evaluasi yang mencerminkan keseimbangan antara Presisi (Precision) dan Sensitivitas (Recall). Dalam konteks review film Upin & Ipin, F1 Score memberikan gambaran mengenai seberapa baik model kita dalam mengklasifikasikan baik review positif maupun negatif secara akurat. Sebagai contoh, bayangkan kita ingin menilai kinerja seorang penjaga gawang dalam pertandingan sepak bola. F1 Score akan menggabungkan kemampuan penjaga gawang untuk melakukan penyelamatan (Presisi) dan mencegah gol (Sensitivitas) dalam satu angka yang mencerminkan kinerja keseluruhan.
Nilai F1 Score akan memberikan informasi tentang seberapa baik model kita dalam menggabungkan kemampuan Presisi dan Sensitivitas, sehingga kita bisa memahami seberapa efektif model kita dalam mengklasifikasikan review film secara akurat. Dalam konteks review film, ini penting karena kita ingin memastikan bahwa model kita efisien dalam mengidentifikasi review positif dan negatif dengan benar, agar kita dapat memahami bagaimana film tersebut diterima oleh penonton.
Untuk menghitung F1 Score, kita menggunakan rumus matematika berikut:
Dari perhitungan ini, kita bisa menyimpulkan bahwa F1 Score model kita adalah 0.71 atau 71%, yang menunjukkan keseimbangan antara Presisi dan Sensitivitas (Recall). Kelebihan dari F1 Score adalah metrik ini mempertimbangkan kedua aspek kinerja model (Presisi dan Sensitivitas) dalam satu angka, sehingga kita bisa mendapatkan gambaran yang lebih lengkap tentang kinerja model. Namun, perlu diingat bahwa F1 Score mungkin tidak selalu menjadi metrik evaluasi terbaik dalam semua situasi, terutama jika kita ingin fokus pada kinerja model dalam mengklasifikasikan salah satu kelas saja. Oleh karena itu, penting untuk mempertimbangkan metrik evaluasi lain seperti Presisi, Sensitivitas, dan Specificity dalam mengukur kinerja model.
3. Panduan Memilih Metriks Evaluasi
Setelah kita mempelajari berbagai metriks evaluasi di atas, mungkin akan muncul pertanyaan dalam benak kita “apakah seluruh metriks evaluasi tersebut harus digunakan dalam model yang kita buat?” Jawabannya, tidak. Untuk menentukan keberhasilan sebuah model klasifikasi merupakan salah satu tugas yang menantang. Sering kali, kita terjebak dengan asumsi jika model yang menghasilkan nilai akurasi yang tinggi merepresentasikan nilai terbaik. Namun, faktanya tidak semudah itu.
Secara sederhana, kasus di atas dapat kita analogikan saat seorang tukang akan membangun rumah. Berbagai alat dan metode bisa digunakan untuk memastikan rumah tersebut dibangun dengan baik. Tukang tersebut akan memilih alat berdasarkan apa yang ingin dicapai. Misalnya, tukang akan memilih waterpass[3] untuk memastikan jika lantai rumah sudah rata. Di sisi lain, tukang akan menggunakan meteran untuk memastikan tinggi dinding sesuai dengan ketentuan. Secara umum, tidak ada alat yang lebih baik dari alat lainnya. Karena, pemilihan fungsionalitas alat didasarkan pada tujuan yang akan dicapai.
Dalam konteks model klasifikasi, akurasi, recall, precision, specificity, dan F1 score merupakan alat yang digunakan oleh tukang (pengembang model) dengan berbagai tujuan masing-masing. Memilih metriks yang tepat bukan hanya soal melihat angka yang paling tinggi. Namun, metriks terbaik adalah yang paling relevan dengan tujuan yang hendak kita capai dalam membangun model tersebut [4].
Sebelum melanjutkan, pastikan analogi di atas dapat dipahami dengan baik agar terhindar dari perasaan pusing yang mungkin tiba-tiba muncul di masa yang akan datang. Jika sudah dapat dipahami dengan baik, berikutnya akan ditampilkan panduan memilih metriks evaluasi dalam bentuk tabel. Tujuannya, agar dapat dipahami dengan mudah:
Itulah penjelasan singkat terkait evaluasi model. Semoga dapat dipahami dengan baik. Tetap semangat dan jangan pernah menyerah, karena penderitaan lainnya masih banyak yang menunggu ☺️.
[1] Disebut juga baris
[2] Posisi ini bisa saja berbeda-beda, seperti pada tabel sebelumnya “actual values” berada di posisi x label.
[3] Alat untuk mengukur sebuah benda atau garis dalam posisi rata baik secara vertikal maupun horizontal.
[4] https://towardsdatascience.com/accuracy-precision-recall-or-f1-331fb37c5cb9