一、Accuracy(精确率),Precision(查准率)和Recall(查全率或召回率)
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为:
TP:正确预测为正类的数量
FP:错误预测为正类的数量
TN:正确预测为反类的数量
FN:错误预测为反类的数量
查准率(Precision),即在所有预测为正类的例子中,原本为正类的比率;查全率(Recall),即在所有原本为正类的例子中,预测为正类的比率。一般来说,查准率高,则查全率低;查全率高,则查准率低。通常只有在一些简单的模型中才有可能出现二者皆高的现象。
那么这两个评判标准一般都用于什么样的模型呢?按照本人的理解:
1.Precision用于对精确度要求较高的模型中,比如对于一个垃圾邮件识别系统,如果它错误地将一封好邮件给识别成了垃圾邮件,那这也许会给使用者造成很大的麻烦(比如这是一份offer),所以我们希望这样的系统的Precision要高一些;
2.Recall则用于对漏检不能容忍的模型中,比如地震预测,假设某一天某地会发生地震,但是系统却把这一天给漏掉了,那这样造成的人员和财产损失就很大了。类似于:宁可错杀一千,绝不放过一个。
二、P-R曲线和F1度量
P-R曲线是以横轴为Recall,纵轴为Precision所构成的二维曲线,可以直观地显示出学习器在样本总体上的Precision和Recall。那么P-R曲线是怎么画出来的呢?通常算法对样本进行分类时,会有一个置信度,将样本按照置信度排序,再设置一个阈值从小到大变化,不同的阈值会产生不同的Precision和Recall,将这些点(R,P)标在图上再连起来,就得到了P-R曲线。一般我们看到的P-R曲线都是长这样的:
但是P-R曲线会经过(0,0),但不会经过(1,0),图像中看起来会经过(1,0)可能是因为负类远大于正类吧。按照我的理解Recall是递增的,但是并非严格递增;而Precision并非是递减的,而是有可能有上升的。即出现R不变,P减少或R增加,P增加。
而F1度量则是关于Precision和Recall的调和平均
三、ROC曲线和AUC
ROC曲线即以FPR为横轴,TPR为纵轴构成的曲线;AUC则为ROC曲线下面的面积。