2016-07-27 34 views
0

Ich versuche, das 'Caret' -Paket zu verwenden, um einige Vorhersagen für ein Dataset mit der Größe von ungefähr 28000 Zeilen und 58 Spalten aller numerischen Daten auszuführen. (Dies ist der Maische Social News Dataset auf UCI Dataset Repository, wenn Sie sich fragen, nachdem 75% davon für den Trainingsdatensatz genommen)Speicherprobleme in R beim parallelen Ausführen von Modellen

Ich versuche, einige Klassifizierungsmodelle auf einem "Ja"/"Nein" zu betreiben wenn die Anzahl der Seitenaufrufe 1400. überschritten

Dies ist die allgemeine Eingabe ich bin mit

library(caret) 
library(foreach) 
library(doParallel) 

cl<-detectCores() *.5 
registerDoParallel(cl) 

ctrl = trainControl(
    summaryFunction = twoClassSummary, 
    classProbs = TRUE, 
    savePredictions = 'final', # change to TRUE for all 
    method = 'cv', 
    number = kfolds, 
    repeats = repeats_folds, 
    verboseIter = TRUE, 
    seeds = seeds, 
    allowParallel =TRUE, 
    preProcOptions = c('scale','center') 
) 




"train" is the first 58 or so columns exlcuding a couple of irrelevant ones 



mod_rf = train(
    x = train, y = target, 
    method = 'rf', 
    trControl = ctrl, 
    tuneGrid = grid_rf, 
    # tuneLength = NULL, 
    metric=measurement 
) 

aber ich habe was wichtige Fragen zu sein scheint, wenn es um die Erzeugung der tatsächlichen Vorhersage kommt. Entweder mein Computer stürzt mit einem Popup auf Rstudio ab und sagt, dass es beendet werden muss oder es scheint einfach nicht zu beenden.

Ich habe ein 16gb MacBook Pro auf dem neuesten Stand der Technik. Gibt es etwas, was ich tun könnte oder sollte, um meine Leistung zu verbessern? Meine Anzahl an Kernen, die hier verwendet wird, ist 4 statt 8, da das den Rest meines Laptops verlangsamte.

+0

Versuchen Sie mit Methode = "ParRF". Andernfalls wird randomforest nicht parallel ausgeführt. – phiver

+0

Versuchen Sie, 'method =" ranger "' oder eines der anderen leistungsstarken Pakete für zufällige Gesamtstrukturen zu verwenden. Denken Sie daran, dass Sie die Speicheranforderungen immer erhöhen _X_-falten, indem Sie mit _X_ workers parallel arbeiten. Sehen Sie auch im Aktivitätsmonitor vor der parallelen Ausführung nach, wie viel Speicher Ihre Daten belegen, bevor Sie eine zufällige Gesamtstruktur ausführen . – topepo

+1

@phiver Bei der Parallelverarbeitung wird die Modell-Optimierung parallel ausgeführt, nicht jedoch das zugrundeliegende RF-Modell. Dies ist im Allgemeinen schneller als sequentielles Tuning und paralleles Ausführen jedes RF-Modells. – topepo

Antwort

-1

Ich denke, Sie verwenden RegisterDoParallel falsch. Verwenden Sie:

cl <- makeCluster(detectCores()) 
registerDoParallel(cl)