评估分类器时如何选择错误度量?

机器算法验证 机器学习 分类 错误
2022-02-03 03:06:09

我在 Kaggle 比赛中看到了不同的误差指标:RMS、均方、AUC 等等。选择错误度量的一般经验法则是什么,即您如何知道针对给定问题使用哪个错误度量?有什么指导方针吗?

3个回答

您可以选择的错误指标池在分类和回归之间是不同的。在后者中,您尝试预测一个连续值,并通过分类预测离散类别,例如“健康”或“不健康”。从您提到的示例中,均方根误差适用于回归,而 AUC 适用于具有两个类别的分类。

让我给你一些关于分类的更多细节。您提到 AUC 作为衡量标准,即ROC 曲线下的面积,这通常只适用于具有两个类别的二元分类问题。尽管有一些方法可以为两个以上的类别构建 ROC 曲线,但它们失去了两个类别的 ROC 曲线的简单性。另外,只有在选择的分类器输出与每个预测相关联的某种分数时,才能构建ROC曲线。例如,逻辑回归将为您提供两个类别中的每一个的概率。除了简单之外,ROC 曲线的优点是它们不受数据集中正负标记实例之间的比率的影响,并且不会强迫您选择阈值。尽管如此,建议不仅只查看 ROC 曲线,还要查看其他可视化。我建议看一下精确召回曲线和成本曲线。一种真正的误差测量,它们都有其优点和缺点。

我发现在这方面有帮助的文献有:

如果你的分类器没有提供某种分数,你必须回退到可以从包含真阳性、假阳性、真阴性和假阴性数量的混淆矩阵中获得的基本度量。上面提到的可视化(ROC、precision-recall、cost curve)都是基于这些表,通过使用不同的分类器得分阈值得到的。在这种情况下,最流行的度量可能是F1-Measure. 此外,您可以从混淆矩阵中检索到一长串测量值:敏感性、特异性、阳性预测值、阴性预测值、准确度、马修斯相关系数……与 ROC 曲线类似,混淆矩阵在二元分类问题,但多类会变得更复杂,因为对于N您必须考虑的课程N×N表或N 2×2每个表都比较其中一个类(A)针对所有其他类(不是A)。

让我对已经存在的答案再添加一些想法。

  • 大多数分类器实际上确实有一个中间连续分数,通常在该分数上应用分配困难类的阈值(低于 t:类 a,高于:类 b)。改变这个阈值会产生 ROC。
  • 一般来说,将这样的曲线压缩成一个数字并不是一个好主意。参见例如The Case Against Accuracy Estimation for Comparing Induction Algorithms
    有许多不同的 ROC 具有相同的 AUC,并且对于给定的应用程序的有用性可能会有很大差异。
  • 反过来:阈值的选择可能在很大程度上取决于您拥有的应用程序。
  • 您无需查看这些边界之外的分类器性能,如果您选择一个指标,那么至少应该只总结有界其他指标的相关范围。
  • 根据您的研究设计,正确或错误分类样本的总体比例可能是适当的总结,您可以从中得出的结论也取决于研究设计:您的测试数据是否反映了先验概率(流行率)上课?对于您的分类器应该用于的人群?是分层收集的吗?这与分类器的大多数用户对预测值更感兴趣的事实密切相关,但敏感性和特异性更容易测量。

  • 您询问一般准则。一项一般准则是您需要知道

    • 您需要什么样的性能(灵敏度、特异性、预测值等。回答有关分类器行为的具体问题,请参阅我在这里写的内容)。
    • 对于您的应用,这些性能特征的可接受工作范围是多少?
      这些可能有很大差异:您可能愿意在垃圾邮件检测中接受相当多的假阴性,但这对于 HIV 诊断来说是不可接受的设置......

我认为除非您能回答这些问题,否则您将无法找到有用的指标。

这有点像分类器验证中也没有免费的午餐。

预期的错误分类错误率是我最常使用和看到的方法。ROC 的 AUC 是一组分类规则的度量。如果想法是将特定分类器与另一个分类器进行比较,那么 AUC 是不合适的。某种形式的分类错误最有意义,因为它最直接地代表了分类规则的性能。

由于重代入估计的大偏差和留一法的高方差,许多工作都在寻找分类错误率的良好估计。已考虑自举和平滑估计器。例如,参见 Efron 在 JASA 1983 中关于交叉验证的引导改进的论文。

这是 1995 年Efron 和 Tibshirami 撰写的斯坦福大学技术报告,总结了包括我自己的一些工作在内的文献。