在机器学习中的不平衡数据集的情况下,AUC 是比准确性更好的指标吗?如果不是,那么哪个是最佳指标?

Posted

技术标签:

【中文标题】在机器学习中的不平衡数据集的情况下,AUC 是比准确性更好的指标吗?如果不是,那么哪个是最佳指标?【英文标题】:Is AUC a better metric than accuracy in case of imbalenced datasets in machine learning,If not which is the best metric? 【发布时间】:2019-07-19 15:10:42 【问题描述】:

auc 在处理不平衡数据方面更好。在大多数情况下,如果我处理不平衡的数据准确性并没有给出正确的想法。即使准确率很高,模型的性能也很差。如果不是 auc,这是处理不平衡数据的最佳方法。

【问题讨论】:

看看这个问答***.com/questions/51190809/… 除了上面的帖子,Getting a low ROC AUC score but a high accuracy中的答案也可能有用 【参考方案1】:

不平衡类的好处不在于准确率,因为如果一个类有 1% 的示例,而另一个有 99%,那么您可以将所有示例归类为零,仍然可以获得 99% 的准确率。

考虑到混淆矩阵(如下),您还应该分析 Precision 和 Recall。这些度量为您提供了误报和漏报的总数。

然后你必须定义哪个是你的焦点。考虑到预测性维护,误报是归类为故障的健康机器,而误报是将故障归类为健康的机器。您可以获得 99% 的准确度和出色的 AUC,但仍然获得 0% 的准确度。

【讨论】:

【参考方案2】:

两者都不适合不平衡的数据集。改为使用精确召回曲线下的区域。

【讨论】:

【参考方案3】:

“点指标”(精度、召回率、F1 分数)与适用于整个分类器的指标(如 ROC 曲线下面积或 PR 曲线下面积)之间存在差异。

精度、召回率和 F1 分数等点指标是使用分类器的决策计算得出的。这意味着您需要选择一个硬决策阈值,例如高于 0.5 为正,低于 0.5 为负。 (您也可以选择介于 0 和 1 之间的任何其他决策阈值;选择不同的决策阈值会改变您计算的精度、召回率和 F1 分数。)

您还可以计算 ROC 曲线下面积 (“AUC”) 和精确召回曲线下面积 (AUPRC) 等指标。这些指标可以被视为不同决策阈值的“平均值”。您可以使用预测概率的向量来计算这些,而不是二进制标签的向量。 ROC 曲线下的区域非常受欢迎,但当您的数据偏斜以包含大量真阴性时,它就不是很有用。精确召回曲线下的面积是一个很好的指标,当您的数据偏斜以具有大量真正的否定时,可以使用该指标。有关如何计算 AUROC 或 AUPRC 以及何时使用它们的更多信息,您可以查看this article on AUROC 和this article on AUPRC。

【讨论】:

以上是关于在机器学习中的不平衡数据集的情况下,AUC 是比准确性更好的指标吗?如果不是,那么哪个是最佳指标?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习:处理非平衡数据集的办法

处理Auto-Sklearn中多类分类的不平衡数据集的最佳方法

机器学习中的评估指标

[转]如何处理机器学习中的不平衡类别

scikit-learn 中的不平衡

机器不学习:如何处理数据中的「类别不平衡」?