AUC代表什么,它是什么?


228

上下搜索,无法找出与预测相关的AUC代表什么或表示什么。


8
检查auc您使用的标签的描述:stats.stackexchange.com/questions/tagged/auc
蒂姆

4
曲线下方的区域(即ROC曲线)
Andrej'1

7
这里的读者可能也对以下主题感兴趣:了解ROC曲线
gung

11
“搜索上下限”一词很有趣,因为您可以通过在Google中键入“ AUC”或“ AUC statistics”找到许多出色的AUC定义/用途。当然有适当的问题,但是那句话让我措手不及!
Behacad 2015年

3
我使用了Google AUC,但很多顶级结果并未明确指出AUC =曲线下面积。与它相关的第一个Wikipedia页面确实有它,但是直到一半。回想起来,它似乎很明显!谢谢大家提供一些非常详细的答案
josh 2015年

Answers:


308

缩略语

AUC在大多数时候用来表示AUROC,这是一个不好的做法,因为正如Marc Claesen指出的那样,AUC模棱两可(可以是任何曲线),而AUROC则不是。


解读AUROC

AUROC有几种等效的解释

  • 期望将均匀绘制的随机正数排在均匀绘制的随机负数之前。
  • 在均匀抽取的随机负数之前,正数的预期比例排名。
  • 如果在紧接均匀绘制的随机负数之前划分等级,则期望的真实正率。
  • 在均匀抽取随机正数之后,负数的预期比例排名。
  • 如果排名是在均匀抽取的随机正数之后进行划分,则预期的误报率。

更进一步:如何得出AUROC的概率解释?


计算AUROC

假设我们有一个概率二元分类器,例如逻辑回归。

在呈现ROC曲线(=接收器工作特性曲线)之前,必须了解混淆矩阵的概念。当我们进行二进制预测时,可以有四种类型的结果:

  • 我们预测0,而真正的类别实际上是0:这称为True Negative,即我们正确地预测该类别为负面(0)。例如,防病毒软件没有将无害文件检测为病毒。
  • 我们预测0,而真正的类别实际上是1:这被称为False Negative,即我们错误地预测了该类别为负面(0)。例如,防病毒软件未能检测到病毒。
  • 我们预测1,而真实类别实际上是0:这被称为False Positive,即我们错误地预测类别为正面(1)。例如,防病毒软件将无害文件视为病毒。
  • 我们预测1,而真正的类别实际上是1:这称为True正,即我们正确地预测该类别为正(1)。例如,防病毒软件正确检测到病毒。

为了获得混淆矩阵,我们回顾了模型所做的所有预测,并计算了这四种类型的结果中每种结果发生了多少次:

在此处输入图片说明

在混淆矩阵的此示例中,在已分类的50个数据点中,正确分类了45个,错误分类了5个。

由于要比较两个不同的模型,使用单个度量标准而不是几个度量标准通常更方便,因此我们从混淆矩阵计算两个度量标准,然后将其合并为一个:

  • 真阳性率TPR),又名。灵敏度,命中率召回,定义为。直观地,该度量对应于被正确视为正的正数据点相对于所有正数据点的比例。换句话说,TPR越高,我们将错过的阳性数据点就越少。TPTP+FN
  • 假阳性率FPR),又名。辐射,定义为。直观地,该度量对应于被误认为是正的负数据点相对于所有负数据点的比例。换句话说,FPR越高,负数据点将被错误分类。FPFP+TN

要将FPR和TPR合并为一个指标,我们首先要计算两个前一个指标,并使用许多不同的阈值(例如)进行逻辑回归,然后将它们绘制在一个图上, FPR值在横坐标上,TPR值在纵坐标上。所得的曲线称为ROC曲线,我们认为的度量标准是该曲线的AUC,我们称为AUROC。0.00;0.01,0.02,,1.00

下图以图形方式显示了AUROC:

在此处输入图片说明

