3

如何为交叉验证生成 ROC 曲线?

对于单个测试,我认为我应该对 SVM 的分类分数进行阈值化以生成 ROC 曲线。

但我不清楚如何为交叉验证生成它?

4

2 回答 2

5

经过一轮完整的交叉验证后,所有观察都被分类一次(尽管通过不同的模型),并且已经给出了属于感兴趣类别的估计概率,或类似的统计数据。这些概率可用于生成 ROC 曲线,其方式与在外部测试集上获得的概率完全相同。当您将分类阈值从 0 更改为 1 时,只需计算分类错误率即可。

但是,通常您希望执行多轮交叉验证,因为性能会根据折叠的划分方式而有所不同。如何计算所有回合的平均 ROC 曲线对我来说并不明显。我建议将它们全部绘制并计算平均 AUC。

于 2012-09-20T08:44:52.033 回答
2

作为 Backlin 的后续行动:

不同运行的 k-fold 或 leave-n-out 交叉验证的结果变化表明模型的不稳定性。这是有价值的信息。

  • 当然,您可以合并结果并只生成一个 ROC。
  • 但是您也可以绘制曲线集,
    例如 R 包ROCR
  • 或计算不同阈值的中位数和IQR,并构建一个描述这些变化的带。
    这是一个示例:阴影区域是在 8 倍交叉验证的 125 次迭代中观察到的四分位间距。细黑色区域包含一个特定阈值的一半观察到的特异性-敏感性对,中位数用 x 标记(忽略 + 标记)。 迭代交叉验证的 ROC
于 2012-09-23T16:51:46.063 回答