给定一个平衡的数据集(两个类的大小相同),将其拟合到SVM模型中,我产生高AUC值(〜0.9),但准确度低( 〜0.5)。在平衡数据集中具有高AUC和低准确度的原因
我完全不知道为什么会发生这种情况,任何人都可以为我解释这种情况吗?
给定一个平衡的数据集(两个类的大小相同),将其拟合到SVM模型中,我产生高AUC值(〜0.9),但准确度低( 〜0.5)。在平衡数据集中具有高AUC和低准确度的原因
我完全不知道为什么会发生这种情况,任何人都可以为我解释这种情况吗?
我猜你是小姐计算ROC曲线读取时正确的类...
这将解释低准确性和高(计算错误)AUC。
很容易看出,如果AUC在其ROC曲线交叉时用于比较两个分类器,可能会引起误解。分类器A可以产生比B更高的AUC,而B对于实际使用分类器的阈值的大部分可以更好地执行。实际上,经验研究表明,常见分类器曲线的ROC 确实很常见。还有更深的原因 为什么AUC是不连贯的,因此是不恰当的措施(参见下面的 )。
http://sandeeptata.blogspot.com/2015/04/on-dangers-of-auc.html
我最近偶然发现了同样的问题。这是我自己想出来的 - 让我知道如果我错了。
为了更好地理解为什么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分析告诉你一些关于正类的样本可以与其他类分离的程度,而预测的准确性暗示了分类器的实际性能。
而对于这个更详细的答案也看[这里](https://stats.stackexchange.com/questions/90659)! – normanius
你可以绘制你的混淆矩阵吗? –
顺便说一句,我的第一个想法是,你错过了领导正确的标签。尝试绘制roc曲线,可能你会注意到AUC正在猜测0为1,反之亦然...... –
答案有帮助吗? –