Я новичок в R и пытаюсь сгенерировать предсказания переменной "да" / "нет", используя модель ансамбля. Для этого я использую caret
для генерации прогнозов, используя случайный лес (ranger
), модель LASSO (glmnet
) и дерево регрессии с градиентным усилением (xgblinear
). Мой набор данных содержит около 600 тыс. Наблюдений и 500 переменных (смесь непрерывных и двоичных переменных весом 322 МБ), из которых я использую 30% для обучения моделей.
Вот код, который я использую для этого:
train_control_final <- trainControl(method = "none", savePredictions = TRUE, allowParallel = T, classProbs = TRUE,summaryFunction = twoClassSummary)
rff_final <- train(training_y~., data = training_final, method = "ranger",
tuneGrid = rfgrid_final, num.trees = 250, metric = "ROC", sample.fraction = 0.1,
replace = TRUE, trControl=train_control_final, maximize = FALSE, na.action = na.omit)
rboost_final <- train(training_y~., data = training_final, method = "xgbLinear",
tuneGrid = boostgrid_final, metric = "ROC", subsample = 0.1,
trControl=train_control_final, maximize = FALSE, na.action = na.omit)
rlasso_final <- train(training_y~., data = training_final, method = "glmnet",
tuneGrid = lassogrid_final, metric = "ROC",
trControl=train_control_final, maximize = FALSE, na.action = na.omit)
На первом шаге я использую разные 10% выборки для настройки параметров для каждой модели (используя 3- сверните CV), с результатами, сохраненными в rf / lasso / boostgrid_final (для этого я использую ту же структуру кода).
Проблема в том, что каждый раз, когда я запускаю этот код для генерации прогнозов, R вылетает, потому что проблем с памятью. Код работает без проблем при настройке параметров и включении меньшего количества переменных (около 60). Поэтому мой вопрос: что я могу попытаться сделать, чтобы это работало с полным набором данных? Или есть альтернативный способ выполнения sh того, что я хочу (генерировать прогнозы, используя эти три различных алгоритма), не сталкиваясь с проблемами с памятью?
Заранее большое спасибо!