尝试并行运行模型时R中的内存问题

尝试并行运行模型时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)

我试图使用“插入符号”包在一个数据集上运行一些预测,该数据集的大小约为28000行58列,包含所有数值数据。这是UCI数据集存储库上的mash社交新闻数据集,如果您想知道的话,在将其75%用于培训数据集之后

如果页面浏览量超过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上弹出提示需要终止,要么它似乎没有完成


我有一台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模型更快。