まとめ
- Memetakan metrik utama yang digunakan pada klasifikasi biner, multikelas, dan multi-label.
- Membandingkan metrik berbasis confusion matrix, metrik berbasis ambang/ranking, serta metrik kalibrasi probabilitas.
- Menjelaskan cara menyusun kumpulan metrik yang selaras dengan tujuan bisnis dan cara melaporkannya.
Bab 3 #
Ringkasan metrik klasifikasi #
Evaluasi model klasifikasi bergantung pada beberapa perspektif: keseimbangan kelas, strategi ambang, keandalan probabilitas, dan kualitas rekomendasi teratas. Bab ini mengelompokkan metrik representatif ke dalam kategori tersebut dan memberikan panduan kapan masing-masing perlu diprioritaskan.
Kategori metrik #
1. Berbasis confusion matrix #
- Accuracy (Akurasi): tingkat keberhasilan keseluruhan; bisa menipu jika kelas tidak seimbang.
- Precision / Recall / F1 (Precision & recall, F1-score): pilih sesuai biaya relatif false positive dan false negative.
- Specificity / Sensitivity (Sensitivitas & spesifisitas): penting untuk kasus seperti deteksi medis.
- Rata-rata macro / micro / berbobot (Strategi perataan): agregasi skala per kelas pada setting multikelas.
2. Ambang dan ranking #
- Kurva Precision-Recall / PR-AUC (Precision-Recall): menonjolkan performa saat kelas positif langka.
- Kurva ROC / ROC-AUC (ROC-AUC): mengukur kemampuan pemisahan di seluruh ambang.
- Top-k Accuracy / Hit Rate (Top-k Accuracy, Hit Rate): relevan untuk rekomendasi/pencarian yang hanya menampilkan item teratas.
3. Kalibrasi probabilitas #
- Log Loss (Log Loss): memberi penghargaan pada probabilitas yang terkalibrasi.
- Brier Score (Brier Score): cocok dipasangkan dengan reliability curve untuk menilai kalibrasi.
- Kurva kalibrasi: membandingkan probabilitas prediksi dengan frekuensi aktual.
4. Pendamping untuk ketidakseimbangan #
- Balanced Accuracy (Balanced Accuracy): rata-rata recall per kelas.
- Cohen’s Kappa / MCC (Kappa Cohen, MCC): alternatif tangguh saat ketidakseimbangan kelas parah.
Dampak ambang terhadap skor #
import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_score, recall_score, f1_score
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
X, y = make_classification(
n_samples=2000,
n_features=12,
n_informative=4,
weights=[0.85, 0.15],
random_state=42,
)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, stratify=y, random_state=42
)
scaler = StandardScaler()
model = LogisticRegression(max_iter=2000)
model.fit(scaler.fit_transform(X_train), y_train)
prob = model.predict_proba(scaler.transform(X_test))[:, 1]
thresholds = np.linspace(0.05, 0.95, 19)
precision, recall, f1 = [], [], []
for t in thresholds:
y_pred = (prob >= t).astype(int)
precision.append(precision_score(y_test, y_pred, zero_division=0))
recall.append(recall_score(y_test, y_pred, zero_division=0))
f1.append(f1_score(y_test, y_pred, zero_division=0))
fig, ax = plt.subplots(figsize=(6.8, 4))
ax.plot(thresholds, precision, label="Precision", color="#2563eb")
ax.plot(thresholds, recall, label="Recall", color="#dc2626")
ax.plot(thresholds, f1, label="F1", color="#0d9488")
ax.set_xlabel("Ambang")
ax.set_ylabel("Skor")
ax.set_title("Pengaruh ambang terhadap metrik klasifikasi")
ax.set_ylim(0, 1.05)
ax.grid(alpha=0.3)
ax.legend()
plt.tight_layout()

Menurunkan ambang meningkatkan recall tetapi menurunkan precision. F1 memuncak di titik seimbang dan sering dipakai untuk memilih ambang operasi.
Panduan pelaporan dan operasional #
- Selalu sertakan confusion matrix
Memperlihatkan pola kesalahan per kelas dan menonjolkan kelas kritis. - Jelaskan alasan pemilihan ambang
Gunakan kurva PR/ROC atau analisis biaya untuk menjelaskan titik operasi. - Periksa kalibrasi probabilitas
Jika skor menentukan harga atau alokasi sumber daya, tinjau Brier Score dan kurva kalibrasi. - Awasi dampak ketidakseimbangan
Bandingkan Balanced Accuracy dan MCC bersama Accuracy sehingga perbaikan semu dapat dihindari. - Pantau drift pasca deployment
Amati Precision/Recall, PR-AUC, dan ROC-AUC dari waktu ke waktu dan sesuaikan ambang bila perlu.
Referensi cepat #
| Perspektif | Metrik utama | Halaman terkait | Catatan |
|---|---|---|---|
| Akurasi keseluruhan | Accuracy / Balanced Accuracy | Accuracy / Balanced Accuracy | Laporkan keduanya saat kelas tidak seimbang |
| False positive vs false negative | Precision / Recall / Fβ | Precision-Recall / F1-score | Kombinasikan dengan analisis ambang |
| Kualitas ranking | PR-AUC / ROC-AUC / Top-k | Kurva PR / ROC-AUC / Top-k Accuracy | Cocok untuk rekomendasi atau disbalans |
| Kalibrasi probabilitas | Log Loss / Brier Score | Log Loss / Brier Score | Wajib jika probabilitas dipakai dalam keputusan |
| Ketahanan | MCC / Kappa Cohen | MCC / Kappa Cohen | Stabil meski kelas tidak seimbang |
Daftar periksa #
- Metrik yang mencerminkan ketidakseimbangan kelas sudah digabungkan
- Alasan pemilihan ambang (PR/ROC atau analisis biaya) sudah dibagikan
- Kalibrasi probabilitas diverifikasi sebelum skor dipakai operasional
- Distribusi data evaluasi dan produksi sudah dibandingkan
- Metrik baseline untuk pembaruan model berikutnya sudah disepakati