Apa itu random forest?
Random forest adalah ensemble berisi decision tree. Setiap tree dilatih pada sampel bootstrap dari data dan hanya boleh memakai subset feature acak di setiap split. Untuk klasifikasi, forest mengambil suara mayoritas dari semua tree, dan untuk regresi, forest merata-ratakan prediksinya. Melatih setiap tree pada salinan data hasil resampling disebut bagging, singkatan dari bootstrap aggregating. Subset feature acak itulah yang mengubah kumpulan tree hasil bagging menjadi random forest.
Random forest menjadi pilihan awal untuk data tabular karena hasilnya bagus dengan sedikit tuning, bisa menangani jenis feature campuran, dan tidak overfit saat tree ditambah. Metode ini dipakai untuk risiko kredit, deteksi penipuan, ekologi, genomika, dan penginderaan jauh. Ada juga dua hasil sampingan yang berguna: estimasi test error dari out-of-bag dan skor feature importance.
Ide utama
- Bagging melatih setiap model pada sampel bootstrap yang diambil dengan pengembalian, lalu menggabungkan prediksinya.
- Sampel bootstrap berisi sekitar 63,2% titik training yang unik.
- Merata-ratakan banyak tree ber-variance tinggi menurunkan variance tanpa banyak menambah bias.
- Random forest juga membatasi setiap split pada subset feature acak, sehingga korelasi antar-tree turun.
- Titik out-of-bag memberi estimasi test error bawaan.
- Menambah tree tidak menyebabkan overfitting, hanya membuat ensemble lebih stabil.
Pertanyaan umum
Apa bedanya bagging dan random forest?
Bagging melatih setiap tree pada sampel bootstrap, tetapi setiap split boleh mempertimbangkan semua feature. Random forest menambahkan sumber keacakan kedua, yaitu subset feature acak di setiap split. Korelasi antar-tree jadi lebih rendah, sehingga perataannya menurunkan variance lebih jauh.
Berapa banyak tree yang dibutuhkan random forest?
Cukup sampai error berhenti membaik, sering kali beberapa ratus. Menambah tree tidak pernah membuat forest overfit, tetapi manfaatnya mengecil sementara training dan prediksi makin lambat. Plot OOB error terhadap jumlah tree menunjukkan di mana kurvanya mendatar.
Apakah random forest lebih baik daripada gradient boosting?
Gradient boosting yang di-tuning dengan baik biasanya mencapai akurasi lebih tinggi pada data tabular, karena menurunkan bias dengan melatih setiap tree pada kesalahan tree sebelumnya. Random forest lebih mudah di-tuning, lebih sulit overfit, dan tree-nya bisa dilatih paralel. Alur kerja yang umum adalah memulai dengan random forest sebagai baseline, lalu beralih ke boosting untuk mengejar beberapa poin akurasi terakhir.
Bisakah random forest overfit?
Error-nya tidak naik saat tree ditambah, tetapi forest tetap bisa overfit pada data yang noisy ketika tree-nya tumbuh sangat dalam di atas sedikit sampel. Membatasi kedalaman tree atau menaikkan jumlah minimum sampel per leaf membantu dalam kasus ini. Memeriksa OOB error adalah cara cepat untuk mendeteksinya.
Penjelasan terkait
- Decision Tree dan Split · Recursive partitioning, Gini impurity, dan pruning
- Gradient Boosting · Mencocokkan residual secara berurutan untuk prediksi yang kuat
- Ensemble Methods dan Stacking · Voting, stacking, dan penggabungan model yang beragam
- Bias-Variance Tradeoff · Kenapa model mengalami underfitting atau overfitting, lewat dekomposisi dasarnya
- Overfitting dan Underfitting · Bias-variance tradeoff dan generalisasi
- Cross-Validation · Evaluasi dengan k-fold, stratified, dan leave-one-out
Referensi
- Breiman (2001), "Random Forests", Machine Learning
- Breiman (1996), "Bagging Predictors", Machine Learning
- James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", chapter 8: Tree-Based Methods
Terakhir diperbarui