Apa itu decision tree?
Decision tree adalah model yang membuat prediksi dengan mengajukan serangkaian pertanyaan ya/tidak tentang input, misalnya "apakah x ≤ 0.4?". Setiap internal node berisi satu pertanyaan, setiap branch adalah satu jawaban, dan setiap leaf berisi satu prediksi: kelas mayoritas untuk klasifikasi atau rata-rata target untuk regresi. Training menumbuhkan tree secara greedy: di setiap node, ia memilih pertanyaan yang paling baik memisahkan label training.
Tree bisa menangani feature numerik maupun kategorikal, tidak butuh feature scaling, dan bisa dibaca sebagai kumpulan aturan if-then. Karena itu, tree populer untuk penilaian kredit, triase medis, dan situasi lain yang keputusannya harus bisa dijelaskan. Satu tree yang dalam mudah overfit, jadi tree lebih sering dipakai sebagai komponen model yang lebih besar. Random forest merata-ratakan ratusan tree, sedangkan library gradient boosting seperti XGBoost dan LightGBM menjumlahkannya satu per satu. Ensemble seperti ini masih termasuk model terkuat untuk data tabular.
Ide utama
- Decision tree membuat prediksi dengan mengarahkan input melewati serangkaian pertanyaan feature dan threshold sampai ke leaf.
- Setiap split dipilih secara greedy untuk memberi penurunan impurity terbesar, yang diukur dengan Gini atau entropy.
- Setiap split menguji satu feature, jadi area keputusannya berupa persegi panjang yang sejajar sumbu.
- Tree yang lebih dalam makin mendekati data training dan makin mudah menghafal noise.
- Pruning serta batas depth atau ukuran leaf mengorbankan sedikit akurasi training demi akurasi test yang lebih baik.
- Tree tidak butuh feature scaling dan menjadi base learner pada random forest dan gradient boosting.
Pertanyaan umum
Apakah decision tree bisa dipakai untuk regresi?
Bisa. Regression tree memprediksi rata-rata target dari titik training di setiap leaf dan memilih split yang paling menurunkan squared error. Prediksinya berupa fungsi tangga yang nilainya konstan di setiap area. CART menangani klasifikasi dan regresi dengan algoritma yang sama.
Apakah decision tree butuh feature scaling?
Tidak. Split membandingkan satu feature dengan threshold, jadi transformasi monoton pada feature itu, seperti standardisasi atau mengambil log-nya, tidak mengubah himpunan split yang mungkin. Metode berbasis jarak seperti k-nearest neighbors dan SVM berbeda: keduanya butuh feature yang sudah di-scale.
Bagaimana decision tree menangani feature kategorikal?
Tree bisa melakukan split pada feature kategorikal dengan mengirim sebagian kategori ke kiri dan sisanya ke kanan. Banyak library mengharapkan input numerik, jadi kategori sering diubah dulu dengan one-hot encoding atau ordinal encoding. LightGBM dan CatBoost bisa melakukan split langsung pada feature kategorikal.
Bagaimana feature importance dihitung pada decision tree?
Ukuran yang umum menjumlahkan penurunan impurity dari setiap split yang memakai suatu feature, diberi bobot sesuai jumlah sampel yang sampai ke split itu, lalu menormalkan totalnya. Hitungannya murah, tetapi cenderung memihak feature dengan banyak nilai berbeda. Permutation importance, yang mengukur seberapa jauh akurasi turun ketika nilai satu feature diacak, sering dipakai sebagai pembanding.
Penjelasan terkait
- Bagging dan Random Forest · Bootstrap aggregation dan ensemble tree yang korelasinya rendah
- Gradient Boosting · Mencocokkan residual secara berurutan untuk prediksi yang kuat
- Overfitting dan Underfitting · Bias-variance tradeoff dan generalisasi
- Bias-Variance Tradeoff · Kenapa model mengalami underfitting atau overfitting, lewat dekomposisi dasarnya
- Entropy dan Cross-Entropy · Mengukur kejutan, ketidakpastian, dan kualitas prediksi
- K-Nearest Neighbors · Klasifikasi berdasarkan kedekatan dan metrik jarak
Referensi
- James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", chapter 8: Tree-Based Methods
- Quinlan (1986), "Induction of Decision Trees", Machine Learning
- Breiman, Friedman, Olshen & Stone (1984), "Classification and Regression Trees"
Terakhir diperbarui