在算法面试中,常常会被一个问题AUC的物理含义是什么。本文参考论文1,介绍一下AUC的物理含义。
概念
在二分类模型中,预测值 p p p表示事件发生的概率。对于分类任务,需要给出一个阈值(threshold)来判别哪些任务是正例、哪些是负例。AUC(Area Under the Curve)提供了一种判别所有阈值效果的指标。AUC的计算逻辑如下所示:
- 将模型预测值排序
- 对于每一个阈值计算TPR(True Positive Rate)和FPR(False Positive Rate)
- 绘制ROC曲线
- 使用梯形近似计算AUC
根据上述流程,绘制的AUC曲线如下所示

其中横轴代表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′=n−e个负样本。由于假设了预测结果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上升
绘制出来如下所示

其中横轴代表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=e′ee′−f
其中 f f f表示当前点,负例被预测成正例的数量。进而,整个ROC曲线下面的面积为
A U C = 1 e ′ e