Я пытаюсь использовать пакет «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, так как это замедляет работу моего ноутбука.
Попробуйте использовать метод = "parRF". В противном случае randomforest не будет работать параллельно. – phiver
Попробуйте использовать 'method =" ranger "' или один из других высокопроизводительных пакетов случайных лесов. Имейте в виду, что вы всегда будете увеличивать потребность в памяти _X_-fold при параллельном запуске с использованием _X_рабочих. Кроме того, загляните в Activity Monitor перед параллельным запуском, чтобы оценить, сколько памяти ваши данные занимают до запуска случайного леса , – topepo
@phiver Используя параллельную обработку, он будет запускать параллельную модель, но не базовую модель RF. Это, как правило, быстрее, чем настройка последовательно и параллельная работа каждой RF-модели. – topepo