分类器性能度量指标-ROC、AUC、查准率、查全率与F1

查准率、查全率和F1


差准率:P=TP/TP+FP  (预测结果和真实结果都为正的样本占总的预测结果为正的样本的比例

查全率:R=TP/TP+FP (预测结果和真实结果都为正的样本占总的正样本的比例

查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。在信息检索中,查准率就是检索出的信息有多少比例是用户感兴趣的;查全率则是用户感兴趣的信息有多少被检索出来。查准率分母中就包含了那些不是用户感兴趣的信息,但仍被预测为是用户感兴趣的而被检索出来;查全率分母中则包含了那些是用户感兴趣的信息,但为被预测为用户感兴趣而被抛弃未检索出来。

对于差准率和查全率的使用是需要按情况来确定那个更重要,例如地震的预测查全率更重要,不希望遗漏哪一次地震,但是对于给用户推荐的广告查准率更重要,要推荐给用户更愿意点击的广告。

F1度量

可根据学习器的预测结果对样例进行排序,排在前面的是学习器认为最可能是正例的样本,排在最后的则是学习器认为最不可能是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率,并以查准率为纵轴、查全率为横轴构造查准率-查全率曲线,简称P-R曲线。

P-R曲线是非单调、不平滑的。P-R曲线可用来评估学习器的优劣。若一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则后者的性能优于前者。如果两个学习器的曲线发生交叉,则通过二者面积的大小来比较,面积大的表示查全率和查准率双高比较优秀,但不太容易计算曲线(不平滑)的面积,因此通过平衡点(Break-Even Point,简称BEP)来度量。BEP是坐标上查准率等于查全率时的点,平衡点值越大,学习器越优秀。

用了简单的图来说明,红色的点就是三条P-R曲线的BEP点,学习器A的曲线被C包住,C比较优秀,而C和B交叉,用面积计算难以估算,但C的BEP值大于B,所以C比较优秀。

ERP过于简化,定义F1常量来比较学习器P-R曲线的性能:

F1度量:F1=(2*P*R)/(P+R)=2*TP/(样例总数+TP-TN)

更一般的形式Fβ=(1+β2)*P*R/((β2*P)+R

其中β>0度量了查全率对查准率的相对重要性;β=1时就是标准的F1;β>1时偏好查全率;β<1时偏好查准率。

ROC和AUC

ROC和AUC类似,也是通过绘制两个变量的概率图像来解释分类器效果的评判准则,ROC曲线的纵轴是“真正例率”TPR,横轴是“假正例率”FPR。其中:

根据机器学习预测结果将样例排序,然后把分类阈值设为最大,此时

。所以在坐标

处标记一个点。

把调整阈值为下一个样例的预测值,此时这个样例的预测为正例。

如果是真正例,那么:

如果是假正例,那么:

根据两个坐标点的变化规律绘制出的曲线和P-R曲线相似,若一个学习器的ROC(受试者工作特征曲线)(Receiver Operating Characteristic)完全包围住另一个曲线的ROC,可以断言前者的性能优于后者的性能,但是对于两者相互交错的情况,我们可以通过判断两者的面积大小来决定哪个学习器更优。这个面积就被称为AUC(Area Under ROC Curve)


形式化的看,AUC考虑的事样本预测的排序质量,因此它与排序误差有紧密联系。


#例如:

表1.分类器预测结果

其中probability of 1为分类器判断该样本为阳性的概率,true class为该样本的真实情况。

如果我们把threshold定位0.5,即去接触id为1~8的客户。此时

TPR= TP / 所有真实值为阳性的样本个数 =6/6=1FPR= FP / 所有真实值为阴性的样本个数 =2/4=0.6

同理,如果我们把threshold定位0.8,即去接触id为1~5的客户。此时

TPR= TP / 所有真实值为阳性的样本个数 =4/6=0.67FPR= FP / 所有真实值为阴性的样本个数 =1/4=0.25

这两个threshold分别对应ROC空间中的两个点A、B

图3.不同的threshold对应ROC空间中不同的点

ROC曲线

上面的例子当中,共有10笔预测数据,则一共有11种threshold的设定方法,每一个threshold对应ROC空间中的一个点,把这些点连接起来,就成了ROC曲线。

图4.ROC曲线

这里因为数据量太少,所以曲线是一折一折的,数据量大的时候,看上去才像”曲线”。

AUC (Area under the Curve of ROC) 曲线下面积

以下直接搬维基百科:

因为是在1x1的方格里求面积,AUC必在0~1之间。

假设threshold以上是阳性,以下是阴性;

若随机抽取一个阳性样本和一个阴性样本,分类器正确判断阳性样本的值高于阴性样本之机率。(即前文当中把C做一个镜像变为C’)

简单说:AUC值越大的分类器,正确率越高。

从AUC判断分类器(预测模型)优劣的标准:

AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。

0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。

AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。

AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测,因此不存在AUC < 0.5的情况。

图5.用AUC来衡量不同分类器的分类能力(更准确的说是排序能力)

参考文献:机器学习-周志华

推荐阅读更多精彩内容