简单介绍
ROC曲线Receiver Operating Characteristic curve(受试者工作特征曲线)
AUC值 Area Under Curve score (曲线下面积值),也就是ROC曲线之下与坐标轴围成的面积。这两个指标一般作为衡量二分类器的度量,为什么要有这个测试指标,源自于一种二分类器的思考。如果我们有一件事情的为1的概率为99%,0的概率为1%,则如果我们不经过处理,全将结果写成1,我们也能够得到99%的准确率,而这个分类器给我一点指导意义都没有。可见准确率(accuracy)并不能说明什么问题。我们继准确率之后,对于二分类器的性能度量经过了一系列的改进和变化。我今天想要介绍的是现在使用的比较多的一种衡量方式:ROC曲线与AUC值。不过还得从最原始的方式谈起。经典的二分类器性能度量
我们把思维拨回二分类器思想刚产生的时候,人们是如何对它进行评定的。
Precision与Recall
我们将二分类器的所有可能取值,做一个方格图如下:
这其中,
- TP —— True Positive (真正, TP)被模型预测为正的正样本(原来为正预测为正)
- TN —— True Negative(真负 , TN)被模型预测为负的负样本(原来为负预测为负)
- FP ——False Positive (假正, FP)被模型预测为正的负样本(原来为负预测为正)
- FN—— False Negative(假负 , FN)被模型预测为负的正样本 (原来为正预测为负)
我们由这几个值的物理意义知: TP+FP +FN+TN =样本总个数
准确率accuracy不太起作用的时候,我们便顺应自己的需求,对分类器的整体性能有个考量。这时候我们就大致将问题分成两种:查准问题和查全问题。
查准问题,也就是一定要准。比如选择西瓜时,宁愿漏掉不少好瓜,也要挑最有把握的那些,这样挑出来的瓜中间好瓜的比例高。查准问题中优化目标就是已经预测的值中正确的比例查全问题,也就是一定要全。比如在选择西瓜时,宁愿选出一堆坏瓜,也要把一车瓜中的好瓜尽量挑全了。这样挑出来的瓜中好瓜数量占原来车子中好瓜比例较高。查全问题的优化目标就是将实际值中的正值尽可能预测覆盖到。于是我们便有了两个参数Precision(查准率或叫准确率) 与 Recall(查全率或叫召回率),分别对应这两种问题的优化目标,公式如下:我们仔细琢磨一下这两个公式就会发现,precision是预测正确的正值占所有预测为正之比,recall是预测正确的正值占所有实际正值之比。
F-1 score
Precision与recall分别对应查准问题与查全问题,然而常常二者不能同时提高,所以对于实际复杂问题处理很有偏见,于是我们引入F1-score来近似帮助我们解决实际问题。
它是采用一种数学上的糅合方法:这里面P就代表Precision,R就代表Recall,而我们正常使用的F1-score是这个a=1的情况(F后缀是1),这就有点儿类似并联的电阻值计算,最后得到的F-1 score完整的计算方式是:
性能指标全家福
为了方便大家理解,我把这几个经典的度量指标合在一张图上给大家看看:
ROC曲线
进入主题,我们来了解一下今天的重点内容,这两个指标。
含义:
ROC曲线receiver operating characteristic curve(受试者工作特征曲线)
这个名字其实不太容易理解,来看看这张图:ROC曲线示例图
其中FP,TP,N,P的值参考上面那张表。
我们再来看看ROC曲线中的“四点一线”
- 第一个点,(0,1),即FPR=0, TPR=1,这意味着FN(false negative)=0,并且FP(false positive)=0。这是一个完美的分类器,它将所有的样本都正确分类。
- 第二个点,(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。
- 第三个点,(0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。
- 第四个点(1,1),分类器实际上预测所有的样本都为正样本。
对于ROC曲线,我们可以这样理解,对于二分类问题,曲线的每一个点都代表一个阈值,分类器给每个样本一个得分,得分大于阈值的我们认为是正样本,小于阈值的我们认为是负样本。
举个图中的例子
在上面那张ROC曲线图中,我们随便取一个点比如(0.5,0.7),那么也就说明了这个分类器在FP/N = 0.5的时候,也就是实际值为负,而我预测错了预测成正的数量占整个实际值为负的数量的0.5。这句话看起来很拗口,其实也就是对于负值的预测正确率为1-0.5=0.5,TP/P=0.7,同理,就是对于正值的预测正确率为0.7。所以说,ROC曲线中的每一个点都代表一组测试数据中,对于正值和负值的预测正确率分别的考量
ROC曲线图的几个性质
(性质1)若学习器A的ROC曲线将另外一个学习器B的曲线完全包住,则A的性能一定比B好,否则若二者曲线有交叉,则可以较为合理的认为ROC曲线越接近左上角,也就是AUC值越大,整个分类器的性能越好。
有了上面的基础,这句话就很好理解了。
ROC曲线中每一个点代表的是在那一组测试中,对于正值和负值的预测正确率分别的考量。如果A的ROC曲线完全包住B的话,则如下图所示:此图中这条实线就完全包住了虚线,我们来看,对于实线上的任意一点,我们沿着黑线,也就是同负值预测正确率的情况下,黑点的正值预测正确率比红点高。而沿着红线,也就是同正值预测正确率的情况下,我们就会知道,黑点的FP rate比蓝点小。我们知道,负值预测正确率 = 1- FP rate,所以黑点的负值预测正确率比蓝点高。所以综合说来,无论从正值还是负值,实线的性能都比虚线好。
而对于并不是完全包住,比如这样:
(性质2)AUC值等于0.5时,我们可以认为分类器不起作用。AUC小于0.5时,实际情况基本不会出现,不符合真实情况。
这个也好理解,因为当AUC值等于0.5时候,我们基本可以将这个二分类器当作一个随机分类器。通俗的说跟抛硬币决定的效果是一样的,就没有作用。小于0.5的还不如抛硬币,实际情况很少出现。
AUC值
AUC值 Area Under Curve (曲线下面积),也就是ROC曲线之下与坐标轴围成的面积。
我们很容易就会看出来,AUC其实是ROC 曲线的积分,但是这样很不直观,也不能感性理解,其实AUC确实是有物理意义的。AUC是指 随机给定一个正样本和一个负样本,分类器输出的正样本的概率比分类器出去负样本的概率大的可能性。我在知乎上看到了一个很好玩的感性认识:这也就是AUC实际的计算公式了。
写在最后:
这里面所有的值用的单位是Score,并不是概率,但是我为了方便大家理解,就用概率来代替。在我粗浅的认知里面,还没有发现有什么问题,愿大家用严谨的视角来看待这个问题。
参考目录:
周志华--《机器学习》 2016年1月第1版
知乎问题《机器学习和统计里面的auc怎么理解?》@小小丘:知乎问题《精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?》: