まとめ
- Merapikan strategi validasi utama dan kriteria informasi yang dipakai saat membandingkan model.
- Menyajikan gambaran lintas validasi silang, kurva validasi/pembelajaran, kriteria informasi, serta penelusuran hiperparameter.
- Merangkum cara membangun alur evaluasi yang menyeimbangkan keterbatasan data, biaya komputasi, dan kebutuhan pengambilan keputusan.
Bab 1 #
Sekilas tentang pemilihan model #
Memilih model bukan sekadar mengambil skor terbaik dari hold-out. Kita perlu menentukan bagaimana mengestimasi kemampuan generalisasi, metrik mana yang dapat dipercaya, dan bagaimana menjaga biaya komputasi tetap wajar. Bab ini mengumpulkan teknik validasi utama yang berlaku di regresi maupun klasifikasi, sambil memberi panduan kapan setiap teknik paling tepat digunakan.
Teknik kunci #
1. Pembagian data dan validasi silang #
- K-Fold / Stratified K-Fold (lihat Validasi silang / Stratified K-Fold): pilihan baku ketika data terbatas. Stratifikasi menjaga proporsi label untuk klasifikasi.
- Validasi silang berlapis (nested) (lihat Nested CV): diperlukan ketika kita menginginkan estimasi tanpa bias yang sudah mencakup pencarian hiperparameter.
- Split berbasis deret waktu: wajib jika urutan temporal penting; kombinasikan jendela mengembang/geser dengan pengetahuan domain.
2. Kurva untuk diagnosis #
- Kurva validasi (Validation Curve): menampilkan pengaruh hiperparameter terhadap skor latih/validasi.
- Kurva pembelajaran (Learning Curve): menggambarkan hubungan ukuran sampel dan kinerja, membantu menilai manfaat menambah data.
3. Kriteria informasi #
- AIC / BIC (AIC & BIC): memberi penalti kompleksitas pada model linear Gaussian atau GLM.
- (C_p) Mallows dan statistik serupa: berguna ketika tersedia estimator analitik untuk galat prediksi.
4. Penelusuran hiperparameter #
- Grid / random search: menyeluruh di ruang kecil, acak untuk mendapat perbaikan cepat di ruang besar.
- Optimisasi Bayesian / Hyperband: efisien ketika setiap evaluasi mahal.
- Pipeline AutoML: mengotomatisasi pilihan model, rekayasa fitur, dan penyetelan hiperparameter sebagai baseline end-to-end.
Membandingkan model dengan validasi silang #
import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import StratifiedKFold, cross_val_score
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
X, y = load_breast_cancer(return_X_y=True)
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
models = {
"LogReg (L2)": make_pipeline(
StandardScaler(),
LogisticRegression(max_iter=2000, penalty="l2", C=1.0, solver="lbfgs"),
),
"LogReg (ElasticNet)": make_pipeline(
StandardScaler(),
LogisticRegression(
max_iter=2000,
penalty="elasticnet",
solver="saga",
C=1.0,
l1_ratio=0.4,
),
),
"RandomForest": RandomForestClassifier(
n_estimators=200, max_depth=6, random_state=42
),
}
means = []
stds = []
labels = []
for name, model in models.items():
scores = cross_val_score(model, X, y, cv=cv, scoring="roc_auc")
means.append(scores.mean())
stds.append(scores.std())
labels.append(name)
y_pos = np.arange(len(labels))
fig, ax = plt.subplots(figsize=(6.5, 3.8))
ax.barh(y_pos, means, xerr=stds, color="#2563eb", alpha=0.8)
ax.set_yticks(y_pos)
ax.set_yticklabels(labels)
ax.set_xlabel("ROC-AUC (rata-rata 5-fold ± simpangan baku)")
ax.set_xlim(0.9, 1.0)
ax.set_title("Perbandingan model dengan validasi silang")
ax.grid(axis="x", alpha=0.3)
plt.tight_layout()

Validasi silang menampakkan rata-rata sekaligus variabilitas kinerja. Di sini regularisasi elastic-net sedikit mengungguli model dasar sambil menjaga varians tetap rendah.
Merancang alur evaluasi #
- Pahami distribusi data
Tangani ketidakseimbangan label, dependensi temporal, dan potensi kebocoran sebelum memilih skema split. - Perjelas ruang perbandingan
Daftarkan model, langkah pra-pemrosesan, dan set fitur yang ingin dievaluasi. - Selaraskan metrik dan ambang
Sepakati metrik yang mendorong keputusan (ROC-AUC, RMSE, biaya, dll.) bersama pemangku kepentingan. - Pastikan reproduktibilitas
Catat seed, definisi split, dan versi lingkungan. Otomatiskan proses bila memungkinkan. - Kelola anggaran komputasi
Perkirakan durasi grid/random search, lalu lanjutkan dengan metode adaptif atau Bayesian setelah menemukan area menjanjikan.
Referensi cepat #
| Topik | Halaman terkait | Catatan |
|---|---|---|
| Dasar validasi silang | Validasi silang / Stratified K-Fold | Ringkasan strategi pembagian data |
| Validasi berlapis | Nested CV | Estimasi tanpa bias dengan penyetelan hiperparameter |
| Diagnostik berbasis kurva | Learning Curve / Validation Curve | Visualisasi kecukupan data dan efek hiperparameter |
| Kriteria informasi | AIC & BIC | Membandingkan model parametrik sambil memberi penalti kompleksitas |
Daftar periksa #
- Metode pembagian data (stratifikasi, deret waktu, dll.) sudah terdokumentasi
- Metrik utama dan format pelaporan sudah ditetapkan
- Ruang dan tahap pencarian hiperparameter sudah ditentukan
- Konfigurasi dan kode untuk setiap eksperimen dapat direproduksi bersama tim
- Batasan operasional seperti waktu inferensi dan ukuran model sudah dipertimbangkan