在机器学习中数据集不平衡的情况下,AUC是否比准确度更好的度量标准?

时间:2019-02-26 06:07:02

标签: python machine-learning artificial-intelligence roc auc

在处理不平衡的数据方面更好。就像在大多数情况下一样,如果我要处理的是平衡数据,那么准确性就不能给出正确的想法。即使精度很高,模型的性能也很差。如果不是auc,那是处理平衡数据的最佳方法。

3 个答案:

答案 0 :(得分:1)

关于不平衡类的最大好处不是准确性,因为如果一个类有1%的示例,而另一类有99%,则可以将所有示例归类为零,而仍然获得99%的准确性。

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

Confusion Matrix

然后,您必须定义焦点。考虑到预测性维护,误报是被分类为故障的健康机器,误报是被分类为健康的机器。您可以拥有99%的精度和出色的AUC,但仍然可以达到0%的精度。

Precision and Recall

f1 score

答案 1 :(得分:1)

对于不平衡的数据集都不好。请改用精度调用曲线下的区域。

答案 2 :(得分:0)

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

点精度,召回率和F1得分等指标是使用分类器的决策计算得出的。这意味着您需要选择一个严格的决策阈值,例如高于0.5的任何东西为正,低于0.5的任何东西为负。 (您可能还选择了0到1之间的任何其他决策阈值;选择其他决策阈值将改变您计算的精度,召回率和F1得分。)

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