我有一个较大的n(> 1,000,000)数据集,具有少量用于估计(回归)随机森林的功能,并且一直在寻求实现Rborist(在R中)。我想并行处理我的工作,但没有找到有关如何完成工作的指导。我有16个处理器要在运行它的机器上使用。例如,当我对randomForest包使用doParallel时,命令:
rf <- foreach(ntree=rep(32, 16), .combine=combine, .packages='randomForest') %dopar% randomForest(x, y, nodesize = 25, ntree=ntree)
它启动16个R进程,并且像randomForest一样缓慢运行,但是可以工作。
Rborist的类似命令:
rb <- foreach(ntree=rep(32, 16), .combine=combine, .packages='Rborist') %dopar% Rborist(x, y, minNode = 25, ntree=ntree)
引发错误:
错误调用合并功能:
警告消息:在mclapply(argsList,FUN,mc.preschedule =
preschedule,mc.set.seed = set.seed ,:所有已调度核心
用户代码中遇到错误
有谁知道如何与Rborist并行化?它似乎没有发生在幕后,因为我在运行时仅使用1 cpu:
rb <- Rborist(x, y, minNode = 25, ntree = 512)
最佳答案
Rborist本身并行运行。它使用了我机器上的所有线程(win 10 64bit)。但是后来我没有先加载doParallel / foreach。
游侠包也是如此,但在游侠中,您可以设置要使用的线程数。
射频的快速实现是我的首要任务:
Rborist(大n,低p)
护林员(处理大p,适度n)
随机的forest.ddr(尚未测试)
H2O中的分布式随机森林。非常快,但是利用
停止标准。