I am trying to use a carriage package in R for several nested cross-validation processes with "user-defined" performance metrics. I had all kinds of problems, so I stepped back to see if there were problems with a lot of box use in the carriage, and it looks like I ran into it.
If I run the following:
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 )
I get an error (or similar):
Error in { : task 1 failed - "arguments imply differing number of rows: 619, 381"
with warnings:
1: In eval(expr, envir, enclos) : model fit failed for Resample01: interaction.depth=1, n.trees=150, shrinkage=0.1
But, if I run only the gbm procedure, everything ends perfectly.
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 )