Forest acak
Hutan acak (RF) adalah ansambel pohon keputusan yang mana setiap pohon keputusan dilatih dengan derau acak tertentu. {i>Random forest <i}adalah bentuk yang paling populer dari ansambel pohon keputusan. Unit ini membahas beberapa teknik untuk membuat pohon keputusan independen guna meningkatkan peluang membangun hutan acak yang efektif.
Bagasi
Bagging (bootstrap aggregating) berarti melatih setiap pohon keputusan pada subset acak dari contoh dalam set pelatihan. Dengan kata lain, setiap pohon keputusan di forest acak dilatih pada subset contoh yang berbeda.
Bagging itu aneh. Setiap pohon keputusan dilatih pada jumlah contoh yang sama seperti pada set pelatihan asli. Misalnya, jika set pelatihan asli berisi 60 contoh, maka setiap pohon keputusan dilatih pada 60 contoh. Namun, baging hanya akan melatih setiap pohon keputusan pada subkumpulan (biasanya 67%) dari contoh tersebut. Jadi, beberapa dari 40 contoh tersebut dalam subset harus digunakan kembali saat melatih pohon keputusan tertentu. Penggunaan ulang ini disebut pelatihan "dengan penggantian".
Misalnya, Tabel 6 menunjukkan bagaimana baging dapat mendistribusikan enam contoh di tiga pohon keputusan. Perhatikan catatan berikut:
- Setiap pohon keputusan dilatih dengan total enam contoh.
- Setiap pohon keputusan dilatih pada serangkaian contoh yang berbeda.
- Setiap pohon keputusan menggunakan kembali contoh tertentu. Misalnya, contoh #4 digunakan dua kali dalam pohon keputusan pelatihan 1; oleh karena itu, bobot yang dipelajari dari contoh #4 secara efektif berlipat ganda dalam pohon keputusan 1.
Tabel 6. Membuat kantong enam contoh pelatihan di tiga pohon keputusan. Setiap angka mewakili frekuensi pengulangan contoh pelatihan tertentu (#1-6) dalam set data pelatihan pada pohon keputusan tertentu (1-3).
contoh pelatihan | ||||||
---|---|---|---|---|---|---|
#1 | #2 | #3 | #4 | #5 | #6 | |
set data asli | 1 | 1 | 1 | 1 | 1 | 1 |
pohon keputusan 1 | 1 | 1 | 0 | 2 | 1 | 1 |
pohon keputusan 2 | 3 | 0 | 1 | 0 | 2 | 0 |
pohon keputusan 3 | 0 | 1 | 3 | 1 | 0 | 1 |
Dalam baging, setiap pohon keputusan hampir selalu dilatih berdasarkan jumlah total contoh dalam set pelatihan asli. Melatih setiap pohon keputusan pada lebih banyak contoh atau lebih sedikit contoh cenderung menurunkan kualitas forest acak.
Meskipun tidak ada dalam kertas forest acak asli, pengambilan sampel contoh terkadang dilakukan "tanpa penggantian"; yaitu, contoh pelatihan tidak boleh ditampilkan lebih dari sekali dalam set pelatihan pohon keputusan. Misalnya, dalam tabel sebelumnya, semua nilai adalah 0 atau 1.
bootstrap_training_dataset=False
Pengambilan sampel atribut
Pengambilan sampel atribut berarti bahwa hanya subset fitur acak yang diuji di setiap node, bukan mencari kondisi terbaik daripada semua fitur yang tersedia. Kumpulan fitur yang diuji diambil sampelnya secara acak di setiap node pohon keputusan.
Pohon keputusan berikut menggambarkan 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 ini dibuat dari fitur terbaik yang diuji (diwakili dengan garis batas merah).
Gambar 21. Pengambilan sampel atribut.
Rasio pengambilan sampel atribut adalah hyperparameter regularisasi yang penting. Gambar sebelumnya menggunakan rasio ~3⁄5. Banyak pengujian implementasi forest acak, secara default, 1/3 dari fitur untuk regresi dan sqrt(jumlah fitur) untuk klasifikasi.
Pada TF-DF, pengambilan sampel atribut kontrol hyperparameter berikut:
num_candidate_attributes
num_candidate_attributes_ratio
Misalnya, jika num_candidate_attributes_ratio=0.5
, separuh fitur akan
diuji pada setiap node.
Menonaktifkan regularisasi pohon keputusan
Setiap pohon keputusan di hutan acak dilatih tanpa pemangkasan. (Lihat Overfitting dan pruning). Cara ini menghasilkan hierarki yang terlalu kompleks dengan kualitas prediktif yang buruk. Alih-alih mengatur setiap pohon, pohon-pohon itu disusun menjadi satu sehingga menghasilkan prediksi keseluruhan yang lebih akurat.
Kami expect akurasi pelatihan dan pengujian forest acak akan berbeda. Akurasi pelatihan hutan acak umumnya jauh lebih tinggi (terkadang sama dengan 100%). Namun, akurasi pelatihan yang sangat tinggi dalam forest acak adalah normal dan tidak menunjukkan bahwa forest acak tersebut overfit.
Dua sumber keacakan (pengambilan sampel atribut dan baging) memastikan independensi relatif di antara pohon keputusan. Independensi ini mengoreksi overfitting pada pohon keputusan individual. Akibatnya, ansambel itu tidak kelebihan pas. Kami akan menggambarkan efek non-intuitif ini di unit berikutnya.
Hutan acak murni berlatih 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 forest acak menggunakan default berikut:
- kedalaman maksimum ~16
- jumlah minimum pengamatan per daun ~5.
Anda dapat menyesuaikan hyperparameter ini.
Kejelasan noise
Mengapa kebisingan acak dapat meningkatkan kualitas hutan acak? Untuk menggambarkan manfaat derau acak, Gambar 22 menunjukkan prediksi pohon keputusan klasik (dipangkas) dan forest acak yang dilatih pada beberapa contoh masalah dua dimensi sederhana dengan pola elips.
Pola elips sangat sulit dipelajari oleh algoritma pohon keputusan dan hutan keputusan dengan kondisi selaras sumbu, sehingga bisa menjadi contoh yang baik. Perhatikan bahwa pohon keputusan yang dipangkas tidak bisa mendapatkan kualitas prediksi yang sama dengan hutan acak.
Gambar 22. Kebenaran dasar vs. prediksi yang dihasilkan oleh pohon keputusan yang dipangkas dan prediksi yang dihasilkan oleh forest acak.
Plot berikutnya menunjukkan prediksi tiga pohon keputusan pertama yang tidak dipangkas dari hutan acak; artinya, semua pohon keputusan dilatih dengan kombinasi dari:
- kantong
- pengambilan sampel atribut
- menonaktifkan pemangkasan
Perhatikan bahwa prediksi individual 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 lemah, ketiga pohon keputusan tersebut bergabung dalam sebuah ansambel untuk membuat prediksi yang efektif.
Gambar 23. Tiga pohon keputusan yang tidak dipangkas yang akan membangun ansambel yang efektif.
Karena pohon keputusan dari forest acak tidak dipangkas, pelatihan hutan acak tidak memerlukan set data validasi. Dalam praktiknya, dan terutama pada set data kecil, model harus dilatih pada semua data yang tersedia.
Saat melatih forest acak, seiring bertambahnya pohon keputusan yang ditambahkan, error hampir selalu berkurang; artinya, kualitas model hampir selalu meningkat. Ya, menambahkan lebih banyak pohon keputusan hampir selalu mengurangi error forest acak. Dengan kata lain, menambahkan lebih banyak pohon keputusan tidak dapat menyebabkan forest acak menjadi overfit. Pada titik tertentu, model tidak akan berkembang lagi. Leo Breiman terkenal dengan mengatakan, "Random Forests tidak kelebihan beban, karena lebih banyak pohon ditambahkan".
Misalnya, plot berikut menunjukkan evaluasi uji model forest acak saat lebih banyak pohon keputusan ditambahkan. Akurasi dengan cepat meningkat hingga dataran tinggi sekitar 0,865. Namun, menambahkan lebih banyak pohon keputusan tidak akan mengurangi akurasi; dengan kata lain,model tersebut tidak overfit. Perilaku ini (sebagian besar) selalu benar dan tidak bergantung pada hyperparameter.
Gambar 24. Akurasi tetap konstan karena lebih banyak pohon keputusan ditambahkan ke forest acak.