我使用R(对于Windows 7,32位)使用randomForests
进行文本分类。由于数据集庞大,我查阅了互联网以加快模型构建,并遇到了randomForestSRC
包。
我已经按照软件包安装手册中的所有步骤进行操作,但在执行rfsrc()
命令期间,R只使用了一个逻辑核心(与randomforest()
相同),最大值CPU利用率为25%。
我按照手册使用了以下命令。
options(mc.cores=detectcores()-1, rf.cores = detectcores()-1)
我在具有4个逻辑核心的Intel i3 2120 CPU上使用Windows 7 Professional 32位Service Pack 1。谁能对我可能遗失的东西有所了解?使用randomForest
和多核利用率的任何其他有效方法也会有所帮助!
答案 0 :(得分:4)
问题是randomForestSRC
使用mclapply
函数进行并行执行,但mclapply
不支持Windows上的并行执行。 randomForestSRC
也可以使用OpenMP进行多线程并行执行,但是不能从CRAN构建到二进制分发中,因此必须在启用了OpenMP支持的情况下从源构建包。
我认为你的两个选择是:
randomForestSRC
; 这是一个简单的并行示例,使用的randomForest
包foreach
和doParallel
来自foreach
小插图中的示例:
library(randomForest)
library(doParallel)
workers <- detectCores()
cl <- makePSOCKcluster(workers)
registerDoParallel(cl)
x <- matrix(runif(500), 100)
y <- gl(2, 50)
ntree <- 1000
rf <- foreach(n=rep(ceiling(ntree/workers), workers),
.combine=combine, .multicombine=TRUE,
.packages='randomForest') %dopar% {
randomForest(x, y, ntree=n)
}
此示例适用于Windows,Mac OS X和Linux。有关详细信息,请参阅foreach vignette。