开始使用免费开始使用

自定义 trainControl

正如视频中所示,ROC 曲线下面积(AUC)是评估模型区分正负类别(例如将地雷与岩石区分开来)能力的一个非常有用的单一指标。AUC 为 0.5 与随机猜测无异;AUC 为 1.0 表示模型预测完美;AUC 为 0.0 则表示完全反向预测(几乎不会发生)。

与仅在固定阈值下按准确率对模型排名相比,这通常更实用。不同模型可能需要不同的校准步骤(每一步查看混淆矩阵)来找到该模型的最佳分类阈值。

您可以在 caret 中使用 trainControl() 来用 AUC(而非 accuracy)调参与评估模型。twoClassSummary() 这一便捷函数能让您轻松实现这一点。

使用 twoClassSummary() 时,请务必包含参数 classProbs = TRUE,否则模型会报错!(仅有类别预测无法计算 AUC,您还需要类别概率。)

本练习是课程的一部分

在 R 中使用 caret 的机器学习

查看课程

练习说明

  • trainControl 对象自定义为使用 twoClassSummary 而非 defaultSummary
  • 使用 10 折交叉验证。
  • 记得告知 trainControl() 返回类别概率。

交互式实操练习

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

# Create trainControl object: myControl
myControl <- trainControl(
  method = "cv",
  number = ___,
  summaryFunction = defaultSummary,
  classProbs = ___, # IMPORTANT!
  verboseIter = TRUE
)
编辑并运行代码