Hutan acak
Hutan acak (RF) adalah ansambel pohon keputusan yang setiap pohon keputusannya dilatih dengan derau acak tertentu. Random forest adalah bentuk ensemble pohon keputusan yang paling populer. Unit ini membahas beberapa teknik untuk membuat pohon keputusan independen guna meningkatkan peluang pembuatan hutan acak yang efektif.
Pengemasan
Bagging (bootstrap aggregating) berarti melatih setiap pohon keputusan pada subset acak dari contoh dalam set pelatihan. Dengan kata lain, setiap pohon keputusan di hutan acak dilatih pada subset yang berbeda dari contoh.
Pengelompokan adalah hal yang aneh. Setiap hierarki keputusan dilatih dengan jumlah contoh yang sama seperti dalam set pelatihan asli. Misalnya, jika set pelatihan asli berisi 60 contoh, setiap pohon keputusan akan dilatih dengan 60 contoh. Namun, bagging hanya melatih setiap hierarki keputusan pada subset (biasanya, 67%) contoh tersebut. Jadi, beberapa dari 40 contoh dalam subset tersebut harus digunakan kembali saat melatih pohon keputusan tertentu. Penggunaan kembali ini disebut pelatihan "dengan penggantian".
Misalnya, Tabel 6 menunjukkan cara bagging dapat mendistribusikan enam contoh di tiga pohon keputusan. Perhatikan catatan berikut:
- Setiap pohon keputusan dilatih dengan total enam contoh.
- Setiap pohon keputusan dilatih dengan kumpulan contoh yang berbeda.
- Setiap pohon keputusan menggunakan kembali contoh tertentu. Misalnya, contoh #4 digunakan dua kali dalam melatih pohon keputusan 1; oleh karena itu, bobot yang dipelajari dari contoh #4 secara efektif dilipatgandakan di pohon keputusan 1.
Tabel 6. Menggabungkan enam contoh pelatihan di tiga pohon keputusan. Setiap angka menunjukkan frekuensi contoh pelatihan tertentu (#1-6) diulang dalam set data pelatihan dari pohon keputusan tertentu (1-3).
contoh pelatihan | ||||||
---|---|---|---|---|---|---|
#1 | #2 | #3 | #4 | #5 | #6 | |
set data asli | 1 | 1 | 1 | 1 | 1 | 1 |
decision tree 1 | 1 | 1 | 0 | 2 | 1 | 1 |
decision tree 2 | 3 | 0 | 1 | 0 | 2 | 0 |
decision tree 3 | 0 | 1 | 3 | 1 | 0 | 1 |
Dalam bagging, setiap hierarki keputusan hampir selalu dilatih dengan total jumlah contoh dalam set pelatihan asli. Melatih setiap pohon keputusan dengan lebih banyak atau lebih sedikit contoh cenderung menurunkan kualitas random forest.
Meskipun tidak ada dalam makalah hutan acak asli, pengambilan contoh terkadang dilakukan "tanpa penggantian"; yaitu, contoh pelatihan tidak boleh ada lebih dari sekali dalam set pelatihan pohon keputusan. Misalnya, dalam tabel sebelumnya, semua nilai akan berupa 0 atau 1.
bootstrap_training_dataset=False
Sampling atribut
Pengambilan sampel atribut berarti bahwa alih-alih mencari kondisi terbaik di semua fitur yang tersedia, hanya sebagian fitur acak yang diuji di setiap node. Kumpulan fitur yang diuji diambil sampelnya secara acak di setiap node pohon keputusan.
Hierarki keputusan berikut mengilustrasikan pengambilan sampel atribut / fitur. Di sini, pohon keputusan dilatih pada 5 fitur (f1-f5). Node biru mewakili fitur yang diuji, sedangkan node putih tidak diuji. Kondisi dibuat dari fitur yang paling banyak diuji (diwakili dengan garis batas merah).
Gambar 21. Pengambilan sampel atribut.
Rasio sampling atribut adalah hyperparameter regularisasi yang penting. Gambar sebelumnya menggunakan rasio ~⅗. Banyak implementasi random forest menguji, secara default, 1/3 fitur untuk regresi dan sqrt(jumlah fitur) untuk klasifikasi.
Di TF-DF, hyperparameter berikut mengontrol sampling atribut:
num_candidate_attributes
num_candidate_attributes_ratio
Misalnya, jika num_candidate_attributes_ratio=0.5
, setengah dari fitur akan
diuji di setiap node.
Menonaktifkan regularisasi pohon keputusan
Setiap pohon keputusan di hutan acak dilatih tanpa pemangkasan. (Lihat Overfitting dan pemangkasan). Hal ini menghasilkan hierarki yang terlalu rumit dengan kualitas prediktif yang buruk. Alih-alih meregulasi setiap hierarki, hierarki digabungkan untuk menghasilkan prediksi keseluruhan yang lebih akurat.
Kami memperkirakan akurasi pelatihan dan pengujian random forest akan berbeda. Akurasi pelatihan hutan acak umumnya jauh lebih tinggi (terkadang sama dengan 100%). Namun, akurasi pelatihan yang sangat tinggi di random forest adalah normal dan tidak menunjukkan bahwa random forest mengalami overfitting.
Dua sumber keacakan (bagging dan sampling atribut) memastikan independensi relatif antara hierarki keputusan. Independensi ini memperbaiki overfitting dari setiap pohon keputusan. Akibatnya, ensemble tidak mengalami overfitting. Kita akan mengilustrasikan efek non-intuitif ini di unit berikutnya.
Random forest murni dilatih tanpa kedalaman maksimum atau jumlah minimum pengamatan per daun. Dalam praktiknya, membatasi kedalaman maksimum dan jumlah minimum pengamatan per daun akan bermanfaat. Secara default, banyak random forest menggunakan default berikut:
- kedalaman maksimum ~16
- jumlah minimum pengamatan per daun ~5.
Anda dapat menyesuaikan hyperparameter ini.
Kejelasan derau
Mengapa derau acak akan meningkatkan kualitas hutan acak? Untuk mengilustrasikan manfaat derau acak, Gambar 22 menunjukkan prediksi pohon keputusan klasik (dipangkas) dan hutan acak yang dilatih pada beberapa contoh masalah dua dimensi sederhana dengan pola elips.
Pola elipsis sangat sulit dipelajari oleh algoritma pohon keputusan dan hutan keputusan dengan kondisi yang sejajar dengan sumbu, sehingga pola ini menjadi contoh yang baik. Perhatikan bahwa pohon keputusan yang dipangkas tidak dapat mendapatkan kualitas prediksi yang sama dengan random forest.
Gambar 22. Kebenaran dasar vs. prediksi yang dihasilkan oleh satu hierarki keputusan yang dipangkas dan prediksi yang dihasilkan oleh random forest.
Plot berikutnya menunjukkan prediksi tiga pohon keputusan pertama yang tidak dipangkas dari hutan acak; yaitu, semua pohon keputusan dilatih dengan kombinasi dari:
- pengelompokan
- pengambilan sampel atribut
- menonaktifkan pemangkasan
Perhatikan bahwa setiap prediksi dari ketiga pohon keputusan ini lebih buruk daripada prediksi pohon keputusan yang dipangkas pada gambar sebelumnya. Namun, karena error dari setiap pohon keputusan hanya berkorelasi secara lemah, ketiga pohon keputusan digabungkan dalam ensemble untuk membuat prediksi yang efektif.
Gambar 23. Tiga pohon keputusan yang tidak dipangkas yang akan membuat ensemble yang efektif.
Karena pohon keputusan random forest tidak dipangkas, pelatihan random forest tidak memerlukan set data validasi. Dalam praktiknya, dan terutama pada set data kecil, model harus dilatih dengan semua data yang tersedia.
Saat melatih hutan acak, seiring dengan penambahan lebih banyak pohon keputusan, error hampir selalu berkurang; yaitu, kualitas model hampir selalu meningkat. Ya, menambahkan lebih banyak hierarki keputusan hampir selalu mengurangi error random forest. Dengan kata lain, menambahkan lebih banyak hierarki keputusan tidak dapat menyebabkan random forest mengalami overfitting. Pada titik tertentu, model hanya berhenti meningkat. Leo Breiman pernah berkata, "Random Forest tidak mengalami overfitting, karena lebih banyak pohon ditambahkan".
Misalnya, plot berikut menunjukkan evaluasi pengujian model random forest saat lebih banyak hierarki keputusan ditambahkan. Akurasi meningkat dengan cepat hingga mencapai puncak sekitar 0,865. Namun, menambahkan lebih banyak pohon keputusan tidak akan menurunkan akurasi; dengan kata lain,model tidak akan mengalami overfitting. Perilaku ini (sebagian besar) selalu benar dan tidak bergantung pada hyperparameter.
Gambar 24. Akurasi tetap konstan seiring dengan bertambahnya pohon keputusan yang ditambahkan ke random forest.