在R中运行模型时的内存问题。

问题描述 投票:0回答:1

我是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个)时,代码工作没有问题。所以我的问题是,我可以尝试用完整的数据集来使这个工作?或者说,有没有其他方法可以在不遇到内存问题的情况下实现我想要的东西(使用这三种不同的算法生成预测)?

非常感谢

r random-forest r-caret
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.