代码之家  ›  专栏  ›  技术社区  ›  cag

插入符号序列功能-无法找到变量“optimismBoot”

  •  7
  • cag  · 技术社区  · 9 年前

    我不熟悉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

    3 回复  |  直到 8 年前
        1
  •  23
  •   R.S.    9 年前

    Caret github页面上有对该问题的引用。

    请参见此处: https://github.com/topepo/caret/issues/706

    在这种情况下,我想直接从github安装插入符号应该可以解决问题。

    devtools::install_github('topepo/caret/pkg/caret')

    https://github.com/topepo/caret

    遵循以下步骤:(假设您使用的是RStudio)

    1. devtools 照常包装
    2. 运行命令
    3. 重新启动RStudio/R。包资源管理器中的插入符号版本将与以前相同,但包将使用新代码
    4. 为了确保它已更新,您可以使用 caret:::nominalTrainWorkflow 并确保其中包含以下行: export <- c("optimism_xy") . 如果你现在就这么做的话 optimismBoot optimism_xy

    PS: 插入符号的最新版本日期为2017年9月7日。因此,更新也应该解决这个问题。

        2
  •  2
  •   Mohanad Mohammed    9 年前

    here

    我希望这有帮助

        3
  •  0
  •   wordsforthewise    8 年前

    我会说使用 example from the docs 用于并行处理。

    library(parallel)
    library(doMC)
    # use all cores except one
    doMC::registerDoMC(cores = parallel::detectCores() - 1)
    

    这就是你要做的,然后你就可以跑了 train() 它应该使用您指定的内核数。 parallel