Klasifikasi

Eval

Klasifikasi

まとめ
  • 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()
Precision, recall, F1 di berbagai ambang

Menurunkan ambang meningkatkan recall tetapi menurunkan precision. F1 memuncak di titik seimbang dan sering dipakai untuk memilih ambang operasi.


Panduan pelaporan dan operasional #

  1. Selalu sertakan confusion matrix
    Memperlihatkan pola kesalahan per kelas dan menonjolkan kelas kritis.
  2. Jelaskan alasan pemilihan ambang
    Gunakan kurva PR/ROC atau analisis biaya untuk menjelaskan titik operasi.
  3. Periksa kalibrasi probabilitas
    Jika skor menentukan harga atau alokasi sumber daya, tinjau Brier Score dan kurva kalibrasi.
  4. Awasi dampak ketidakseimbangan
    Bandingkan Balanced Accuracy dan MCC bersama Accuracy sehingga perbaikan semu dapat dihindari.
  5. Pantau drift pasca deployment
    Amati Precision/Recall, PR-AUC, dan ROC-AUC dari waktu ke waktu dan sesuaikan ambang bila perlu.

Referensi cepat #

PerspektifMetrik utamaHalaman terkaitCatatan
Akurasi keseluruhanAccuracy / Balanced AccuracyAccuracy / Balanced AccuracyLaporkan keduanya saat kelas tidak seimbang
False positive vs false negativePrecision / Recall / FβPrecision-Recall / F1-scoreKombinasikan dengan analisis ambang
Kualitas rankingPR-AUC / ROC-AUC / Top-kKurva PR / ROC-AUC / Top-k AccuracyCocok untuk rekomendasi atau disbalans
Kalibrasi probabilitasLog Loss / Brier ScoreLog Loss / Brier ScoreWajib jika probabilitas dipakai dalam keputusan
KetahananMCC / Kappa CohenMCC / Kappa CohenStabil 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