【发布时间】: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。