我是R的新手,想用一个集合模型来预测一个 "是""否 "的变量。为此,我使用了 caret
来生成预测,使用随机森林(ranger
),一个LASSO(glmnet
)和梯度提升的回归树(xgblinear
)模型。我的数据集包含大约60万个观测值和500个变量(连续变量和二元变量的混合,权重322MB),我使用其中的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),结果存储在rflassoboostgrid_final中(为此,我使用了相同的代码结构)。
问题是,每次我运行这段代码生成预测结果时,R都会因为内存问题而崩溃。当调整参数和包含较少的变量(大约60个)时,代码工作没有问题。所以我的问题是,我可以尝试用完整的数据集来使这个工作?或者说,有没有其他方法可以在不遇到内存问题的情况下实现我想要的东西(使用这三种不同的算法生成预测)?
非常感谢