Saya perhatikan ada beberapa implementasi dari hutan acak seperti ALGLIB, Waffles dan beberapa paket R seperti randomForest
. Adakah yang bisa memberi tahu saya apakah perpustakaan ini sangat optimal? Apakah mereka pada dasarnya setara dengan hutan acak seperti yang dijelaskan dalam Elemen Pembelajaran Statistik atau apakah banyak trik tambahan telah ditambahkan?
Saya harap pertanyaan ini cukup spesifik. Sebagai ilustrasi dari jenis jawaban yang saya cari, jika seseorang bertanya kepada saya apakah paket aljabar linier BLAS sangat dioptimalkan, saya akan mengatakan itu sangat sangat dioptimalkan dan sebagian besar tidak layak untuk dicoba ditingkatkan kecuali dalam aplikasi yang sangat khusus.
random-forest
algorithms
model-evaluation
Henry B.
sumber
sumber
Jawaban:
(Diperbarui 6 IX 2015 dengan saran dari komentar, juga dibuat CW)
Ada dua paket baru yang bagus untuk R yang dioptimalkan dengan cukup baik untuk kondisi tertentu:
Implementasi RF lainnya:
Kertas Ranger memiliki perbandingan kecepatan / memori, tetapi tidak ada patokan menyeluruh.
sumber
Sejauh yang saya tahu, versi R dari randomForest memanggil kode Fortran yang sama dengan versi aslinya. Selain itu, itu sepele untuk memparalelkan fungsi randomForest. Ini sebenarnya salah satu contoh yang disediakan dalam dokumentasi foreach .
Mengingat bahwa hutan acak paralel paralelnya, optimasi terbesar yang dapat Anda lakukan adalah menjalankannya secara paralel. Setelah itu, saya tidak berpikir ada buah lain yang menggantung rendah dalam algoritme, tapi saya bisa salah.
Satu-satunya masalah adalah Anda kehilangan perkiraan kesalahan out-of-bag di hutan gabungan, tetapi mungkin ada cara sederhana untuk menghitungnya (saya benar-benar ingin mengetahui bagaimana melakukan ini).
sumber
The ELSII digunakan randomForest (lihat misalnya, catatan kaki 3 p.591), yang merupakan implementasi R dari Breiman dan Cutler kode Fortran dari Salford. Kode Andy Liaw dalam C.
Ada implementasi RF lain yang diusulkan dalam paket partai (dalam C), yang bergantung pada R / Lapack, yang memiliki beberapa dependensi pada BLAS (lihat
/include/R_ext/Lapack.h
di direktori R dasar Anda).Sejauh menyangkut pengemasan, seharusnya tidak terlalu sulit untuk memparalelasinya, tetapi saya akan membiarkan lebih banyak pengguna khusus menjawab pada aspek ini.
sumber
Tim di balik randomJungle mengklaim bahwa urutan besarnya lebih cepat dari implementasi R randomForest dan menggunakan urutan besarnya lebih sedikit memori. Paket untuk randomJungle sedang dikembangkan untuk R tapi saya belum bisa membuatnya.
https://r-forge.r-project.org/projects/rjungler/
sumber
Untuk Implementasi Javascript, lihat demo ini.
Jika Anda seperti anak kecil yang haus akan cokelat, inilah cokelat hutan acak Anda http://cs.stanford.edu/people/karpathy/svmjs/demo/demoforest.html
sumber