【问题标题】:Caret and GBM Errors插入符号和 GBM 错误
【发布时间】:2013-02-10 21:04:29
【问题描述】:

我正在尝试将 R 中的 caret 包用于具有用户定义的性能指标的多个嵌套交叉验证过程。我遇到了各种各样的问题,所以我回过头来看看是否有更多开箱即用的caret 使用问题,看来我遇到了一个问题。

如果我运行以下命令:

install.packages("caret")
install.packages("gbm")
library(caret)
library(gbm)


data(GermanCredit)
GermanCredit$Class<-ifelse(GermanCredit$Class=='Bad',1,0)



gbmGrid <- expand.grid(.interaction.depth = 1,
                       .n.trees = 150,
                       .shrinkage = 0.1)


  
   gbmMOD <- train(Class~., data=GermanCredit
                ,method = "gbm",
             tuneGrid= gbmGrid,
                distribution="bernoulli",
                bag.fraction = 0.5, 
                train.fraction = 0.5, 
                n.minobsinnode = 10, 
                cv.folds = 1, 
                keep.data=TRUE,
                verbose=TRUE
                
)

我收到错误(或类似错误):

{ 中的错误: 任务 1 失败 - “参数暗示不同的行数:619、381”

带有警告:

1: In eval(expr, envir, enclos) :
  model fit failed for Resample01: interaction.depth=1, n.trees=150, shrinkage=0.1

但是,如果我只运行 gbm 例程,一切都会很好。

gbm1 <- gbm(Class~., data=GermanCredit,
            distribution="bernoulli",
            n.trees=150, # number of trees
            shrinkage=0.10, 
            interaction.depth=1, 
            bag.fraction = 0.5,
            train.fraction = 0.5, 
            n.minobsinnode = 10, 
            cv.folds = 1, 
            keep.data=TRUE, 
            verbose=TRUE
)

【问题讨论】:

  • 我发现添加参数 cv.folds=1 时会引发错误。 cv.folds 应该传递给 gbm,但由于某种原因它会导致错误。 cv.folds=0 无论如何都是 gbm 的默认值(应该给出与 cv.folds=1 相同的结果)。
  • 解决可疑错误的通常方法是联系包维护人员
  • 发布问题后,我找出了错误的来源,并将通过电子邮件发送给 Max Kuhn。

标签: r r-caret


【解决方案1】:

有两个问题:传递cv.folds 导致了问题。此外,您不需要将结果转换为二进制数;这导致train 认为这是一个回归问题。 train 函数背后的想法是消除与建模函数的不一致性,因此我们使用因子进行分类,使用数字进行回归。

【讨论】:

    【解决方案2】:

    请注意-尽管此问题是由答案中描述的原因引起的,但旧版本的插入符号和 gbm 也可能出现错误消息(如下所示)。我遇到了这个错误,在花了很多时间试图找出问题所在之后,我不得不升级到最新版本的 caret (5.17-7) 和 gbm (2.1-0.1)。这些是今天在 CRAN 上的最新版本。

    Error in { : 
    task 1 failed - "arguments imply differing number of rows: ...
    

    【讨论】:

      猜你喜欢
      • 2015-06-30
      • 2014-06-15
      • 2018-01-09
      • 2016-06-18
      • 2014-07-27
      • 2017-08-28
      • 1970-01-01
      • 2015-08-18
      • 2015-12-04
      相关资源
      最近更新 更多