Pertanyaan yang hampir selalu muncul di awal proyek — “model apa yang sebaiknya saya pakai?” — punya jawaban yang mengecewakan sekaligus membebaskan: tidak ada satu model terbaik untuk semua masalah. Prinsip ini dikenal sebagai no free lunch: model yang menang pada satu jenis data bisa kalah di jenis lainnya. Kabar baiknya, memilih model bukan undian — ia keputusan teknik dengan pertimbangan yang bisa dirumuskan: jenis masalah, ukuran dan wujud data, kebutuhan interpretabilitas, sampai biaya menjalankannya. Pada chapter penutup Section ini kita susun pertimbangan itu menjadi kerangka, lalu uji lewat perbandingan tiga model pada data yang sama.

Mulai dari Jenis Masalahnya #

Pilihan model selalu bermula dari bentuk jawaban yang kita cari, bukan dari model favorit:

Jenis masalahBentuk targetKeluarga modelContoh kasus
Klasifikasi binerYa/tidakRegresi logistik, pohon, naive bayes, SVMPelanggan berhenti atau lanjut?
Klasifikasi banyak kelasSalah satu dari N kelasPohon, random forest, naive bayesMenu mana yang dipesan?
RegresiAngka kontinuRegresi linear, pohon regresi, boostingBerapa gelas terjual besok?
Pengelompokan tak berlabelTidak ada targetK-Means, DBSCAN, hierarchicalSegmen pelanggan apa saja yang ada?

Menempatkan masalah di baris yang tepat sudah menyaring pilihan dengan drastis — kebutuhan memprediksi angka otomatis mengeluarkan seluruh keluarga klasifikasi dari daftar, dan sebaliknya.

Empat Pertimbangan Utama #

Setelah keluarga model ditentukan, empat pertimbangan inilah yang memilah kandidat di dalam keluarganya:

PertimbanganKapan pentingDampak pada pilihan
InterpretabilitasModel harus bisa dijelaskan ke regulator, manajemen, atau tim lapanganLinear/pohon mengungguli ensemble; koefisiennya bisa dibaca
Ukuran dataDataset kecil (ratusan baris) atau besar (jutaan)Data kecil: model sederhana lebih aman; data besar: ensemble/boosting layak
KecepatanPrediksi real-time (milidetik) atau pelatihan rutinLinear dan pohon cepat; SVM dan ensemble berat pada data besar
AkurasiSelisih 1% akurasi bernilai uang besarGradient boosting biasanya puncak pada data tabular

Interpretabilitas layak digarisbawahi: model yang tidak bisa dijelaskan sering kali tidak bisa dipakai — skor kredit yang ditolak nasabah harus bisa dijelaskan alasannya, apa pun akurasinya. Dalam situasi seperti itu, regresi logistik yang akurasinya sedikit lebih rendah tetap lebih baik daripada ensemble yang gelap.

Perbandingan Cepat: Tiga Model pada Data yang Sama #

Cara paling jujur memilih adalah mengadu kandidat pada data yang sama. Kita pakai data churn pelanggan Toko Kopi Kita (80 pelanggan, fitur: lama bergabung dan belanja bulanan) dan tiga kandidat klasifikasi yang mewakili tiga titik kompromi — kandidat dijalankan dengan pengaturan standar, diukur pada data uji yang sama:

python
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier

rng = np.random.default_rng(42)
n = 80
bulan_bergabung = rng.integers(1, 48, n)
belanja_bulanan = rng.integers(30, 600, n)
skor = 0.15 * (48 - bulan_bergabung) + 0.05 * belanja_bulanan + rng.normal(0, 3, n)
berhenti = (skor > skor.mean()).astype(int)

X = np.column_stack([bulan_bergabung, belanja_bulanan])
X_latih, X_uji, y_latih, y_uji = train_test_split(
    X, berhenti, test_size=0.25, random_state=42, stratify=berhenti)

