AUC(一):AUC与Mann–Whitney U test

在算法面试中,常常会被一个问题AUC的物理含义是什么。本文参考论文1,介绍一下AUC的物理含义。

概念

在二分类模型中,预测值 p p p表示事件发生的概率。对于分类任务,需要给出一个阈值(threshold)来判别哪些任务是正例、哪些是负例。AUC(Area Under the Curve)提供了一种判别所有阈值效果的指标。AUC的计算逻辑如下所示:

  • 将模型预测值排序
  • 对于每一个阈值计算TPR(True Positive Rate)和FPR(False Positive Rate)
  • 绘制ROC曲线
  • 使用梯形近似计算AUC

根据上述流程,绘制的AUC曲线如下所示

AUC(一):AUC与Mann–Whitney U test_第1张图片

其中横轴代表FPR,纵轴代表TPR。

AUC与Mann-Whitney U statistic

面试中,常常会问AUC的物理含义,绝大部分人都会说:“给出一个正样本与一个负样本,正样本比负样本分值大的概率”。再进一步,为什么是这样的,绝大部分人就懵逼了。下面将回答这个从"what"到"why"的问题。为了便于解释和推导,这里假设不同样例预测值完全不同(not ties)。针对ties的情况,可参见论文[1]。not ties的情况如下

index label s c o r e ( 100 % ) score(100 \%) score(100%)
1 1 98.4
2 1 95.2
3 1 94.4
4 0 92.8
5 1 83.2
6 1 81.6
7 1 58.4
8 0 57.6
9 0 28.0
10 0 13.6
11 1 3.2
12 0 2.4
13 0 1.6
14 0 0.8
15 0 0.0

ties情况

index label s c o r e ( 100 % ) score(100 \%) score(100%)
1 1 98.4
2 1 98.4
3 1 98.4
4 0 98.4
5 1 83.2
6 1 81.6
7 1 58.4
8 0 57.6
9 0 28.0
10 0 13.6
11 1 3.2
12 0 2.4
13 0 1.6
14 0 0.8
15 0 0.0

假设在整个验证集有 n n n个样本, e e e个正样本, e ′ = n − e e'=n-e e=ne个负样本。由于假设了预测结果not ties,理想状态下,不同阈值可以将样本切分成 n n n块。在上述not ties的例子中,阈值为 [ 100 , 98.3 , 95.1 , 94.3 , . . . . . ] [100,98.3,95.1,94.3,.....] [100,98.3,95.1,94.3,.....]。此时,每选择一个阈值仅会出现下属两种情况下的一种:

  • TPR上升
  • FPR上升

绘制出来如下所示

AUC(一):AUC与Mann–Whitney U test_第2张图片

其中横轴代表FPR,纵轴代表TPR。从图片可知,只有当TPR上升时,才会有新增面积。此时新增面积为

a r e a   g a i n e d = e ′ − f e ′ e area \ gained = \frac{e'-f}{e'e} area gained=eeef

其中 f f f表示当前点,负例被预测成正例的数量。进而,整个ROC曲线下面的面积为

A U C = 1 e ′ e ∑ i = 1 e ( e ′ − f i ) = 1 − 1 e ′ e ∑ i = 1 e f i AUC = \frac{1}{e'e}\sum_{i=1}^{e}(e'-f_{i})=1-\frac{1}{e'e}\sum_{i=1}^{e}{f_{i}} AUC=ee1i=1e(efi)=1ee1i=1efi

若想求ROC曲线下面的面积,即转化为求 F = ∑ i = 1 e f i F=\sum_{i=1}^{e}{f_{i}} F=i=1efi,计算公式如下所示:

F = ∑ i = 1 e f i = ∑ i = 1 e ( r i − i ) = ∑ i = 1 e r i − e ( e + 1 ) 2 ( 1 ) F=\sum_{i=1}^{e}{f_{i}}=\sum_{i=1}^{e}{(r_{i}-i)}=\sum_{i=1}^{e}{r_{i}}-\frac{e(e+1)}{2} \qquad (1) F=i=1efi=i=1e(rii)=i=1eri2e(e+1)(1)

其中 r i r_{i} ri表示当前验证集中的排序位置。对于上面的no ties的例子, ∑ i = 1 e f i = 7 \sum_{i=1}^{e}{f_{i}}=7 i=1efi=7

熟悉统计学的人知道,有一种检验方式叫Mann–Whitney U test(曼-惠特尼U检验),它的目的是检验两个总体均值为 u 1 u_{1} u1 u 0 u_{0} u0的样本是否有显著差异。给定两个样本,数量分别为 e e e e ′ e' e,Mann–Whitney U test的计算方式如下:

U = ∑ i = 1 e r 1 i − e ( e + 1 ) 2 U = \sum_{i=1}^{e}{r_{1i}}-\frac{e(e+1)}{2} U=i=1er1i2e(e+1)

其中 r 1 i r_{1i} r1i表示第 i i i个正例的 r a n k rank rank。显然Mann–Whitney U test与 F F F的计算方式相同,因而将上面的公式组合可知:

A U C = 1 − U e ′ e AUC = 1 - \frac{U}{e'e} AUC=1eeU

A U C AUC AUC可以直接通过Mann–Whitney U test直接得到。看到这里,可能会有人疑问。维基百科明明写着

A U C = U e ′ e AUC = \frac{U}{e'e} AUC=eeU

到你这里怎么变成这样了。仔细阅读的读者会发现,公式 ( 1 ) (1) (1)使用的 r i r_{i} ri是按照预测概率从大到小排列的 r a n k rank rank。若 r i r_{i} ri按照从小到大排列,此时

U ′ = ∑ i = 1 e ( n − r i + 1 ) − e ( e + 1 ) 2 U'=\sum_{i=1}^{e}{(n-r_{i}+1)}-\frac{e(e+1)}{2} U=i=1e(nri+1)2e(e+1)

进而

U + U ′ = ∑ i = 1 e ( n + 1 ) − e ( e + 1 ) = e e ′ U + U' = \sum_{i=1}^{e}{(n+1)}-e(e+1)=ee' U+U=i=1e(n+1)e(e+1)=ee

从而

A U C = U ′ e ′ e AUC=\frac{U'}{e'e} AUC=eeU

通过上述公式推导可知,在相关文档中为了公式简明,将 r i r_{i} ri从大到小转化为从小到大排列,进而产生了维基百科中的公式。

AUC物理含义

通过上面的公式推导可知,AUC的物理含义其实就是Mann–Whitney U test的物理含义。Wilcoxon-Mann-Witney Test的一种计算方法是:

  • e × e ′ e \times e' e×e个正负样本对中,有多少个中的正样本的score大于负样本的score。
  • 若分值一样,则记为0.5
  • 加和结果除以 e × e ′ e \times e' e×e

其物理含义是:测试任意给一个正类样本和一个负类样本,正类样本的score有多大的概率大于负类样本的score。

总结

本篇博客从AUC的计算出发,介绍了AUC与Mann-Witney Test的等价关系,进而给出AUC的物理含义。接下来将介绍AUC在工业场景的应用。

  1. Areas beneath the relative operating characteristics (ROC) and relative operating levels (ROL) curves: Statistical signi cance and interpretation ↩︎

你可能感兴趣的:(机器学习,深度学习,AUC,nlp,机器学习,AUC)