衡量指标之roc以及auc

April 29, 2020

1. 历史起源

1941年,日军偷袭珍珠港,太平洋战争由此爆发。

image日军战斗机俯瞰珍珠港

美军的雷达操作员(Radar operator)开始忙碌了起来,他们要识别出雷达屏幕上的光点是不是日本的战机。

image-Radar

因为光点也有可能是我方军舰,也有可能是噪声。为了衡量识别的性能,研究者们设计了ROC曲线(Receiver operating characteristic curve)。所谓Receiver就是雷达接收器,operating characteristic则是表明雷达操作员(Radar operator)的识别能力。

后来,ROC曲线被应用到了医学领域,还有机器学习领域。虽然名字比较奇怪,但是从诞生之初,ROC曲线的目的就是衡量分类的性能。AUC则是ROC曲线下的面积( Area Under the ROC Curve),有一些优雅的性质,我们后面再说。

想讲清楚ROC曲线,先要讲一下混淆矩阵。

2. 混淆矩阵:太极生两仪,两仪生四象

先从两类开始说起,Positive和Negative,医学上叫阳性和阴性,机器学习称之为正例和负例。经过分类器的决策后,一般情况下,正例预测的有对有错,负例预测的也有对有错。这样数据会被划分成4部分:正例预测对(True Positive), 正例预测错(False Negtative),负例预测对(True Negative),负例预测错(False Positive)

为了帮助大家记忆,上面的场景可以用《易经》里的一句话来总结:太极生两仪,两仪生四象。怎么理解呢?太极生两仪,说得就是数据由阴阳两部分组成。两仪生四象,说得是经过分类器的决策,数据被划分成四个象限,也就是混淆矩阵。学术上一般叫:真阳,假阴,真阴,假阳。如果把“真”换成“太”,“假”换成“少”,则就变成易经的四象:太阳,少阴,太阴,少阳。有人可能要问:有没有八卦?因为混淆矩阵只刻画预测值和实际值的两元关系,所以八卦的三元组合不适合混淆矩阵。又有人问,那三分类的混淆矩阵有没有类似的记忆方法?还真有,就是金庸小说《侠客行》里提到的《太玄经》。太极如果是二进制,那么太玄经就是三进制。一玄分三方,三方合九州。

image-yinyang

混淆矩阵一般如下图表示。

image-confusion_matrix

3. 如何衡量分类器的好坏?

如何衡量一个分类器是有效的,而不是随机结果?还是以雷达识别敌舰这个场景来说明。

3.1 两个假设:1. 正负例等比例分布 2. 分类器输出是离散值, 也就是label的集合.

此时预测为正的结果可以划分成两部分:TP和FP。比较两者关系,有如下结论:

3.2 一个假设:分类器输出是离散值, 也就是label的集合.

这个时候在用TP和FP的绝对值做对比就显得不公平, 举个例子,我方军舰10艘,敌方军舰100艘。预测并且击沉我方军舰8艘,敌方军舰9艘.绝对数量上确实是占优势,但是我方基本全军覆没,敌方绝大多数战力仍然保留。样本不均衡时,就得做归一化,看相对值。

这里引入两个概念:TPR(True Positive Rate),FPR(False Positive Rate)

TPR就是正例中预测正确的比率。FPR就是负例预测错的比例。

TPR和FPR,比较两者关系,有如下结论:

把TPR和FPR可视化,在“分类器输出是离散值, 也就是label”的假设下,TPR和FPR是确定的,在二维坐标系上就是一个点。这个点就是ROC曲线的雏形。如下图:

image-20200501002151692

图中,C点就是随机抽样()。A,B,D点表示分类器有一定的甄别能力()。其中D点对应的是一个完美的分类器,所有的正例被识别正确(),所有的负例没有识别错误()。E点就是分类器太差(),不如随机抽样。

3.3 另一个假设:分类器输出是连续值。

此时需要确定一个阈值来决定混淆矩阵和TPR,FPR。

TPR的计算如下图所示:

image-TPR

FPR的计算如下图所示:

image-FPR

对于同一个分类器,不同的阈值对应不同的TPR和FPR,遍历阈值,即可得到ROC曲线。如下图:

image-ROC

对于一个分类器,固定阈值,则得到一条ROC曲线。不同分类器会使预测的数据分布不同,在固定阈值的情况下,ROC曲线变化如下图:

image-roc_of_classifiers

直观来看,分类器的区分度越好,ROC曲线则越往左上角靠拢。AUC就越大。怎么解释?

4. AUC的概率解释

如果把ROC曲线看成是的函数,我们对这个函数进行积分。如下图所示:

image-int

假设样本label为,模型预测得分为,阈值为,正例的概率密度函数为,负例的概率密度函数为.则有

的积分上限函数,根据积分上限函数的性质,得到:

则有:

上面推导需要解释一下:

最终得到这么一个结论:AUC的值,就是从样本中任意取一个正例和一个负例,正例得分大于负例得分的概率。

5. AUC的一些性质

从公式可以看出,TPR的计算只局限在正例中,FPR的计算只局限在负例中。正例(或负例)如果同分布的增加或者减小,对于ROC曲线来说没有区别,因为在正例(或负例)内部已经做了归一化。如下图所示。

image-roc_imb1

但如果正例(或负例)的比例在变化的同时,分布也发生了变化,那么ROC和AUC也会随之变化。如下图

image-roc_imb2

AUC使用时,有几点需要注意:

衡量指标之ROC以及AUC - April 29, 2020 -