在此图中,蓝色区域对应于接收器工作特性(AUROC)曲线下方的区域。对角线中的虚线表示随机预测变量的ROC曲线:AUROC为0.5。随机预测变量通常用作基准,以查看模型是否有用。

如果您想获得一些第一手的经验:


4
精彩的解释。谢谢。一个问题只是为了澄清我的理解:我是说对了,在这张图上,蓝色的正方形会具有ROC曲线(AUC = 1),并且会是一个很好的预测模型吗?我认为这在理论上是可能的。
2015年

25
@josh是的,是的。AUROC在0到1之间,并且AUROC = 1表示预测模型是完美的。实际上,AUROC离0.5越远越好:如果AUROC <0.5,则只需要反转模型所做的决策即可。结果,如果AUROC = 0,这是个好消息,因为您只需要反转模型的输出即可获得理想的模型。
Franck Dernoncourt,2015年

1
链接“若干等效解释”已断开。
海涛杜

1
在AUROC解释中,“如果在均匀绘制的随机正数之后才对等级进行划分,则预期的误报率是多少?”,这不是(1-FPR)吗?
Mudit Jain

1
理想情况下,@ ryu576 ROC曲线中的点数确实是测试样本的数量。
Franck Dernoncourt

60

虽然我参加聚会有点晚,但这是我的5美分。@FranckDernoncourt(+1)已经提到了AUC ROC的可能解释,而我最喜欢的是他名单上的第一个(我使用了不同的措辞,但相同):

分类器的AUC等于分类器将随机选择的正例排名高于随机选择的负例的概率,即P(score(x+)>score(x))

考虑以下示例(auc = 0.68):

在此处输入图片说明

让我们尝试模拟它:绘制随机的正面和负面例子,然后计算正面得分高于负面得分的案例所占的比例

cls = c('P', 'P', 'N', 'P', 'P', 'P', 'N', 'N', 'P', 'N', 'P',
        'N', 'P', 'N', 'N', 'N', 'P', 'N', 'P', 'N')
score = c(0.9, 0.8, 0.7, 0.6, 0.55, 0.51, 0.49, 0.43, 0.42, 0.39, 0.33, 
          0.31, 0.23, 0.22, 0.19, 0.15, 0.12, 0.11, 0.04, 0.01)

pos = score[cls == 'P']
neg = score[cls == 'N']

set.seed(14)
p = replicate(50000, sample(pos, size=1) > sample(neg, size=1))
mean(p)

我们得到0.67926。非常接近,不是吗?

 

顺便说一句,在RI中,通常使用ROCR软件包绘制ROC曲线并计算AUC。

library('ROCR')

pred = prediction(score, cls)
roc = performance(pred, "tpr", "fpr")

plot(roc, lwd=2, colorize=TRUE)
lines(x=c(0, 1), y=c(0, 1), col="black", lwd=1)

auc = performance(pred, "auc")
auc = unlist(auc@y.values)
auc

在此处输入图片说明


真好 第二个灰色块明确说明了绘制方法。
2015年

+1(之前)。在上面,我链接到另一个主题,您在其中对相关主题做出了非常出色的贡献。这在赞扬@FranckDernoncourt的帖子上做得很好,并有助于进一步充实它。
gung

1
在R包装产生的ROC曲线中,颜色代表什么?能否请您添加一些细节。谢谢 !
Prradep

或许,这将是有益的补充阳性和阴性的解释在上面的灰色盒子?否则可能会造成混乱。
cbellei

42

这些讨论均未包含重要考虑因素。上面讨论的过程会引起不适当的阈值设置,并会使用不正确的准确性评分规则(比例),这些规则会通过选择错误的特征并赋予错误的权重进行优化。

面对最优决策理论,连续预测的二分法立马实现。ROC曲线无法提供可行的见解。没有研究人员检查其收益,他们已经成为必须。它们具有非常大的墨水:信息比率。

