我正在尝试使用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 环境完成此操作?
谢谢
答案 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)