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 masalah | Bentuk target | Keluarga model | Contoh kasus |
|---|---|---|---|
| Klasifikasi biner | Ya/tidak | Regresi logistik, pohon, naive bayes, SVM | Pelanggan berhenti atau lanjut? |
| Klasifikasi banyak kelas | Salah satu dari N kelas | Pohon, random forest, naive bayes | Menu mana yang dipesan? |
| Regresi | Angka kontinu | Regresi linear, pohon regresi, boosting | Berapa gelas terjual besok? |
| Pengelompokan tak berlabel | Tidak ada target | K-Means, DBSCAN, hierarchical | Segmen 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:
| Pertimbangan | Kapan penting | Dampak pada pilihan |
|---|---|---|
| Interpretabilitas | Model harus bisa dijelaskan ke regulator, manajemen, atau tim lapangan | Linear/pohon mengungguli ensemble; koefisiennya bisa dibaca |
| Ukuran data | Dataset kecil (ratusan baris) atau besar (jutaan) | Data kecil: model sederhana lebih aman; data besar: ensemble/boosting layak |
| Kecepatan | Prediksi real-time (milidetik) atau pelatihan rutin | Linear dan pohon cepat; SVM dan ensemble berat pada data besar |
| Akurasi | Selisih 1% akurasi bernilai uang besar | Gradient 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:
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:
model akurasi uji
LogisticRegression 0.900
DecisionTree (max_depth=3) 0.850
RandomForest (100 pohon) 0.850Mari kita telaah hasilnya:
- 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.
- 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.
- 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:
| Situasi | Mulai dari | Naik kelas bila |
|---|---|---|
| Data tabular kecil-sedang, butuh bisa dijelaskan | Regresi logistik / linear | Akurasi jadi penentu dan interpretasi longgar |
| Data tabular kecil-sedang, akurasi utama | Pohon kecil + random forest | Data melewati puluhan ribu baris → gradient boosting |
| Data tabular besar | Gradient boosting (XGBoost) | Perlu interpretabilitas → pisahkan model penjelas |
| Teks (pesan, ulasan, tiket) | Naive bayes / regresi logistik pada hitungan kata | Kosakata dan konteks panjang → model sekuens lanjutan |
| Prediksi angka dengan tren musiman | Regresi linear dengan fitur kalender | Pola rumit → gradient boosting / model deret waktu |
| Tidak ada label, mencari kelompok | K-Means setelah scaling | Bentuk 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 .