尝试并行运行模型时R中的内存问题
我试图使用“插入符号”包在一个数据集上运行一些预测,该数据集的大小约为28000行58列,包含所有数值数据。这是UCI数据集存储库上的mash社交新闻数据集,如果您想知道的话,在将其75%用于培训数据集之后 如果页面浏览量超过1400,我尝试在“是”/“否”上运行一些分类模型 这是我使用的一般输入尝试并行运行模型时R中的内存问题,r,performance,memory,r-caret,R,Performance,Memory,R Caret,我试图使用“插入符号”包在一个数据集上运行一些预测,该数据集的大小约为28000行58列,包含所有数值数据。这是UCI数据集存储库上的mash社交新闻数据集,如果您想知道的话,在将其75%用于培训数据集之后 如果页面浏览量超过1400,我尝试在“是”/“否”上运行一些分类模型 这是我使用的一般输入 library(caret) library(foreach) library(doParallel) cl<-detectCores() *.5 registerDoParallel(cl)
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上弹出提示需要终止,要么它似乎没有完成
我有一台16gb最先进的MacBookPro。我可以或应该做些什么来提高我的表现?我在这里使用的核心数是4而不是8,因为这会减慢我笔记本电脑的其他部分 我认为您使用registerDoParallel不正确。尝试使用:
cl <- makeCluster(detectCores())
registerDoParallel(cl)
尝试使用method=parRF。否则,randomforest将不会并行运行。请尝试使用method=ranger或其他高性能随机林包之一。请记住,使用X Worker并行运行时,您将始终将内存需求增加X倍,并行运行前查看Activity Monitor(活动监视器),以评估在运行random forest(随机林)之前数据占用的内存。@phiver使用并行处理的方式将并行运行模型调整,但不会并行运行基础RF模型。这通常比顺序调谐和并行运行每个RF模型更快。