为什么分类准确度较低的AUC比准确度较高的分类器更高?


29

我有两个分类器

  • 答:朴素的贝叶斯网络
  • B:树(单连接)贝叶斯网络

在准确性和其他度量方面,A的性能比B差。但是,当我使用R包ROCR和AUC进行ROC分析时,事实证明A的AUC高于B的AUC。这是为什么发生了什么?

真阳性(tp),假阳性(fp),假阴性(fn),真阴性(tn),敏感性(sen),特异性(spec),阳性预测值(ppv),阴性预测值(npv)和A和B的精度(acc)如下。

+------+---------+---------+
|      |    A    |    B    |
+------+---------+---------+
| tp   | 3601    | 769     |
| fp   | 0       | 0       |
| fn   | 6569    | 5918    |
| tn   | 15655   | 19138   |
| sens | 0.35408 | 0.11500 |
| spec | 1.00000 | 1.00000 |
| ppv  | 1.00000 | 1.00000 |
| npv  | 0.70442 | 0.76381 |
| acc  | 0.74563 | 0.77084 |
+------+---------+---------+

除了边际上的感觉和联系(spec和ppv)(不包括tp,fn,fn和tn)外,B似乎比A更好。

当我计算sens(y轴)与1-spec(x轴)的AUC时

aucroc <- auc(roc(data$prediction,data$labels));

这是AUC比较。

+----------------+---------+---------+
|                |    A    |    B    |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec   | 0.70770 | 0.61000 |
+----------------+---------+---------+

所以这是我的问题:

  • 当B在准确性方面“似乎”优于A时,为什么A的AUC比B更好?
  • 那么,我如何真正判断/比较A和B的分类表现呢?我的意思是,我使用AUC值吗?我是否使用acc值,为什么?
  • 此外,当我对A和B应用适当的评分规则时,B在对数损失,二次损失和球面损失方面都优于A(p <0.001)。这些如何权衡关于AUC的分类性能?
  • A的ROC图看起来非常平滑(它是一条弧线),但是B的ROC图看起来像一组连接的线。为什么是这样?

根据要求,以下是模型A的图。

A型朴素贝叶斯网

这是模型B的图。

B型常规贝叶斯网

这是A和B的概率分布的直方图(中断设置为20)。

直方图

这是B与A的概率散布图。

散点图


1
您的表没有意义:您是如何选择计算这些性能值的点?
Calimo 2014年

3
请记住,AUC 在所有可能的阈值范围内衡量性能。如果可以显示曲线(最好在同一图上),也将有所帮助。
Calimo 2014年

@Calimo对不起,我忘了包含这些信息,但是用于创建该混淆矩阵的阈值为50%。
Jane Wayne

你是0.5 A和B的预测值看起来明显不同,如果还没有提示,则绝对应该并排绘制直方图……
Calimo 2014年

@Calimo您能否澄清一下并列的直方图?
简·韦恩

Answers:


27

cDxy


6
cc

1
@ alto,0.5是非常任意的,这与最不寻常的效用/损失/成本函数一致,其中两种错误同样严重。很少这样。概率地思考,这是我发生的方式,相信大自然的运作方式,没有“错误”之类的东西,而是某种程度的风险预测。例如,预测0.6的概率然后观察事件比预测0.9的概率然后观察事件要差。但是,没有一个预测是“错误的”。您可以使用不需要阈值的概率准确性评分。
Frank Harrell 2014年

3
诸如Logistic这样的无边界模型不会比任何其他方法导致更多的过度拟合。逻辑变换确保概率估计行为良好。对数评分规则的唯一缺点是,如果您预测概率非常接近0或1,并且您是“错误的”。的确,一个人最终做出了决定,但根本没有遵循分析师应该使用阈值做出决定的结论。该决定应推迟到决策者。内特·西尔弗(Nate Silver)的《信号与噪声》一书记录了概率思维的巨大好处。
弗兰克·哈雷尔2014年

1
@FrankHarrell,令人沮丧的是您一直误解我的意见。我从不提倡黑匣子方法。我只是认为您的陈述“ x没用,只能使用y”太强了。
中音2014年

4
@alto可以感知。我认为实时模式识别没有足够的时间来使用实用程序。这不是我工作的地方。但是,在实时情况下,您宁愿让黑匣子告诉您“不确定”,也不愿在“这是一辆坦克向您袭来”还是“这是一辆坦克”之间做出选择。乘用车”。
Frank Harrell 2014年

