[TOC]

关于AUC的解释,书本上写的都是说随机选择一个正样本和一个负样本,正样本通过分类器(比如logistic regression)得出的得分(一个零到一之间的值)比负样本高的概率。这个解释莫名其妙的,因为AUC是ROC下面的面积,而ROC则又是描述的TP与FP的关系,从哪儿冒出来这么个“直观的”解释呀?

通过这篇博文,以及quora上的解释,我才大概有些明白这是怎么回事。首先来看一个ROC曲线(来自Receiver operating characteristic (ROC)):

ROC

可以发现直线基本上都是直上直下的,这个问题我之前也没有想过。

那么我们来分析一些简单的情形。考虑一组数据$D$,通过逻辑回归模型算出来的分数从低到高排序(以label表示个体)为:

-(0.1),-(0.2),-(0.3),+(0.6),+(0.9)

那么我们选择不同的阈值(相当于decision stump)就会得到一条完美的ROC曲线,是什么?就是那个1*1的矩形!这是因为我们能找到一个阈值时分类器完美地实现分类效果:

ROC2

注:好像完全被坐标轴挡住了。。。

发现了什么?这个模型得到的ROC曲线基本是上直上直下的,甚至基本没怎么弯曲!我们来考虑什么时候TP会变化,什么时候FP会变化。当阈值从最小开始慢慢变化的时候,每跨过一个positive样本的时候, TP就会增加$1/N_p$,每跨过一个negtive样本的时候, FP就会增加$1/N_n$。比如,我们将上面完美的数据改一下:

-(0.1),-(0.2),+(0.3),-(0.6),+(0.9),

画出ROC:

ROC3

曲线不是完整的正方形了,而是在左上角有个缺角!从数据上来看,这个结果无论怎样选阈值都不会完美地分类。什么原因?因为上面我们排完序的结果是"-,-,+,-,+",注意到有一个positive sample跑到negtive sample左边去了。我们考虑随机选取一个positive sample以及随机选取一个negtive sample,计算positive sample的score比negtive sample 大的概率。很显然,这个概率是5/6,因为只有选到不满足条件的只有可能是第三个(+)和第四个(-),由于随机选择正样本的概率是1/2,随机选择负样本的概率是1/3,那么不满足条件的概率就是1/6。所以,$P(\text positive) > P(\text negtive)=5/6$。那么AUC是多少呢?睁着眼睛看一看就知道,也是5/6!这显然就验证了那个课本上的“直观解释”。可是这会不会只是一个巧合呢?

我们仔细分析一下曲线的走势与数据的关系。首先想象一下要有完美的分类结果,要求样本按score排完序后负样本都在左边,正样本都在右边。当阈值为$1$的时候,相当于阈值在score最大的样本的右边。渐渐地减小阈值, TP会变大,当阈值还没走到分数最大的负样本的时候, NP不变,所以ROC曲线一直从原点垂直往上走,一直使得TP变为1,然后阈值要到第一个负样本。此时,FP开始变大,但TP保持最大值不变。随着阈值变小, FP已知增加到1,曲线沿着$x$轴平行的方向走一直到(1,1)点。这样就形成了一个正方形。

我们再看一下第二个例子:

(-,-,+,-,+)

曲线一开始沿着$y$轴走,可是走着走着到0.5的时候发现了一个异常情况,与理想情况不一样,曲线走到一半开始往右拐了。前面已经说过往右拐的原因是出现positive sample与negtive sample错位了!

现在我们把目光转移到negtive sample上来。假设我们随机选择一个负样本,概率是$1/N_n$,当阈值接近这个负样本的时候,大于该负样本的正样本数目站总正样本数目的比例就是TP,这也是随机选取一个正样本大于该负样本的概率。所以总的随机选取一个正样本的score大于堆积选取一个负样本的score的概率应该是所有的负样本上的TP的总和乘以$1/N$。对应到我们的ROC曲线,每一个negtive样本的TP乘以$1/N_n$就是曲线下一小块的面积(因为FP的增加都是$1/N$为单位的,阈值每经过一个负样本都会使曲线往右走$1/N_n$的长度,这在前面已经分析过了)。所以,把所有的负样本的TP加起来乘以$1/N_n$就是曲线下面的面积!

对角线(0, 0)到(1, 1)虚线的解释:一般称这条线为基准线(实际上也是一个曲折的线,但假设数据无限多的话应该就光滑了),不可能有模型的AUC比基准线差。这是因为,这条线表示随机分类模型,如果一个模型比随机还差的话真是没有存在的必要了。