我是R和RStudio的新手,并且一直在尝试预测建模。以下列车功能在没有并行处理的情况下工作,但是当我实现doSNOW makeCluster时,我得到下面显示的与名为“optimismBoot”的变量相关的错误。我试图找到解决方案,尝试安装和卸载软件包,但没有任何作用。任何洞察力都赞赏。
cl <- makeCluster(2, type = "SOCK")
registerDoSNOW(cl)
caret.cv <- train(ReturnedToMF ~ .,
data = trees.cetstrain,
method = "xgbTree",
tuneGrid = tune.grid,
trControl = cetstrain.control)
Error in e$fun(obj, substitute(ex), parent.frame(), e$data) :
unable to find variable "optimismBoot"
我在此网站上找到了以下链接,但它并没有提供使并行处理工作的解决方案:Caret on R spills "unable to find variable "optimismBoot"" error message
答案 0 :(得分:23)
在Caret github页面上有对此问题的引用。 他们似乎最近修好了
见这里: https://github.com/topepo/caret/issues/706
在这种情况下,我想直接从github安装插入符应该可以解决问题。
devtools::install_github('topepo/caret/pkg/caret')
见这里: https://github.com/topepo/caret
请按照以下步骤操作:(我假设您正在使用RStudio)
devtools
包devtools::install_github('topepo/caret/pkg/caret')
并检查输出以确保从github刷新包caret:::nominalTrainWorkflow
输出此更改的内部函数的源代码,并确保以下行位于export <- c("optimism_xy")
。如果您现在就行,那么该行将optimismBoot
而不是optimism_xy
PS: Caret的最新版本日期为2017年9月7日。因此更新也应解决问题。 击>
答案 1 :(得分:2)
当我更新新的插入符号版本是caret_6.0-77的时候我遇到了这个问题,现在我通过下载旧版本的插入包来解决它是来自cran档案包的caret_6.0-76看到这个链接单击here !,然后从工具菜单中使用Rstudio在本地安装软件包文件,然后从弹出菜单中选择它出现的安装包对话框选择从文件安装(.extension)
我希望这有用
答案 2 :(得分:0)
我会说使用example from the docs进行并行处理。
library(parallel)
library(doMC)
# use all cores except one
doMC::registerDoMC(cores = parallel::detectCores() - 1)
这就是你所要做的,然后你可以运行train()
,它应该使用你指定的核心数。
我对它进行了一些调整,以便使用parallel
库动态检测核心数量。