2017-07-12 1 views
-1

Ich versuche, Parallelverarbeitung mit R-Paket "Ranger" in Windows Umgebung zu tun. Ich habe kein Glück.Parallelverarbeitung mit R-Paket "Ranger" in ** Windows **

In der Vergangenheit habe ich folgendes getan mit dem parallelen Bearbeitung mit dem R Random Paket zu tun, sagen Daten „Zug“ und Ihren Chips hat 8 Kern unter der Annahme:

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)}) 

Grundsätzlich über den Code erstellt 125 Bäume in 8 separaten Kernen und kombiniert dann die Ergebnisse zu einem einzigen zufälligen Gesamtstrukturobjekt durch den Befehl "kombinieren", der mit dem Paket randomForest geliefert wird.

Allerdings hat das Ranger-Paket keinen Befehl zum Kombinieren und alle meine Versuche, die parallele Verarbeitung in Windows zu tun, hat nicht funktioniert.

Die Dokumentation (und die entsprechende Publikation) für Ranger sagt nicht, wie Sie in Windows parallel arbeiten.

Irgendwelche Ideen, wie dies mit Ranger und Windows Umgebung getan werden kann?

Danke

Antwort

0

In Windows-Umgebung Sie das „doParallel“ Paket zu ermöglichen parallele Verarbeitung verwenden können, altought nicht alle Pakete unterstützen die parallele Verarbeitung, Sie so etwas wie dies aber mit Ihren dessired Parametern für die ranger::csrf Funktion ausprobieren kann.

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)