Bởi vì RandomForest là một tập hợp các giỏ hàng độc lập được đào tạo dựa trên một tập hợp con các tính năng ngẫu nhiên và ghi lại nó cho vay để song song hóa. Các combine()
chức năng trong gói randomForest sẽ khâu lại với nhau rừng được đào tạo một cách độc lập. Dưới đây là một ví dụ đồ chơi. Vì câu trả lời của @mpq nói rằng bạn không nên sử dụng ký hiệu công thức, mà chuyển vào một khung dữ liệu / ma trận các biến và một vectơ kết quả. Tôi không biết xấu hổ nhấc những thứ này khỏi tài liệu.
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)
}
Tôi đã chuyển hàm kết hợp RandomForest cho tham số .combine có tên tương tự (điều khiển hàm trên đầu ra của vòng lặp. Mặt trái là bạn không có tỷ lệ lỗi OOB hoặc tầm quan trọng của biến số bi thảm hơn.
Biên tập:
Sau khi đọc lại bài đăng tôi nhận ra rằng tôi không nói gì về vấn đề 34+. Một câu trả lời không suy nghĩ có thể là đại diện cho chúng dưới dạng các biến nhị phân. Đó là mỗi yếu tố một cột được mã hóa 0/1 -level Fact về sự hiện diện / không hiện diện của nó. Bằng cách thực hiện một số lựa chọn khác nhau về các yếu tố không quan trọng và loại bỏ chúng, bạn có thể giữ cho không gian của bạn phát triển quá lớn.