Mengapa Evaluasi Model Itu Penting
Dalam dunia machine learning, membuat model yang mampu memprediksi dengan akurat hanyalah setengah dari perjalanan. Tahap penting berikutnya adalah mengevaluasi performa model — apakah model benar-benar memahami pola data atau hanya “menebak” secara acak.
Banyak pemula hanya berfokus pada akurasi, padahal angka akurasi tinggi tidak selalu berarti model bekerja dengan baik, terutama jika dataset tidak seimbang (misalnya, 95% data negatif dan 5% positif).
Untuk memahami performa model secara menyeluruh, kita menggunakan alat yang disebut Confusion Matrix, yaitu sebuah tabel yang menunjukkan perbandingan antara prediksi model dan data sebenarnya.
Artikel ini akan membahas secara lengkap cara menghitung, membaca, dan menginterpretasikan Confusion Matrix, lengkap dengan rumus, contoh kasus, dan visualisasi.
Apa Itu Confusion Matrix
Confusion Matrix adalah tabel evaluasi yang digunakan untuk menilai hasil dari algoritma klasifikasi. Matriks ini membandingkan hasil prediksi model dengan label aktual untuk melihat berapa banyak prediksi yang benar dan salah.
Biasanya Confusion Matrix berbentuk tabel 2×2, terdiri dari empat nilai utama:
- TP (True Positive) — model benar memprediksi positif.
- TN (True Negative) — model benar memprediksi negatif.
- FP (False Positive) — model salah memprediksi positif.
- FN (False Negative) — model salah memprediksi negatif.
Dengan Confusion Matrix, kita bisa menghitung berbagai metrik penting seperti Accuracy, Precision, Recall, dan F1-Score, yang jauh lebih informatif daripada akurasi tunggal.
Contoh sederhana:
Jika model memprediksi apakah pasien mengidap penyakit tertentu, maka:
- TP = pasien sakit yang benar terdeteksi.
- FP = pasien sehat tapi terdeteksi sakit.
- FN = pasien sakit tapi tidak terdeteksi.
- TN = pasien sehat yang benar dinyatakan sehat.
Komponen Dasar: TP, FP, TN, dan FN
Setiap elemen Confusion Matrix punya arti yang spesifik:
| Komponen | Arti | Contoh Kasus Medis |
|---|---|---|
| True Positive (TP) | Prediksi = Positif, Data = Positif | Model mendeteksi pasien benar-benar sakit |
| True Negative (TN) | Prediksi = Negatif, Data = Negatif | Model mendeteksi pasien sehat |
| False Positive (FP) | Prediksi = Positif, Data = Negatif | Model salah mendeteksi pasien sehat sebagai sakit |
| False Negative (FN) | Prediksi = Negatif, Data = Positif | Model gagal mendeteksi pasien yang sebenarnya sakit |
Kesalahan FP dan FN memiliki dampak besar tergantung konteks. Misalnya dalam deteksi penyakit, FN lebih berbahaya karena pasien yang sakit bisa tidak terobati.
Oleh karena itu, memahami makna tiap komponen sangat penting sebelum melakukan evaluasi numerik.
Cara Menghitung Confusion Matrix
Langkah-langkah Perhitungan Manual
- Siapkan data aktual dan hasil prediksi.
- Hitung jumlah TP, TN, FP, FN dari hasil klasifikasi.
- Gunakan rumus berikut untuk mendapatkan metrik evaluasi:
| Metrik | Rumus | Arti |
|---|---|---|
| Accuracy | (TP + TN) / (TP + TN + FP + FN) | Persentase prediksi yang benar |
| Precision | TP / (TP + FP) | Ketepatan model dalam memprediksi positif |
| Recall (Sensitivity) | TP / (TP + FN) | Kemampuan model mendeteksi kasus positif |
| F1-Score | 2 × (Precision × Recall) / (Precision + Recall) | Keseimbangan antara Precision dan Recall |
💡 Contoh:
Misal hasil prediksi model:
TP = 80, TN = 50, FP = 10, FN = 20
Maka:
- Accuracy = (80 + 50) / 160 = 81.25%
- Precision = 80 / (80 + 10) = 88.9%
- Recall = 80 / (80 + 20) = 80%
- F1 = 2 × (0.889 × 0.8) / (0.889 + 0.8) = 84.2%
Contoh Menggunakan Python (Scikit-Learn)
from sklearn.metrics import confusion_matrix, classification_report
y_true = [1,0,1,1,0,0,1,0,1,0]
y_pred = [1,0,0,1,0,1,1,0,1,0]
cm = confusion_matrix(y_true, y_pred)
print(cm)
print(classification_report(y_true, y_pred))
Output akan menampilkan tabel Confusion Matrix serta nilai precision, recall, dan F1-score untuk tiap kelas.
Cara Membaca dan Menginterpretasikan Confusion Matrix
Setelah menghitung Confusion Matrix, langkah selanjutnya adalah memahami apa arti hasilnya.
- Nilai diagonal (TP & TN) menunjukkan prediksi yang benar.
- Nilai luar diagonal (FP & FN) menunjukkan kesalahan model.
- Model yang baik memiliki nilai TP & TN tinggi, serta FP & FN rendah.
- Recall tinggi penting untuk kasus yang sensitif terhadap “miss detection” (misalnya diagnosis penyakit).
- Precision tinggi penting untuk menghindari kesalahan deteksi positif palsu (misalnya deteksi spam).
Contoh:
Jika model spam filter memiliki Recall tinggi tapi Precision rendah, berarti model sering mendeteksi spam dengan baik, tapi kadang email penting ikut terblokir.
Kesimpulannya, tidak ada metrik tunggal yang sempurna. Evaluasi harus mempertimbangkan konteks bisnis atau aplikasi nyata.
Contoh Studi Kasus: Prediksi Penyakit Menggunakan Confusion Matrix
📋 Kasus:
Model klasifikasi digunakan untuk mendeteksi pasien COVID-19 berdasarkan data medis.
| Prediksi | Aktual Positif | Aktual Negatif |
|---|---|---|
| Positif | 85 | 15 |
| Negatif | 10 | 90 |
- TP = 85, FP = 15, FN = 10, TN = 90
📈 Hasil Perhitungan:
- Accuracy = (85 + 90) / 200 = 87.5%
- Precision = 85 / (85 + 15) = 85%
- Recall = 85 / (85 + 10) = 89.5%
- F1-Score = 2 × (0.85 × 0.895) / (0.85 + 0.895) ≈ 87.2%
Interpretasi:
Model ini memiliki performa cukup baik karena mendeteksi sebagian besar kasus positif dengan error yang relatif kecil. Namun, FP masih bisa dikurangi agar hasil diagnosis lebih akurat.
Kesalahan Umum dalam Membaca Confusion Matrix
Beberapa kesalahan umum yang sering terjadi:
- Menganggap akurasi tinggi selalu bagus — padahal bisa jadi model bias ke kelas mayoritas.
- Tidak membedakan FP dan FN padahal dampaknya berbeda.
- Mengabaikan Recall pada kasus penting seperti fraud atau kesehatan.
- Tidak memperhatikan dataset tidak seimbang (imbalanced data).
- Tidak menggunakan visualisasi untuk memahami pola kesalahan model.
Solusi terbaik adalah menggunakan metrik kombinasi (Precision, Recall, F1) dan selalu memeriksa confusion matrix heatmap untuk gambaran yang lebih jelas.
Visualisasi Confusion Matrix
Visualisasi sangat membantu dalam menjelaskan performa model kepada tim non-teknis.
Dengan menggunakan Python + Seaborn, kita bisa menampilkan Confusion Matrix dalam bentuk heatmap yang mudah dibaca:
import seaborn as sns
import matplotlib.pyplot as plt
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
plt.xlabel('Prediksi')
plt.ylabel('Aktual')
plt.title('Visualisasi Confusion Matrix')
plt.show()
Hasilnya menampilkan grafik dengan warna intensitas tinggi pada area yang paling sering diprediksi dengan benar. Ini sangat efektif untuk laporan penelitian atau presentasi proyek data science.
Temukan juga artikel terkait Cara mudah menghitung dan menentukan analisis regresi linear
Confusion Matrix Multi-Class
Nah, untuk penjelasan yang lebih sederhana dan mudah di mengerti, saya akan mencoba memberi contoh kasus pada 3 kelas dengan nama yang berbeda yaitu jeruk, pepaya dan anggur.

