Я пытаюсь использовать пакет caret
в R для нескольких вложенных процессов перекрестной проверки с определяемыми пользователем показателями производительности. У меня были всевозможные проблемы, поэтому я отступил, чтобы посмотреть, есть ли проблемы с более нестандартным использованием 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
)