Параллельная обработка с пакетом R "рейнджер" в **Windows**
Я пытаюсь сделать параллельную обработку с "Ranger" пакета R в среде 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)} )
По сути, приведенный выше код создает 125 деревьев в 8 отдельных ядрах, а затем объединяет результаты в один объект случайного леса с помощью команды "Объединить", которая поставляется с пакетом randomForest.
Однако в пакете Ranger нет команды объединить, и все мои попытки выполнить параллельную обработку в Windows не сработали.
В документации (и соответствующей публикации) для Ranger не говорится, как выполнять параллельную обработку в Windows.
Любые идеи, как это можно сделать с помощью Ranger и Windows среды?
Спасибо
1 ответ
В среде 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)