最佳决策不考虑“正面”和“负面”,而是考虑结果的估计概率。效用/成本/损失函数在ROC的构建中不起作用,因此ROC的无用性被用来将风险估计转换为最佳(例如,最低预期损失)决策。

统计模型的目标通常是做出预测,而分析师通常应该在此停下来,因为分析师可能不知道损失函数。预测歧视(例如,使用引导程序)进行无偏验证的关键要素是预测歧视(衡量此差异的一种半好的方法是一致性概率,该一致性概率恰好等于ROC下的面积,但如果不这样做,则更容易理解。 “T绘制ROC)和校准曲线。如果您使用绝对规模的预测,则校准验证确实非常必要。

有关更多信息,请参见生物统计学的生物医学研究中的信息丢失一章和其他章节。


2
其他所有答案都集中在没有实际用处的数学公式上。唯一正确的答案投票最少。
最大

6
我一直在接受哈雷尔(Harrell)教授关于该主题的看似含糊的答案-它们​​在强迫您认真思考的方式方面很棒。我相信他在暗示的是,即使您接受更高百分比的假阴性(同时减少假阳性)可能会成为您的临界点,您也不想在HIV筛查测试中接受假阴性病例(虚构的例子)在AUC最大值处。对不起,您的过分简单化。
Antoni Parellada


17

AUC是曲线下面积的缩写。它用于分类分析,以确定哪个使用的模型最能预测类别。

它的应用示例是ROC曲线。在此,将真实的阳性率与错误的阳性率作图。下面是一个示例。模型的AUC越接近1,就越好。因此,具有较高AUC的模型优于具有较低AUC的模型。

请注意,除了ROC曲线外,还有其他方法,但它们也与真实的阳性和假阳性率相关,例如精确调用,F1-Score或Lorenz曲线。

                                            ROC曲线示例


2
您能否在对0/1结果进行简单交叉验证的情况下解释ROC曲线?我不十分了解这种情况下的曲线构造方式。
好奇的

9

这个论坛上的答案很棒,我经常回到这里作为参考。但是,一件事总是不见了。从@Frank的答案中,我们将AUC解释为阳性样本比阴性样本得分更高的概率。同时,计算方法是绘制TPR和FPR作为阈值,更改并计算该曲线下的面积。但是,为什么曲线下的这个面积与此概率相同?@Alexy通过模拟显示它们很接近,但是我们可以用数学方法得出这种关系吗?让我们假设以下内容:τ

  1. A是模型为实际处于肯定类别的数据点生成的分数的分布。
  2. B是模型为实际上处于负类的数据点生成的分数的分布(我们希望它在的左侧)。A
  3. τ是截止阈值。如果得到的数据点的分数大于该分数,则可以预测它属于正类。否则,它被认为是负面类。

注意,TPR(调用)由以下各项给定:,而FPR(沉降)由以下各项提供:。P(A>τ)P(B>τ)

现在,我们在y轴上绘制TPR,在x轴上绘制FPR,绘制各种曲线,并计算该曲线下的面积()。τAUC

我们得到:

AUC=01TPR(x)dx=01P(A>τ(x))dx
其中是FPR。现在,一种计算此积分的方法是将视为均匀分布。在这种情况下,由于制服的PDF为1 ,因此仅成为的期望。xxTPR

(1)一种üC=ËX[P一种>τX]
如果我们考虑。Xü[01个

现在,只是XFP[R

X=FP[R=P>τX
由于我们认为来自均匀分布,X

P>τXü
=>P<τX1个-üü
(2)=>FτXü

但是,我们从认识反变换法,对于任何随机变量,如果则。这是因为采用任何随机变量并对其应用CDF会导致统一。XFXÿüÿX

FXX=PFXX<X=PX<FX-1个X=FXFX-1个X=X
,这仅适用于统一。

在方程式(2)中使用此事实可得出:

τX

将其代入公式(1),我们得到:

一种üC=ËXP一种>=P一种>

换句话说,曲线下方的面积是随机正样本比随机负样本具有更高分数的概率。

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.