在平衡数据集中具有高AUC和低精度的原因

问题描述 投票:2回答:2

给定平衡的数据集(两个类的大小相同),将其拟合到SVM模型中我产生高AUC值(~0.9)但是低精度(~0.5)。

我完全不知道为什么会发生这种情况,有人能为我解释这个案子吗?

machine-learning auc
2个回答
1
投票

我猜你在计算roc曲线时错过了读正确的课程... 这将解释低精度和高(错误计算)的AUC。

很容易看出,当用于比较两个分类器(如果它们的ROC曲线交叉)时,AUC可能会产生误导。分类器A可以产生比B更高的AUC,而B对于实际使用分类器的大多数阈值表现更好。事实上,实证研究表明,普通分类器的ROC曲线确实很常见。还有更深层次的原因导致AUC不连贯,因此是一种不恰当的衡量标准(见下文参考文献)。

http://sandeeptata.blogspot.com/2015/04/on-dangers-of-auc.html


1
投票

我最近偶然发现了同样的问题。这是我为自己想出来的 - 让我知道我是不是错了。

为了更好地理解为什么ROC曲线下面积(AUC)可能很高而同时精度很低,让我们快速概括这些术语的含义。

接收器 - 运营商特性(ROC)将误报率(FPR)与真实正率(TPR)相关联。

TPR: number of true positives / number of times the prediction was positive
FPR: number of false positives / number of times the prediction was negative

通过计算TPR和FPR来计算分类器的变化预测截止值(“决策阈值”),即用于确定观察是属于一个类别还是属于一个类别的标量,创建ROC曲线(您已经知道)另一个:

if score_function(observation) <= cutoff: 
    observation belongs to the "negative" class A
else:           
    observation belongs to the "positive" class B

得到的曲线下面积称为AUC。它指示您的分类器是否有可以有效识别正面(或B类)的配置。

现在,你可以注意到的一点是,整个ROC分析只涉及“积极因素” - 无论是真还是假(分别是TPR和FPR)。真实的负面率(TNR)和假负面率(FNR)完全被忽略了。

另一方面,准确性定义为所有正确标记的案例与案件总数的比率:

accuracy = (TP + TN)/(Total number of cases)

还有一点要提到的是,当您计算该分类器的准确度时,分类器的截止值通常是固定的。 (通常,如果score_function的结果代表概率,则此截止值固定为0.5。)

那么,如果AUC很大而精度很低,那怎么可能呢?如果您的分类器以高假阴性率(或低真阴性数)为代价在阳性类别(高AUC)上实现良好性能,则可能会发生这种情况。

培训过程导致具有如此差的预测性能的分类器的问题是不同的,并且特定于您的问题/数据和您使用的分类方法。

总之,ROC分析可以告诉您有关正类的样本与其他类别的分离程度如何,而预测准确性暗示了分类器的实际性能。

© www.soinside.com 2019 - 2024. All rights reserved.