ROC曲线在构建机器学习模型时是在什么阶段使用的?

数据挖掘 机器学习 机器学习模型 模型选择 奥克
2022-01-19 18:24:34

在开发机器学习模型时,在哪个阶段使用 ROC 曲线和 AUC?

通常我有三个数据集

train- validation-final test

我使用组合train + validation集进行 K-Fold 交叉验证在该阶段,我们可以计算包括真阳性、假阳性以及其他指标在内的指标,并将它们平均以创建类似于 ROC 曲线的图。类似于scikit-learn 的这个例子

然而,我们也可以通过使用所有数据训练最终模型并在最后进行train + validation测试来test set获得指标,这也可以为我们提供所有指标、分类报告和 ROC 曲线等。

我的问题是,人们通常会做两次 ROC 曲线,一次在交叉验证期间,然后第二次用于最终测试?还是仅在选择算法时在验证阶段/超参数调整期间使用的东西?

1个回答

ROC-AUC 曲线用于找到优化True Positive Rate vs False Positive Rate的最佳阈值。在 K 折交叉验证中使用它是确定要使用的最佳阈值的好习惯。

然后,您的最终测试将在这里验证您没有过度拟合某些超参数,包括此阈值。所以ROC-AUC不能在最终测试中再次使用您应该将最终测试的结果与交叉验证中使用的相同阈值进行比较。

希望能帮助到你。

关于阈值(编辑)的注释:
要优化的阈值可以是用于输出概率的二元分类问题(例如,sigmoid 或逻辑回归的输出)的阈值。在这种情况下,各种阈值设置给出了模型的各种预测(FPRTPR),因此构建了 ROC 曲线。
您可以在sklearn 指南页面上进一步阅读。