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

时间:2015-11-13 13:08:54

标签: r r-caret

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

enter image description here

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

一些示例代码可以产生如上所述的输出(从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)

1 个答案:

答案 0 :(得分:2)

我希望在解释中具体说明为什么我要求实际的代码,但现在就这样了。

输出显示10倍交叉验证的每个折叠中测试的参数。更详细:

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

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

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