我有一些代码适合几个(交叉验证的)模型对某些数据,如下所示。r caret整合 - 在caretList中传递一个适合param的特定模型
library(datasets)
library(caret)
library(caretEnsemble)
# load data
data("iris")
# establish cross-validation structure
set.seed(32)
trainControl <- trainControl(method="repeatedcv",
number=5, repeats=3, # 3x 5-fold CV
search="random")
algorithmList <- c('lda', # Linear Discriminant Analysis
'rpart' , # Classification and Regression Trees
'svmRadial') # SVM with RBF Kernel
# cross-validate models from algorithmList
models <- caretList(Species~., data=iris, trControl=trainControl, methodList=algorithmList)
迄今为止这么好。但是,如果我将'gbm'
添加到我的algorithmList
,则会收到大量无关的日志消息,因为gbm
似乎具有verbose=TRUE
默认适配参数。
按照caret docs,如果我上运行method='gbm'
train
本身(不与在caretList
训练的几款车型一起),我可以简单地添加到verbose=FALSE
train()
,这将流经到gbm
。但是当我在caretList
中尝试它时会引发错误。
所以我想通过verbose=FALSE
(或理论上的任何其他适合参数)专门从caretList
的methodList
的一个特定型号。我怎样才能做到这一点?