Hutan acak dianggap kotak hitam, tetapi baru-baru ini saya berpikir pengetahuan apa yang bisa diperoleh dari hutan acak?
Hal yang paling jelas adalah pentingnya variabel, dalam varian paling sederhana dapat dilakukan hanya dengan menghitung jumlah kemunculan suatu variabel.
Hal kedua yang saya pikirkan adalah interaksi. Saya berpikir bahwa jika jumlah pohon cukup besar maka jumlah kemunculan pasangan variabel dapat diuji (seperti independensi chi square). Yang ketiga adalah variabel nonlinier. Gagasan pertama saya adalah hanya melihat grafik skor Vs variabel, tapi saya belum yakin apakah itu masuk akal.
Ditambahkan 23.01.2012
Motivasi
Saya ingin menggunakan pengetahuan ini untuk meningkatkan model logit. Saya pikir (atau setidaknya saya berharap) bahwa adalah mungkin untuk menemukan interaksi dan nonlinier yang diabaikan.
sumber
Jawaban:
Hutan Acak bukan kotak hitam. Mereka didasarkan pada pohon keputusan, yang sangat mudah ditafsirkan:
Ini menghasilkan pohon keputusan sederhana:
Jika Petal. Panjang <4,95, pohon ini mengklasifikasikan pengamatan sebagai "lain." Jika lebih besar dari 4,95, itu mengklasifikasikan pengamatan sebagai "virginica." Hutan acak adalah kumpulan sederhana dari banyak pohon seperti itu, di mana masing-masing dilatih pada bagian acak data. Setiap pohon kemudian "memberikan suara" pada klasifikasi akhir dari setiap pengamatan.
Anda bahkan dapat menarik pohon secara individu dari rf, dan melihat strukturnya. Formatnya sedikit berbeda dari
rpart
model, tetapi Anda bisa memeriksa setiap pohon jika Anda mau dan melihat bagaimana memodelkan data.Selain itu, tidak ada model yang benar-benar kotak hitam, karena Anda dapat memeriksa respons yang diprediksi vs respons aktual untuk setiap variabel dalam dataset. Ini adalah ide yang bagus terlepas dari model apa yang Anda bangun:
Saya telah menormalkan variabel (panjang dan lebar sepal dan petal) ke rentang 0-1. Responsnya juga 0-1, di mana 0 adalah lainnya dan 1 adalah virginica. Seperti yang Anda lihat, hutan acak adalah model yang baik, bahkan pada set tes.
Selain itu, hutan acak akan menghitung berbagai ukuran variabel penting, yang bisa sangat informatif:
Tabel ini menunjukkan seberapa banyak menghapus setiap variabel mengurangi akurasi model. Terakhir, ada banyak plot lain yang dapat Anda buat dari model hutan acak, untuk melihat apa yang terjadi di dalam kotak hitam:
Anda dapat melihat file bantuan untuk masing-masing fungsi ini untuk mendapatkan gambaran yang lebih baik tentang apa yang ditampilkan.
sumber
Beberapa waktu lalu saya harus membenarkan model RF-fit untuk beberapa ahli kimia di perusahaan saya. Saya menghabiskan cukup banyak waktu mencoba berbagai teknik visualisasi. Selama proses, saya tidak sengaja juga menemukan beberapa teknik baru yang saya masukkan ke dalam paket R ( forestFloor ) khusus untuk visualisasi hutan acak.
Pendekatan klasik adalah plot ketergantungan parsial yang didukung oleh: Rminer (analisis sensitivitas berbasis data diciptakan kembali ketergantungan parsial), atau parsialPlot dalam paket randomForest . Saya menemukan paket ketergantungan parsial iceBOX sebagai cara yang elegan untuk menemukan interaksi. Belum menggunakan paket edarf , tetapi tampaknya memiliki beberapa visualisasi bagus yang didedikasikan untuk RF. The ggRandomForest paket juga mengandung satu set besar visualisasi berguna.
Saat ini forestFloor mendukung objek randomForest (dukungan untuk implementasi RF lainnya sedang dalam perjalanan). Kontribusi fitur juga dapat dihitung untuk pohon yang didorong gradien, karena pohon-pohon ini setelah pelatihan tidak jauh berbeda dari pohon hutan acak. Jadi forestFloor dapat mendukung XGBoost di masa depan. Plot ketergantungan sebagian sepenuhnya invarian model.
Semua paket memiliki kesamaan untuk memvisualisasikan struktur pemetaan geometri model dari ruang fitur ke ruang target. Kurva sinus y = sin (x) akan menjadi pemetaan dari x ke y dan dapat diplot dalam 2D. Untuk memetakan pemetaan RF secara langsung seringkali membutuhkan dimensi yang terlalu banyak. Alih-alih keseluruhan struktur pemetaan dapat diproyeksikan, diiris atau didekomposisi, sehingga seluruh struktur pemetaan diringkas menjadi urutan plot marjinal 2D. Jika model RF Anda hanya menangkap efek utama dan tidak ada interaksi antara variabel, metode visualisasi klasik akan baik-baik saja. Kemudian Anda dapat menyederhanakan struktur model Anda seperti iniy= F( X) ≈ f1( x1) + f2( x2) + . . . + fd( xd) . Kemudian setiap fungsi parsial oleh masing-masing variabel dapat divisualisasikan seperti halnya kurva sinus. Jika model RF Anda telah menangkap interaksi yang cukup besar, maka itu lebih bermasalah. Irisan struktur 3D dapat memvisualisasikan interaksi antara dua fitur dan output. Masalahnya adalah untuk mengetahui kombinasi fitur mana yang harus divisualisasikan, ( iceBOX memang mengatasi masalah ini). Juga tidak mudah untuk mengetahui apakah interaksi laten lainnya masih belum diperhitungkan.
Dalam makalah ini , saya menggunakan versi ForestFloor yang sangat awal untuk menjelaskan hubungan biokimia aktual apa yang telah ditangkap oleh model RF yang sangat kecil. Dan dalam makalah ini kami menjelaskan secara menyeluruh visualisasi kontribusi fitur, Visualisasi Lantai Hutan dari Hutan Acak .
Saya telah menempelkan contoh yang disimulasikan dari paket forestFloor, di mana saya menunjukkan cara mengungkap fungsi tersembunyi yang disimulasikan noisey= x12+ s i n ( x2π) + 2 ∗ x3∗ x4+
Terakhir kode untuk plot ketergantungan sebagian dikodekan oleh A.Liaw yang dijelaskan oleh J.Friedman. Yang bagus untuk efek utama.
sumber
Untuk melengkapi tanggapan yang baik ini, saya akan menyebutkan penggunaan gradient boosted tree (mis. Paket GBM di R ). Dalam R, saya lebih suka ini dari hutan acak karena nilai yang hilang diizinkan dibandingkan dengan randomForest di mana imputasi diperlukan. Variabel kepentingan dan plot parsial tersedia (seperti dalam randomForest) untuk membantu dalam pemilihan fitur dan eksplorasi transformasi nonlinier dalam model logit Anda. Selanjutnya, interaksi variabel ditangani dengan H-statistik Friedman (
interact.gbm
) dengan referensi yang diberikan sebagaiJ.H. Friedman and B.E. Popescu (2005). “Predictive Learning via Rule Ensembles.” Section 8.1
. Versi komersial yang disebut TreeNet tersedia dari Salford Systems dan penyajian video ini berbicara untuk mereka tentang Video estimasi interaksi variabel .sumber
Jawaban terlambat, tetapi saya menemukan paket R baru-baru ini
forestFloor
(2015) yang membantu Anda melakukan tugas "unblackboxing" ini secara otomatis. Itu terlihat sangat menjanjikan!Menghasilkan plot berikut:
Ini juga menyediakan visualisasi tiga dimensi jika Anda mencari interaksi.
sumber
Seperti yang disebutkan oleh Zach, salah satu cara memahami model adalah memplot respons karena prediktornya berbeda-beda. Anda dapat melakukan ini dengan mudah untuk model "apa saja" dengan paket plotmo R. Sebagai contoh
pemberian yang mana
Ini mengubah satu variabel sambil memegang yang lain pada nilai mediannya. Untuk plot interaksi, ini mengubah dua variabel. (Catatan ditambahkan Nov 2016:
plotmo
sekarang juga mendukung plot ketergantungan parsial.)Contoh di atas hanya menggunakan dua variabel; model yang lebih rumit dapat divisualisasikan secara sedikit demi sedikit dengan melihat satu atau dua variabel sekaligus. Karena variabel "lain" dipegang pada nilai mediannya, ini hanya menunjukkan sebagian data, tetapi masih bisa bermanfaat. Beberapa contoh ada dalam sketsa untuk paket plotmo . Contoh lain ada di Bab 10 dari Merencanakan pohon rpart dengan paket rpart.plot .
sumber
Saya sendiri sangat tertarik dengan jenis pertanyaan ini. Saya pikir ada banyak informasi yang bisa kita dapatkan dari hutan acak.
Tentang Interaksi, sepertinya Breiman dan Cultier sudah mencoba melihatnya, terutama untuk RF klasifikasi.
Setahu saya, ini belum diimplementasikan dalam paket R randomForest. Mungkin karena itu mungkin tidak sesederhana dan karena arti "interaksi variabel" sangat tergantung pada masalah Anda.
Tentang nonlinier, saya tidak yakin apa yang Anda cari, hutan regresi digunakan untuk masalah regresi berganda nonlinier tanpa ada prior tentang jenis fungsi nonlinear yang digunakan.
sumber
Terlambat dalam permainan tetapi ada beberapa perkembangan baru di depan ini, misalnya LIME dan SHAP . Juga paket yang layak diperiksa adalah DALEX (khususnya jika menggunakan R tetapi dalam kasus apa pun mengandung lembar contekan yang bagus, dll.), Meskipun sepertinya tidak mencakup interaksi saat ini. Dan ini semua model-agnostik sehingga akan bekerja untuk hutan acak, GBM, jaringan saraf, dll.
sumber
Sedikit modifikasi dari hutan acak yang menyediakan lebih banyak informasi tentang data adalah metode hutan kausal yang baru dikembangkan. Lihat paket-GRF dan makalah yang memotivasi di sini . Idenya adalah untuk menggunakan metode baseline hutan acak untuk menemukan heterogenitas dalam efek sebab akibat.
Makalah sebelumnya (di sini ) memberikan pendekatan terperinci untuk hutan sebab akibat yang sederhana. Halaman 9 dari makalah ini memberikan prosedur langkah demi langkah untuk menumbuhkan pohon kausal, yang kemudian dapat diperluas ke hutan dengan cara yang biasa.
Persamaan 4:
Persamaan 5:
sumber
Jawaban terlambat terkait dengan pertanyaan saya di sini ( Bisakah kita membuat Random Forest 100% dapat ditafsirkan dengan memperbaiki benih? ):
sumber