开始使用免费开始使用

10 折交叉验证

正如视频中所示,验证模型的更好方法是使用多个系统化的测试集,而不是单次随机的训练/测试划分。幸运的是,caret 包让这一点非常容易实现:

model <- train(y ~ ., my_data)

caret 支持多种交叉验证方法。您可以通过 trainControl() 函数指定交叉验证的类型以及折数,并将其传给 train()trControl 参数:

model <- train(
  y ~ ., 
  my_data,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = 10,
    verboseIter = TRUE
  )
)

需要注意的是:用于建模的方法通过主函数 train() 指定,而交叉验证的方法通过 trainControl() 指定。

本练习是课程的一部分

在 R 中使用 caret 的机器学习

查看课程

练习说明

  • 使用 train() 和 10 折交叉验证,拟合一个线性回归模型:用 diamonds 数据集中的所有其他变量作为自变量来预测 price。 (为加速运行,我们已对完整的 diamonds 数据集做了子集处理,但对象名仍为 diamonds。)
  • 将模型打印到控制台并检查结果。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Fit lm model using 10-fold CV: model
model <- train(
  ___, 
  ___,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = ___,
    verboseIter = TRUE
  )
)

# Print model to console
编辑并运行代码