【问题标题】:doRedis/foreach GBM parallel processing error in RR中的doRedis / foreach GBM并行处理错误
【发布时间】:2016-01-03 10:46:17
【问题描述】:

我正在使用 caret 包运行 gbm 模型,并尝试使用 doredis 包的并行处理使其工作。我可以让后端工作人员全部启动并运行,但是当他们重新组合到最终模型中时遇到问题。我收到此错误:

    Error in foreach(j = 1:12, .combine = sum, .multicombine = TRUE) %dopar%  : 
      target of assignment expands to non-language object

这是我第一次尝试运行 foreach 循环(更不用说像 gbm 这样的复杂问题了)并且在尝试理解和实现它时遇到了问题。我已经进行了许多 Google 搜索,但在使用 gbm 实现 foreach 时一无所获,对于理解 foreach 的任何帮助将不胜感激。这是我的代码:

    set.seed(825)
    library(caret)
    require(foreign)

    data <- read.spss("C:\\Users\\cc\\Documents\\mydata.sav",use.value.labels=TRUE, to.data.frame = TRUE)
    getOption("max.print")
    options(max.print = 99999999)
    set.seed(825)
    start.time <- Sys.time()
    x <- data[, -162]
    y <- data[, 162]
    fitControl = trainControl(method = "cv", number = 8,  allowParallel=TRUE)
     gbmGrid <-  expand.grid(interaction.depth = c(49), n.trees = (1:2), shrinkage = c(0.03), n.minobsinnode = 50)


    require(doRedis)
    registerDoRedis('jobs')
    options('redis:num'=TRUE)
    foreach(j=1:12,.combine=sum,.multicombine=TRUE) %dopar%

    gbmFit <- train(x=x,y=y,"gbm", tuneGrid = gbmGrid, trControl=fitControl)
    gbmFit
    summary(gbmFit)

    end.time <- Sys.time()
    time.taken <- end.time - start.time
    time.taken

更新 根据有关使用某种数据集进行复制的建议,我将 mydata 切换为 Iris 数据集 data &lt;- iris 并将 X 和 Y 更改为 x &lt;- data[, -5] y &lt;- data[, 5] 也发生了同样的错误。

【问题讨论】:

    标签: r foreach parallel-processing redis gbm


    【解决方案1】:

    我找到了答案!我联系了 redis 的创建者,他又联系了 caret 的创建者。似乎插入符号会自动处理拆分作业,因此不需要 foreach 循环。只需完全删除该行,它就会完美运行。

    在旁注中,他指示我告诉其他人去 github 下载最新的 doRedis 包,因为它比当前的 doredis 包更好,但并没有为 CRAN 做好准备。

    使用此代码安装新的 doRedis 包(注意在运行代码之前确保您还安装了Rtools

    install.packages("devtools")
    devtools::install_github("bwlewis/doRedis")
    

    【讨论】:

      猜你喜欢
      • 2016-10-08
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-06
      • 1970-01-01
      相关资源
      最近更新 更多