Pada contoh di atas adalah kasus penyelesaian 3 kelas yang sudah terisi nilainya. Tidak seperti pada klasifikasi biner diatas, untuk penyelesaian daripada 3 kelas ini adalah kamu harus mencari nilai
TP, TN, FP dan FN pada masing-masing kelas. Oke, daripada akan semakin bingung , kita akan mencoba menghitung nilai Accuracy dari tabel di atas.
Menghitung Accruracy
Rumus Accuracy kali ini sedikit berbeda dengan rumus pada kasus binari klasifikasi. Pada kasus ini rumus yang digunakan adalah (TP / Jumlah Data ).
Untuk mencari nilai TP kamu harus mencari pada masing-masing kelas yang pada kondisi kelas aktual mampu di prediksi dengan benar. Contoh di atas adalah pada tabel yang bewarna Biru.
- TP = 7 + 2 + 1
- Jumlah Data = 36
- Accuracy = TP / Jumlah Data
- 10 / 36 = 0,277
Menghitung Precision
Untuk menghitung nilai presisi, kamu harus menghitung nilai presisi dari masing masing kelas kemudian menjumlahkan dan mencari nilai reratanya. Contoh penyelesaiannya ;
Rumus Precision = TP / (TP + FP)

Tabel di atas adalah hasil perolehan nilai precision dari masing-masing tiap kelasnya. Kemudian kamu tambahkan semua nilai terus dibagi jumlah kelas. Nah, ini sama hal nya dengan mencari nilai rerata dari semua presisi untuk dijadikan satu nilai presisi.
- All Precision = Precision A + B + C / Jumlah Kelas
- 0,29 + 0,33 + 0,16 / 3 = 0, 67.
Menghitung Recall
Sama halnya dengan menghitung nilai presisi tadi, untuk mencari nilai recall juga harus di tentukan nilai dari masing-masing kelasnya, yang kemudian akan ditentukan nilai rerata dari masing recall tersebut. Contoh penyelesaian ;
Rumus Recall / Sensitivity = TP / (TP + FN)

