R:插入符号序列输出的解释

R: Interpretation of caret train output

我有一个关于在 caret 中使用 train 函数进行交叉验证超参数搜索的非常基本的问题。 运行 时,它会产生如下所示的输出:

我的问题是为什么每个超参数配置有不止一行,输出中的 +- 表示什么?


一些可以产生如上输出的示例代码(取自here的随机示例):

library(caret)
library(datasets)
data(mtcars)
split = createDataPartition(y = mtcars$mpg, p = 0.6, list = FALSE)
dev = mtcars[split,]
val = mtcars[-split,]
ctrl = trainControl(method = "cv",number = 10, verbose = TRUE)
lmCVFit = train(mpg ~ ., data = mtcars, method = "lm", trControl = ctrl, metric="Rsquared")
summary(lmCVFit)

我想在解释中具体说明,这就是为什么我要求提供实际代码的原因,但在这里。

输出显示了在 10 折交叉验证的每一折中测试的参数。更详细:

你的第二行(我从第二行开始,因为测试以 + 开始,你会明白为什么)表明在 Fold 3 中测试的参数是:

  • eta = 0.01, max_depth=4, gamma=1 and nround=1000

该算法实际上会保留那些存储的,因为它正在尝试找到参数的最佳组合。在下一行(第 3 行)中,输出与第 2 行完全相同,唯一的区别是它以负号开头。这只是通知您,上述参数的处理现已结束。您会注意到所有以减号开头的行始终与其上方的行(具有加号)相同。第 4 行以加号开始并测试一组新参数(实际上这次唯一改变的是 max_depth=8)。虽然这个过程仍然在交叉验证的第 3 次折叠中,并且这将在其他折叠中发生相同的次数,以便算法可以选择最佳参数。