Dalam Random Forest, mengapa subset acak fitur dipilih di level node daripada di level tree?

13

Pertanyaan Saya: Mengapa hutan acak mempertimbangkan himpunan bagian acak dari fitur untuk pemisahan pada tingkat simpul dalam setiap pohon daripada di tingkat pohon ?

Latar Belakang: Ini adalah pertanyaan sejarah. Tin Kam Ho menerbitkan makalah ini tentang membangun "hutan keputusan" dengan secara acak memilih subset fitur yang akan digunakan untuk menumbuhkan setiap pohon pada tahun 1998. Beberapa tahun kemudian, pada tahun 2001, Leo Breiman menerbitkan makalah Random Forest , di mana subset fitur secara acak dipilih pada setiap node dalam setiap pohon, bukan pada setiap pohon. Sementara Breiman mengutip Ho, dia tidak secara khusus menjelaskan perpindahan dari pemilihan fitur tingkat pohon ke tingkat simpul.

Saya bertanya-tanya apa yang secara spesifik memotivasi perkembangan ini. Tampaknya memilih subset fitur di tingkat pohon masih akan menyelesaikan dekorasi pohon yang diinginkan.

Teori saya: Saya belum melihat ini diartikulasikan di tempat lain, tetapi sepertinya metode ruang bagian acak akan kurang efisien dalam hal mendapatkan perkiraan pentingnya fitur. Untuk mendapatkan estimasi variabel penting, untuk setiap pohon, fitur diijinkan secara acak satu per satu, dan peningkatan kesalahan klasifikasi atau peningkatan kesalahan untuk pengamatan out-of-bag dicatat. Variabel dimana kesalahan klasifikasi atau peningkatan kesalahan yang dihasilkan dari permutasi acak ini tinggi adalah variabel dengan kepentingan terbesar.

Jika kita menggunakan metode ruang bagian acak, untuk setiap pohon, kami hanya mempertimbangkan dari fitur . Mungkin perlu beberapa pohon untuk mempertimbangkan semua prediktor bahkan sekali. Di sisi lain, jika kita mempertimbangkan subset yang berbeda dari fitur di setiap node , kami akan mempertimbangkan setiap fitur lebih kali setelah pohon lebih sedikit, memberikan kita perkiraan yang lebih kuat dari pentingnya fitur.p p m saya pmppmip

Apa yang saya lihat sejauh ini: Sejauh ini, saya telah membaca kertas Breiman dan kertas Ho, dan melakukan pencarian online yang luas untuk perbandingan metode tanpa menemukan jawaban yang pasti. Perhatikan bahwa pertanyaan serupa pernah diajukan sebelumnya. Pertanyaan ini sedikit lebih jauh dengan memasukkan spekulasi saya / kerja ke arah solusi yang mungkin. Saya akan tertarik pada jawaban, kutipan yang relevan, atau studi simulasi yang membandingkan kedua pendekatan. Jika tidak ada yang datang, saya berencana untuk menjalankan simulasi saya sendiri membandingkan kedua metode.

djlid
sumber
2
Saya tidak akan mengutip referensi apa pun, jadi mari kita sebut ini komentar. Jika Anda mencoba memahami variabel apa yang berguna, mungkin saja variabel tertentu sangat penting, tetapi hanya pada sebagian kecil data. Anda bisa mengetahui ini dengan mengantongi variabel di tingkat simpul. Anda tidak akan pernah menemukan ini dengan mengantongi di tingkat pohon.
meh
2
Saya yakin Breiman memiliki komentar terkait hal ini dalam makalah seminal (imho), 'Statistics- The Two Cultures'. Maksudnya di sana adalah bahwa kadang-kadang pentingnya suatu variabel ditutupi oleh variabel lain. Mengantongi di tingkat simpul akan memungkinkan seseorang untuk melihat apa dan kapan untuk suatu variabel.
meh
1
Terima kasih atas komentarnya. Kembali ke ide saya tentang efisiensi: misalkan sepasang variabel terkait dan, seperti yang Anda katakan, pentingnya satu "topeng" pentingnya yang lain. Jika kita membuat prediktor RF dengan cukup banyak pohon dan menggunakan subset fitur tingkat pohon, akankah pada akhirnya kita tidak akan memiliki cukup pohon dengan fitur "bertopeng" dan tanpa fitur "penutup" untuk mendapatkan pentingnya yang pertama tanpa dampak dari yang terakhir? Saya pikir kita setidaknya berbicara tentang ide yang sama. Terima kasih!
djlid
4
Anda mungkin, tetapi pertimbangkan berapa banyak pohon yang harus Anda bangun! Itu juga tidak jelas. Variabel A dapat menyebabkan perpecahan sehingga tidak satupun dari mereka variabel B akan bersinar. Secara intrinsik jelas lebih kuat untuk sampel pada level node. Bagi saya, ini berhubungan dengan apa yang seharusnya menjadi bootstrap.
meh

Jawaban:

1

Misalkan kita memiliki 10 fitur f1, f2, ..., f9, f10, maka ketika kita mengambil subset untuk mengandaikan f1, f3, f4, f8 fitur pada level pohon itu sendiri, maka kita membangun seluruh pohon dengan mengambil 4 fitur ini mempertimbangkan.

Kami menghitung entropi, bandingkan hanya 4 fitur ini di setiap node dan ambil fitur yang menghasilkan entropi maksimum. Ini tidak banyak digunakan karena kita membatasi pembelajaran pohon kita hanya pada keempat fitur itu. Bertentangan dengan ini, ketika kita mengambil beberapa subset fitur, katakanlah f1, f8, f9 pada node pertama, kita menghitung entropi dan membandingkannya di antara 3 fitur ini dan memilih satu yang memberikan nilai maksimum. Alih-alih menumbuhkan pohon lebih jauh dengan fitur yang sama, kami memilih subset fitur lainnya, misalkan f4, f7, f2 dan buat pemisahan berdasarkan fitur-fitur ini. Misalkan f8 dipilih pada simpul pertama dan f2 dipilih pada simpul kedua. Model mampu mempelajari hubungan antara keduanya yang tidak

Dengan cara ini, model dapat mempelajari hubungan antara fitur yang berbeda dengan cara yang lebih beragam. Pendekatan ini akan memiliki sejumlah fitur yang dieksplorasi dalam satu pohon dan dengan demikian hubungan di antara mereka dipertahankan. Semoga Anda mengerti sekarang :)

Shashank Kumar Mishra
sumber