插入符包中的 trainControl

trainControl in caret package

在 caret 包中,有一个叫做 trainControl 的东西可以让我们执行各种交叉验证。要执行 10 折交叉验证,可以使用

fitControl <- trainControl(method= "repeatedcv", number = 10, repeats = 10)
fitJ48_10_fold <- train(x = x, y =y, method = "J48", trControl= fitControl)

而对于训练集,它是

fitControl <- trainControl(method= "none")
fitJ48train <- train(x = x, y =y, method = "J48", trControl= fitControl)

但是,这些模型的混淆矩阵对于 10 倍和训练都显示相同。

Activity <- predict(fitJ48_10_fold, newdata = Train)
confusionMatrix(Activity, Train$Activity)

Activity <- predict(fitJ48train, newdata = Train)
confusionMatrix(Activity, Train$Activity)

我使用了 weka 分类器 GUI,实际上 10 折交叉验证的 J48 性能低于训练集。我怀疑 caret 中的 trainControl 不工作或者我以错误的方式传递它是错误的吗?

Am I wrong to suspect that the trainControl from caret isn't working or I pass this in a wrong way?

有一点。对于 J48,有一个调整参数,但默认网格仅适合单个值 C = 0.25。无论您在 trainControl 中使用什么 method 值,最终模型都将相同,因此混淆矩阵将始终相同。

最大