AUC与ROC
序
分类任务不同于回归,本次记录一下分类任务中常用的评价指标AUC与ROC
混淆矩阵
在搞清楚ROC和AUC之前,需要先弄明白混淆矩阵
混淆矩阵中有着Positive、Negative、True、False的概念,其意义如下:
○ 称预测类别为1的为Positive(阳性),预测类别为0的为Negative(阴性)。
○ 预测正确的为True(真),预测错误的为False(伪)。
那么就产生了如下的混淆矩阵:
- 那么混淆矩阵能干什么呢?
1、真阳率(也就是正类被预测为正类占所有正类样本的比例)
2、伪阳率(也就是负类被预测为负类占所有负类样本的比例)
AUC与ROC
-
ROC:
ROC的横轴代表FPRate,纵轴是TPRate,当二者相等时,如下图
其实也就是 y=x直线,其含义为将正类预测正确的概率=将负类预测正确的概率=0.5,那么就容易看出来,我们期望该条线尽量往左上方偏,也就是尽量让正类预测正确的概率大一些,如下面的图:
-
AUC:
AUC是ROC下方的面积。从上面分析来看,ROC的极限是正样本都被预测正确,也就是TPRate=1,此时的AUC=1,所以,一般情况下,AUC的值都是小于1的,他代表了一个正样本被预测为正类的 概率值 比一个负样本预测为正样本的概率值 要大的可能性。也就是说,任意一个样本x,都对应着有一个判定为正样本的概率P。 -
举例说明:
对于下面的八个样本的预测情况:
可以得到相应的混淆矩阵:
进而计算得到:TPRate=3/4,FPRate=2/4,得到ROC曲线如下:
因此可以计算面积得到AUC=0.625
对于一些以概率值为预测值的模型来说,其预测值为下图样式:
那么此时我们所选取一个阈值,例如>=0.5,就将其预测值设置为1,这个时候该阈值的选取将影响最终的AUC。
AUC的优势:
AUC的计算方法同时考虑了分类器对于正例和负例的分类能力,在样本不平衡的情况下,依然能够对分类器作出合理的评价。因此AUC的目的就是用于平衡准确率与召回率。
例如在反欺诈场景,设非欺诈类样本为正例,负例占比很少(假设0.1%),如果使用准确率评估,把所有的样本预测为正例便可以获得99.9%的准确率。
但是如果使用AUC,把所有样本预测为正例,TPRate和FPRate同时为1,AUC仅为0.5,成功规避了样本不均匀带来的问题。