2016-07-15 954 views
1

给定一个平衡的数据集(两个类的大小相同),将其拟合到SVM模型中,我产生高AUC值(〜0.9),但准确度低( 〜0.5)。在平衡数据集中具有高AUC和低准确度的原因

我完全不知道为什么会发生这种情况,任何人都可以为我解释这种情况吗?

+2

你可以绘制你的混淆矩阵吗? –

+0

顺便说一句,我的第一个想法是,你错过了领导正确的标签。尝试绘制roc曲线,可能你会注意到AUC正在猜测0为1,反之亦然...... –

+0

答案有帮助吗? –

回答

1

我猜你是小姐计算ROC曲线读取时正确的类...
这将解释准确性和(计算错误)AUC

很容易看出,如果AUC在其ROC曲线交叉时用于比较两个分类器,可能会引起误解。分类器A可以产生比B更高的AUC,而B对于实际使用分类器的阈值的大部分可以更好地执行。实际上,经验研究表明,常见分类器曲线的ROC 确实很常见。还有更深的原因 为什么AUC是不连贯的,因此是不恰当的措施(参见下面的 )。

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

0

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

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

接收者操作员特征(ROC)带来与真正率(TPR)相关的假阳性率(FPR)。

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

ROC曲线是通过计算TPR和FPR为不同的分类的预测截断(以下简称“决定阈值”)创建(如你肯定已经知道了),这是用来决定是否标观察结果属于一个类别或另一个类别:

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分析告诉你一些关于正类的样本可以与其他类分离的程度,而预测的准确性暗示了分类器的实际性能。

+0

而对于这个更详细的答案也看[这里](https://stats.stackexchange.com/questions/90659)! – normanius