Karena randomForest adalah kumpulan gerobak independen yang dilatih berdasarkan bagian acak dari fitur dan catatan, maka cocok untuk paralelisasi. The combine()
fungsi dalam paket randomForest akan menjahit bersama hutan dilatih mandiri. Ini adalah contoh mainan. Sebagai jawaban @mpq menyatakan Anda tidak boleh menggunakan notasi rumus, tetapi meneruskan dataframe / matriks variabel dan vektor hasil. Saya tidak tahu malu mengangkat ini dari dokumen.
library("doMC")
library("randomForest")
data(iris)
registerDoMC(4) #number of cores on the machine
darkAndScaryForest <- foreach(y=seq(10), .combine=combine ) %dopar% {
set.seed(y) # not really needed
rf <- randomForest(Species ~ ., iris, ntree=50, norm.votes=FALSE)
}
Saya melewati fungsi acak randomForest ke parameter .combine yang bernama sama (yang mengontrol fungsi pada output dari loop. Sisi bawahnya adalah Anda tidak mendapatkan tingkat kesalahan OOB atau lebih penting secara tragis variabel.
Sunting:
Setelah membaca ulang posting saya menyadari bahwa saya tidak berbicara tentang masalah 34+ faktor. Jawaban yang tidak dipikirkan secara keseluruhan bisa mewakili mereka sebagai variabel biner. Itu adalah setiap faktor kolom yang dikodekan 0/1 -level factor tentang ada / tidak adanya. Dengan melakukan beberapa pemilihan variabel pada faktor-faktor yang tidak penting dan menghapusnya, Anda dapat membuat ruang fitur Anda tidak tumbuh terlalu besar.