Setelah sudah ditentukan nilai masing-masing recall dari setiap kelas nya, seperti tadi kamu harus mencari nilai rerata dari semua nilai dengan menjumlahkan dan dibagi jumlah kelas.
Rumusnya adalah
- All Recall = Recall A + B + C / Jumlah Kelas
- 0,63 + 0,16 + 0,08 / 3 = 0,29.
FAQ: Pertanyaan Umum Tentang Confusion Matrix
Sebuah tabel evaluasi untuk menilai seberapa akurat model klasifikasi memprediksi data.
(TP + TN) / (TP + TN + FP + FN)
Precision fokus pada ketepatan prediksi positif, sedangkan Recall fokus pada kemampuan mendeteksi semua kasus positif.
Ya, hanya saja bentuknya lebih besar (misalnya 3×3 atau 4×4 tergantung jumlah kelas).
Karena membantu mengidentifikasi kelemahan model, bukan sekadar melihat angka akurasi.
Kesimpulan: Kuasai Evaluasi Model dengan Confusion Matrix
Confusion Matrix bukan sekadar tabel angka — ini adalah alat fundamental untuk memahami performa model klasifikasi.
Dengan mengetahui cara menghitung dan membaca hasilnya, kamu bisa:
- Mengevaluasi model secara objektif.
- Menemukan kesalahan klasifikasi (FP, FN).
- Mengoptimalkan algoritma dengan menyesuaikan threshold atau data training.
Dalam dunia data science dan AI modern, memahami Confusion Matrix adalah langkah wajib untuk menjadi praktisi yang benar-benar menguasai evaluasi model berbasis data.
Referensi :



