2016-07-27 2 views
0

Я пытаюсь использовать пакет «caret» для запуска некоторых предсказаний в наборе данных размером около 28000 строк и 58 столбцов всех числовых данных. (это набор данных социальных новостей mash в репозитории набора данных UCI, если вам интересно, взяв 75% от него для набора учебных данных)Проблемы с памятью в R при параллельном запуске моделей

Я пытаюсь запустить некоторые модели классификации на «да»/«нет», если количество просмотров страниц превысило 1400.

Это общий вход Я использую

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 
) 

Однако, я имею то, что, как представляется, основные проблемы, когда речь идет о генерации фактического предсказания. Либо мой компьютер выходит из строя со всплывающим окном на Rstudio, говоря, что ему нужно прекратить работу или он просто не заканчивается.

У меня есть 16-гигабайтное современное Macbook Pro. Есть ли что-нибудь, что я мог или должен сделать, чтобы улучшить свою работу? Мое количество ядер, используемых здесь, составляет 4 вместо 8, так как это замедляет работу моего ноутбука.

+0

Попробуйте использовать метод = "parRF". В противном случае randomforest не будет работать параллельно. – phiver

+0

Попробуйте использовать 'method =" ranger "' или один из других высокопроизводительных пакетов случайных лесов. Имейте в виду, что вы всегда будете увеличивать потребность в памяти _X_-fold при параллельном запуске с использованием _X_рабочих. Кроме того, загляните в Activity Monitor перед параллельным запуском, чтобы оценить, сколько памяти ваши данные занимают до запуска случайного леса , – topepo

+1

@phiver Используя параллельную обработку, он будет запускать параллельную модель, но не базовую модель RF. Это, как правило, быстрее, чем настройка последовательно и параллельная работа каждой RF-модели. – topepo

ответ

-1

Я думаю, вы используете registerDoParallel неправильно. Попробуйте использовать:

cl <- makeCluster(detectCores()) 
registerDoParallel(cl) 
Смежные вопросы