Параллельная обработка с пакетом 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)
Другие вопросы по тегам