kandidat = {
    "LogisticRegression": LogisticRegression(max_iter=1000),
    "DecisionTree (max_depth=3)": DecisionTreeClassifier(max_depth=3, random_state=42),
    "RandomForest (100 pohon)": RandomForestClassifier(
        n_estimators=100, random_state=42),
}

print(f"{'model':<28} {'akurasi uji':>12}")
for nama, model in kandidat.items():
    model.fit(X_latih, y_latih)
    print(f"{nama:<28} {model.score(X_uji, y_uji):>12.3f}")

Output yang Dihasilkan:

text
model                         akurasi uji
LogisticRegression                  0.900
DecisionTree (max_depth=3)          0.850
RandomForest (100 pohon)            0.850

Mari kita telaah hasilnya:

  1. Regresi logistik justru memimpin (0,900): pada 80 baris data berformat sederhana, hubungan antara fitur dan target memang mendekati garis lurus — wilayah tempat model linear unggul. Model yang lebih rumit tidak otomatis lebih baik; ia hanya lebih mahal.
  2. Pohon dan random forest menyamai (0,850): ensemble seratus pohon tidak menambah apa pun di sini karena polanya sederhana dan datanya sedikit — kekuatan ensemble justru muncul pada data besar dengan hubungan yang saling berpotongan.
  3. Kesimpulan praktisnya bukan “linear selalu menang”, melainkan “mulai dari yang sederhana, tinggalkan hanya bila bukti menyuruh”: model sederhana memberi tolok ukur cepat, murah, dan bisa dijelaskan; kompleksitas ditambahkan saat kebutuhannya terbukti.

Panduan Praktis untuk Kasus Umum #

Sebagai titik berangkat, tabel ini merangkum rekomendasi untuk pola kasus yang paling sering dijumpai:

SituasiMulai dariNaik kelas bila
Data tabular kecil-sedang, butuh bisa dijelaskanRegresi logistik / linearAkurasi jadi penentu dan interpretasi longgar
Data tabular kecil-sedang, akurasi utamaPohon kecil + random forestData melewati puluhan ribu baris → gradient boosting
Data tabular besarGradient boosting (XGBoost)Perlu interpretabilitas → pisahkan model penjelas
Teks (pesan, ulasan, tiket)Naive bayes / regresi logistik pada hitungan kataKosakata dan konteks panjang → model sekuens lanjutan
Prediksi angka dengan tren musimanRegresi linear dengan fitur kalenderPola rumit → gradient boosting / model deret waktu
Tidak ada label, mencari kelompokK-Means setelah scalingBentuk kelompok aneh → DBSCAN

Baris-baris ini bukan hukum — melainkan titik awal yang menghemat waktu dan biasanya sudah memadai; kolom “naik kelas” menunjukkan kapan investasi kompleksitas mulai masuk akal.

Rangkuman #

  • Tidak ada model terbaik untuk semua masalah (no free lunch); pilihan model adalah keputusan teknik yang mengikuti bentuk masalah.
  • Jenis target (kelas, angka, atau tanpa label) memilih keluarga model; empat pertimbangan — interpretabilitas, ukuran data, kecepatan, akurasi — memilih kandidat di dalam keluarganya.
  • Adu dua-tiga kandidat pada data uji yang sama sebelum memutuskan; pada data kecil yang polanya sederhana, model linear sering mengungguli yang rumit.
  • Mulai dari model sederhana sebagai tolok ukur, naikkan kompleksitas hanya ketika bukti menuntutnya.
  • Panduan kasus-umum adalah titik berangkat, bukan hukum — selalu uji pada data Anda sendiri.

Kerangka memilih model kini lengkap; saatnya berkenalan satu per satu dengan para kandidatnya. Section berikutnya membedah keluarga model supervised learning — dari regresi linear sampai naive bayes — lengkap dengan kekuatan, kelemahan, dan kode yang bisa dijalankan: Supervised Learning .

Referensi #

  1. scikit-learn — FAQ
  2. scikit-learn — Model selection: cross-validation
  3. scikit-learn — Metrics and scoring: model evaluation