使用R Package" ranger"并行处理在** Windows **

时间:2017-07-12 22:37:24

标签: r windows

我正在尝试使用R Package" ranger"进行并行处理。在 Windows 环境中。我没有运气。

在过去,我已经完成了以下操作,使用R randomForest包进行并行处理,并使用数据" train"并假设您的芯片有8个核心:

library(foreach)
library(doSNOW)
library(randomForest)
registerDoSNOW(makeCluster(8, type="SOCK"))
system.time( {rf = foreach(ntree = rep(125, 8), .combine = combine, .packages = "randomForest") %dopar% randomForest(y ~ ., data = train, ntree = ntree)} )

基本上,上面的代码在8个独立的核心中创建了125棵树,然后通过" combine"将结果组合成一个单独的随机森林对象。 randomForest包附带的命令。

但是,游侠程序包没有合并命令,我在 Windows 中进行并行处理的所有尝试都无效。

游侠的文档(和相关出版物)没有说明如何在Windows中进行并行处理。

如何使用游侠和 Windows 环境完成此操作?

谢谢

1 个答案:

答案 0 :(得分:0)

在Windows环境中,您可以使用“doParallel”软件包来启用并行处理,而且并非所有软件包都支持并行处理,您可以尝试使用ranger::csrf函数的所需参数。

library(doParallel)
library(ranger)

cl <- makeCluster(detectCores())
registerDoParallel(cl)
rf <- csrf(y ~ ., training_data = train,  test_data = test,
           params1 = list(num.trees = 125, mtry = 4), 
           params2 = list(num.trees = 5)
           )
stopCluster(cl)