准确率,精确率,召回率,PR曲线,F1分数和ROC曲线下面积(ROC-AUC)都是机器学习领域中较为常用的评价指标。本文将带领大家全面的了解各个指标之间的联系和不同。
在介绍各个评价指标之前,我们先介绍一下混淆矩阵(confusion matrix),如表1所示。后面所有的评测指标都可以根据混淆矩阵进行运算得到。
表1
真实情况 | 预测结果 | ||
正例 | 反例 | ||
正例 | True Positive (TP) | False Negative (FN) | |
反例 | False Positive (FP) | True Negative (TN) |
其中,TP表示:真正例,分类为正样本且本身也为正样本,分类正确。
FN表示:假反例,分类为负样本但本身为正样本,分类错误。
FP表示:假正例,分类为正样本但本身为负样本,分类错误。
TN表示:真反例,分类为负样本且本身也为负样本,分类正确。
为了方便记忆理解,只要是带了T的都是分类正确的样本,带了F的都是分类错误的样本,带了P的是被分类器分为正的样本,带了N的是被分类器分为负的样本。
准确率(可以简写为,acc)是最常见的评价指标,即分类器预测正确的样本占总共样本数的百分比,如下式所示。
在大多数的情况下,acc可以用于做为评价分类器性能好坏的指标。但是对于不平衡数据集而言,acc就无法很好的刻画分类器的性能。不平衡数据集是指,数据集中样本严重不均衡,例如,100个数据集中,其中95个为正类,5个为负类。对于这样的情况,分类器如果将所有的数据都分为正类,其acc都可以达到95%。但很明显可以看出这样的分类结果并不是好的,因此对于样本不均衡的数据集,无法使用acc作为数据分类的评价指标。
由此,提出了使用精准率(Precision)和召回率(Recall)来对评价分类器的性能。
精准率又叫查准率,其针对的是预测结果,即真正例(TP)占被分类器分为正类的样本的百分比,如下式所示。
Precision看起来和acc是差不多的,但是acc针对的是所有的样本,即包含了正样本和负样本;而Precision只是针对的正样本,刻画的是正样本的分类结果,而不涉及负样本的信息。Precision越高表示分类器对于正类分类效果越好,即分类器越容易选出的正确的正样本。
召回率又叫查全率,其针对的是实际样本,即真正例(TP)占真实标签为正的样本的百分比,如下式所示。
Recall是从真实样本出发,其值越高表示对于真实数据集而言,分类器越容易将所有的正样本都挑选出来。
可以发现Precision和Recall只有分母不一样,这两个评价指标都是基于TP来定义的,但两者之间通常是相互矛盾的。往往在Recall越高的时候,其Precision都会越来越低。因为若是想要挑选出所有的正样本(即Recall逼近1),最简单的方法是将所有的样本都分为正类,这样Recall值可以达到1,很明显,此时的Precision值会非常低。同样的,若果想让Precision逼近1,则只选择最有把握的样本作为正类就可以了,但是此时Recall值会非常低。
因此,在一般的机器学习算法中不会简单的使用这两个评价指标来对分类器的性能进行评价,由此引出了Precision-Recall 曲线。
Precision-Recall 曲线(P-R曲线)是查全率和查准率的曲线。首先我们将分类器的预测结果按照概率进行排序,排在前面的认为是最可能为正类的样本,排在后面的认为是最不可能为正类的样本。然后按照顺序逐个对正样本进行预测并计算出Precision和Recall的值。再以Precision为纵轴,Recall为横轴作图,就可以得到P-R曲线,如下图所示。
由于P-R曲线可以很好的表示出分类器在总体样本是的查全率和查准率。因此,若是又一个分类器的P-R曲线完全包裹住另外一个分类器的曲线,则可以说明该分类器的性能优于后者,例如分类器A和分类器B的性能优于分类器C。若是两个分类器的曲线有交点,如分类器A和分类器B,则无法很明确的说明哪个分类器的性能更好。因此提出使用平衡点(Break-Even Point,BEP)来度量两个分类器的性能,即当查准率等于查全率时P-R曲线的取值。但是只是使用BEP度量其实过于片面,由此提出了F1分数。
F1分数是同时考虑了查全率和查准率,并使两个去一个平衡,让两者同时达到最高的指标,如下式所示。
F1分数相比BEP而言,可以更好的度量Precision和Recall之间的关系,对分类器的性能做出更好的判断,常常被用于度量分类器的性能。
在介绍ROC曲线之前,我们首先引入如下两个指标,灵敏度(真正率,True Positive Rate,TPR)和1-特异度(假正率, False Positive Rate,FPR),其公式如下所示。
可以明显的看出TPR和Recall是同一个式子,只是名字不一样了。而FPR表示的是被分类器分为正类的负样本占实际是负样本的百分比。很明显可以看出,这两个度量指标都是针对实际样本,分别从正负类出发,可以很好的避免样本极度不均衡的问题。由此,将TPR做为纵轴,FPR作为横轴可以画出ROC曲线以及计算ROC-AUC,如下图所示。
如同P-R曲线一样,ROC曲线也是根据逐个遍历阈值来绘制曲线的。由于FPR表示的是错报的负样本,因此希望的是FPR越低越好,而TPR越高越好。因此当ROC曲线越陡时,即斜率越大时,分类器的性能越好。为了方便计算,提出了使用ROC-AUC来度量,即计算ROC曲线下的面积。上图中的虚线表示的时候随即猜测的ROC曲线,因此理想情况下AUC的值越接近于1越好。
至此,本文总结了较为常用几种评价指标,希望对大家的学习工作有所帮助。