16
  1. 当B在准确性方面“似乎”优于A时,为什么A的AUC比B更好?

    在阈值0.5处计算精​​度。通过将为所有可能的阈值计算出的所有“准确性”相加来计算AUC。当计算所有阈值时,ROC可以视为这些精度的平均值(期望值)。

  2. 那么,我如何真正判断/比较A和B的分类性能?我的意思是,我使用AUC值吗?我使用acc值吗?为什么?

    这取决于。ROC曲线告诉您有关模型如何区分两个类别的信息,无论阈值在哪里。准确性是一种通常在班级在训练和测试集上保持相同平衡以及分数确实是概率的情况下有效的度量。ROC为您提供了更多有关违反该假设时模型将如何运行的提示(但是仅是一个主意)。

  3. 此外,当我对A和B应用适当的评分规则时,B在对数损失,二次损失和球面损失方面都优于A(p <0.001)。这些如何评估AUC的分类性能?

    我不知道。您必须更好地了解数据的含义。每个模型都能从您的数据中了解什么。然后再决定哪一个是最好的折衷方案。发生这种情况的原因是,没有关于分类器性能的通用指标。

  4. A的ROC图看起来非常平滑(它是一条弧线),但是B的ROC图看起来像一组连接的线。为什么是这样?

    这可能是因为贝叶斯模型为您提供了这两个类之间的平滑过渡。这转化为许多阈值。这意味着ROC曲线上有许多点。由于在输入空间较大的区域中具有相同值的预测,因此第二个模型可能会产生较小的值。基本上,第一条ROC曲线也是由线制成的,唯一的区别是相邻的细线太多了,您将其视为一条曲线。


1
可以在非0.5的阈值下计算精度。
2014年

你当然是对的。这就是为什么我在下一个命题中使用“准确性”的原因。但是,当人们谈论准确性而没有其他上下文信息时,阈值的最佳猜测是0.5。
rapaio

2
很容易看出这样一个过程是多么随意。在需要分类或任意选择的统计数据中,很少有估算者幸免于难。而且我永远也不会将正确分类的比例称为“准确性”。
Frank Harrell 2014年

@unreasonablelearner,您的假设正确。.上面的混淆矩阵是在阈值0.5处计算的。不同的阈值有什么好处吗?
简·韦恩

1
@JaneWayne该公式的确适合正确分类的比例。精度是最常用的术语。但是,准确度意味着更多,并且根据弗兰克·哈雷尔(Frank Harrell)所说,我认为,到目前为止,准确度并不是最佳的术语。现在,我认为即使流行它的用法也可能有害。这就是我的错。
rapaio

4

当B在准确性方面“似乎”优于A时,为什么A的AUC比B更好?

首先,尽管临界值(0.5)相同,但在A和B之间根本无法比较。实际上,它看起来与直方图完全不同!看B:您的所有预测均小于0.5。

其次,为什么B如此准确?由于阶级失衡。在测试B中,您有19138个阴性示例和6687个阳性示例(为什么A中的数字不同,我不清楚:可能缺少值?)。这意味着,只要简单地说一切都是负数,我就已经可以达到非常好的准确性:精确地为19138 /(19138 + 6687)= 74%。请注意,除了类之间存在不平衡这一事实之外,这根本不需要任何知识:即使最笨的模型也可以做到这一点!

而这恰恰是测试B在0.5阈值下所做的……您(几乎)仅得到负面预测。

一个是更多的混合。尽管它的精度略低,但请注意,在这种截止条件下,它的灵敏度要高得多。

最后,您无法将准确性(一个阈值的性能)与AUC(所有可能阈值的平均性能)进行比较。由于这些指标衡量的是不同的事物,因此它们不同也就不足为奇了。

那么,我如何真正判断/比较A和B的分类性能呢?我的意思是,我使用AUC值吗?我使用acc值吗?为什么?

此外,当我对A和B应用适当的评分规则时,B在对数损失,二次损失和球面损失方面都优于A(p <0.001)。这些如何权衡关于AUC的分类性能?

您必须考虑:您真正想要做什么?重要的是什么?最终,只有您可以根据自己对问题的了解来回答该问题。也许AUC是有道理的(除非您真正考虑一下,否则AUC几乎不会真正做到,除非您不想自己做出决定,而是让别人去做-最有可能的是,如果您正在为其他人设计使用的工具),也许准确性(如果您需要一个二进制的,不可行的答案),但是可能处于不同的阈值,可能是其他一些更连续的度量,也许是Frank Harrell建议的度量之一……如前所述,没有普遍的问题这里。

A的ROC图看起来非常平滑(它是一条弧线),但是B的ROC图看起来像一组连接的线。为什么是这样?

返回到您在直方图上显示的预测。A给您连续或几乎连续的预测。相反,B通常只返回几个不同的值(如“尖峰”直方图所示)。

在ROC曲线中,每个点对应一个阈值。在A中,您有很多阈值(因为预测是连续的),因此曲线很平滑。在B中,您只有几个阈值,因此曲线看起来从SN / SP到另一个“跳跃”。

当灵敏度仅改变时(阈值仅对阳性病例有差异),您会看到垂直跳跃;当特异性仅改变时(阈值仅对阴性实例有差异),水平跳跃就会发生;而阈值的变化影响这两个类别时,对角线会跳跃。


+1但是,并非只有AUC才适用于“当您不想自己做出决定而是让别人这样做时”。请参阅:如何手动计算曲线下面积(AUC)或c统计量
gung-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.