×

Cara Membaca Confusion Matrix untuk Evaluasi Model

Laptop menampilkan tabel confusion matrix dan catatan rumus precision recall di meja kerja

Cara Membaca Confusion Matrix untuk Evaluasi Model

Model klasifikasi Anda melaporkan akurasi 96 persen, tetapi tim produk mengeluh sistem sering melewatkan kasus penting. Kejadian ini umum terjadi ketika kelas data tidak seimbang dan akurasi jadi angka yang menipu. Confusion matrix memperlihatkan di mana model benar dan di mana ia salah, sehingga Anda bisa memutuskan perbaikan yang tepat.

Apa Itu Confusion Matrix

Confusion matrix adalah tabel yang menyilangkan label aktual dengan label prediksi. Untuk klasifikasi biner, tabelnya berukuran 2×2 dan berisi empat angka: true positive (TP), false positive (FP), false negative (FN), dan true negative (TN).

Empat sel itu cukup untuk menjawab dua pertanyaan: berapa banyak kasus positif yang berhasil ditangkap, dan berapa banyak yang lolos.

Membaca Empat Sel Dasar

  • True positive (TP): data positif yang diprediksi positif.
  • True negative (TN): data negatif yang diprediksi negatif.
  • False positive (FP): data negatif yang diprediksi positif, sering disebut alarm palsu.
  • False negative (FN): data positif yang diprediksi negatif, kasus yang terlewat.

Menghitung Metrik dari Confusion Matrix

Dari empat angka di atas, Anda bisa menurunkan metrik yang lebih informatif daripada akurasi.

Precision

Precision mengukur seberapa banyak prediksi positif yang benar-benar positif. Rumusnya TP dibagi (TP + FP). Nilai tinggi berarti model jarang memberi alarm palsu.

Recall

Recall mengukur seberapa banyak kasus positif aktual yang berhasil ditemukan. Rumusnya TP dibagi (TP + FN). Nilai tinggi berarti model jarang melewatkan kasus positif.

F1-Score

F1 adalah rata-rata harmonik precision dan recall. Metrik ini berguna ketika Anda perlu menyeimbangkan keduanya dan tidak bisa mengorbankan salah satu.

Accuracy

Accuracy adalah jumlah prediksi benar dibagi total data, yaitu (TP + TN) dibagi seluruh sampel. Angka ini tetap berguna, tetapi jangan jadikan satu-satunya patokan pada data tidak seimbang.

Contoh Kasus dengan Scikit-Learn

Misalkan Anda melatih model untuk mendeteksi transaksi mencurigakan. Hanya 2 persen transaksi yang benar-benar fraud, sisanya normal. Model yang selalu menebak “normal” akan mendapat akurasi 98 persen, tetapi recall-nya nol karena tidak ada fraud yang tertangkap.

Kode berikut mencetak confusion matrix dan laporan klasifikasi dari model sederhana.

from sklearn.metrics import confusion_matrix, classification_report
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

model = LogisticRegression(class_weight="balanced")
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))

Baris pertama hasil confusion matrix adalah kelas negatif, baris kedua kelas positif. Urutan label mengikuti hasil sorted(set(y)) kecuali Anda menentukan sendiri lewat argumen labels.

Menyesuaikan Threshold

Sebagian model mengembalikan probabilitas, bukan label langsung. Anda bisa menggeser ambang keputusan untuk menaikkan recall atau precision sesuai kebutuhan.

import numpy as np

proba = model.predict_proba(X_test)[:, 1]
y_pred_baru = (proba >= 0.3).astype(int)

print(confusion_matrix(y_test, y_pred_baru))

Menurunkan threshold dari 0.5 ke 0.3 biasanya menaikkan recall dan menurunkan precision. Perubahan ini masuk akal untuk skrining awal, karena Anda lebih memilih memeriksa beberapa kasus palsu daripada melewatkan kasus nyata.

Lima Kesalahan Umum Saat Membaca Confusion Matrix

  1. Melaporkan akurasi saja pada data tidak seimbang, lalu menyimpulkan model sudah baik padahal recall rendah.
  2. Tertukar antara baris dan kolom sehingga precision dan recall dihitung terbalik.
  3. Lupa mencatat urutan label positif ketika kelas lebih dari dua, sehingga angka per kelas tertukar.
  4. Menghitung metrik pada data latih, bukan data uji, sehingga hasilnya terlalu optimistis.
  5. Mengabaikan biaya kesalahan. Melewatkan satu kasus fraud bisa jauh lebih mahal daripada satu alarm palsu.

Kapan Memilih Precision atau Recall

Tidak ada satu metrik yang cocok untuk semua masalah. Pilihan bergantung pada konsekuensi kesalahan di domain Anda.

Konteks Metrik utama Alasan
Filter spam Precision Email penting yang salah masuk folder spam lebih merugikan daripada satu spam lolos.
Skrining penyakit Recall Melewatkan pasien positif berisiko tinggi, meski memeriksa ulang kasus palsu.
Rekomendasi produk F1 atau precision Rekomendasi keliru cepat menurunkan kepercayaan pengguna.
Deteksi anomali sistem Recall Anomali yang tidak terdeteksi bisa memicu gangguan layanan.

Melaporkan Hasil ke Tim Non-Teknis

Angka mentah sering membingungkan. Terjemahkan metrik menjadi konsekuensi nyata, misalnya “dari 100 transaksi fraud, model menangkap 87 dan melewatkan 13” daripada menyebut F1 sebesar 0.87. Cara ini memudahkan pengambilan keputusan terkait ambang batas dan alokasi pemeriksaan manual.

Ringkasan

Confusion matrix menunjukkan pola kesalahan model lewat empat angka dasar. Dari situ Anda menurunkan precision, recall, dan F1, lalu memilih metrik yang paling sesuai dengan biaya kesalahan di domain Anda. Untuk data tidak seimbang, kombinasikan confusion matrix dengan metrik per kelas dan jangan bergantung pada akurasi saja.

Pertanyaan yang Sering Diajukan

Apa bedanya confusion matrix dan classification report?

Confusion matrix menampilkan jumlah mentah tiap sel, sedangkan classification report merangkum precision, recall, dan F1 per kelas beserta macro dan weighted average. Keduanya sebaiknya dilihat bersama karena laporan saja bisa menyembunyikan distribusi kesalahan antar kelas.

Bagaimana menentukan label positif pada confusion matrix?

Tentukan lewat argumen labels di confusion_matrix agar urutan konsisten. Umumnya label yang ingin Anda deteksi diletakkan di posisi terakhir sehingga berada di baris dan kolom kanan bawah.

Apakah akurasi tinggi selalu berarti model bagus?

Tidak. Pada data dengan kelas minoritas kecil, akurasi tinggi bisa dicapai dengan selalu menebak kelas mayoritas. Periksa recall kelas minoritas dan confusion matrix sebelum menyimpulkan performa model.

Post Comment

You May Have Missed