Saya menerapkan algoritma hutan acak sebagai penggolong pada dataset microarray yang dibagi menjadi dua kelompok yang dikenal dengan ribuan fitur. Setelah menjalankan awal saya melihat pentingnya fitur dan menjalankan algoritma pohon lagi dengan 5, 10 dan 20 fitur paling penting. Saya menemukan bahwa untuk semua fitur, top 10 dan 20 bahwa estimasi OOB tingkat kesalahan adalah 1,19% sedangkan untuk fitur top 5 adalah 0%. Ini tampaknya kontra-intuitif bagi saya, jadi saya bertanya-tanya apakah Anda bisa menjelaskan apakah saya kehilangan sesuatu atau saya menggunakan metrik yang salah.
Saya menggunakan paket randomForest di R dengan ntree = 1000, nodesize = 1 dan mtry = sqrt (n)
r
machine-learning
classification
random-forest
danielsbrewer
sumber
sumber
Jawaban:
Ini adalah pakaian pemilihan fitur dan ini cukup dikenal - lihat Ambroise & McLachlan 2002 . Masalahnya didasarkan pada fakta bahwa RF terlalu pintar dan jumlah objek terlalu kecil. Dalam kasus terakhir, umumnya cukup mudah untuk secara acak membuat atribut yang mungkin memiliki korelasi yang baik dengan keputusan. Dan ketika jumlah atribut besar, Anda mungkin yakin bahwa beberapa yang benar-benar tidak relevan akan menjadi prediktor yang sangat baik, bahkan cukup untuk membentuk sebuah cluster yang akan dapat menciptakan kembali keputusan dalam 100%, terutama ketika fleksibilitas besar dari RF dipertimbangkan. Jadi, menjadi jelas bahwa ketika diinstruksikan untuk menemukan subset atribut terbaik, prosedur FS menemukan kluster ini.
Satu solusi (CV) diberikan dalam A & McL, Anda juga dapat menguji pendekatan kami pada topik, theAlgoritma Boruta , yang pada dasarnya memperluas set dengan "atribut bayangan" yang dibuat acak dengan desain dan membandingkan pentingnya RF mereka dengan ini yang diperoleh untuk atribut nyata untuk menilai mana dari mereka yang benar-benar acak dan dapat dihapus; ini direplikasi berkali-kali agar signifikan. Boruta agak ditujukan untuk tugas yang sedikit berbeda, tetapi sejauh tes saya menunjukkan, set yang dihasilkan bebas dari masalah pakaian FS.
sumber
Saya pikir saya akan menambahkan penjelasan intuitif untuk pola ini.
Dalam setiap pohon keputusan yang terdiri dari hutan acak, data dibagi secara iteratif menjadi satu dimensi. Yang terpenting, prosedur ini melibatkan
1) mempertimbangkan hanya sebagian kecil, yang dipilih secara acak dari semua variabel penjelas, dan
2) memilih variabel penjelas yang sangat terkait dalam subset variabel yang dipilih secara acak ini untuk membagi data.
Oleh karena itu, probabilitas n variabel paling penting yang dipilih pada setiap simpul tertentu berkurang ketika jumlah variabel penjelas meningkat. Oleh karena itu, jika seseorang menambahkan sejumlah besar variabel yang berkontribusi sedikit atau tidak sama sekali dengan kekuatan penjelas, maka secara otomatis mengarah pada peningkatan tingkat kesalahan hutan. Dan sebaliknya, hanya memilih variabel yang paling penting untuk dimasukkan akan sangat mungkin menyebabkan penurunan tingkat kesalahan.
Hutan acak cukup kuat untuk ini dan biasanya membutuhkan tambahan yang sangat besar dari parameter 'kebisingan' ini untuk secara signifikan mengurangi kinerja.
sumber