机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)

摘要:html

  数据挖掘、机器学习和推荐系统中的评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)简介。算法

引言:网络

  在机器学习、数据挖掘、推荐系统完成建模以后,须要对模型的效果作评价。dom

业内目前经常采用的评价指标有准确率(Precision)、召回率(Recall)、F值(F-Measure)等,下图是不一样机器学习算法的评价指标。下文讲对其中某些指标作简要介绍。机器学习

这里写图片描述

本文针对二元分类器! 
本文针对二元分类器!! 
本文针对二元分类器!!!ide

对分类的分类器的评价指标将在之后文章中介绍。性能

在介绍指标前必须先了解“混淆矩阵”:学习

混淆矩阵测试

True Positive(真正,TP):将正类预测为正类数大数据

True Negative(真负,TN):将负类预测为负类数

False Positive(假正,FP):将负类预测为正类数误报 (Type I error)

False Negative(假负,FN):将正类预测为负类数→漏报 (Type II error)

这里写图片描述

这里写图片描述

一、准确率(Accuracy)

准确率(accuracy)计算公式为: 
这里写图片描述

注:准确率是咱们最多见的评价指标,并且很容易理解,就是被分对的样本数除以全部的样本数,一般来讲,正确率越高,分类器越好。 
准确率确实是一个很好很直观的评价指标,可是有时候准确率高并不能表明一个算法就好。好比某个地区某天地震的预测,假设咱们有一堆的特征做为地震分类的属性,类别只有两个:0:不发生地震、1:发生地震。一个不加思考的分类器,对每个测试用例都将类别划分为0,那那么它就可能达到99%的准确率,但真的地震来临时,这个分类器毫无察觉,这个分类带来的损失是巨大的。为何99%的准确率的分类器却不是咱们想要的,由于这里数据分布不均衡,类别1的数据太少,彻底错分类别1依然能够达到很高的准确率却忽视了咱们关注的东西。再举个例子说明下。在正负样本不平衡的状况下,准确率这个评价指标有很大的缺陷。好比在互联网广告里面,点击的数量是不多的,通常只有千分之几,若是用acc,即便所有预测成负类(不点击)acc也有 99% 以上,没有意义。所以,单纯靠准确率来评价一个算法模型是远远不够科学全面的。

二、错误率(Error rate)

错误率则与准确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(TP+TN+FP+FN),对某一个实例来讲,分对与分错是互斥事件,因此accuracy =1 - error rate。

三、灵敏度(sensitive)

sensitive = TP/P,表示的是全部正例中被分对的比例,衡量了分类器对正例的识别能力。

四、特效度(sensitive)

specificity = TN/N,表示的是全部负例中被分对的比例,衡量了分类器对负例的识别能力。

五、精确率、精度(Precision)

精确率(precision)定义为: 
这里写图片描述

表示被分为正例的示例中实际为正例的比例。

六、召回率(recall)

召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitive,能够看到召回率与灵敏度是同样的。

七、综合评价指标(F-Measure) 
P和R指标有时候会出现的矛盾的状况,这样就须要综合考虑他们,最多见的方法就是F-Measure(又称为F-Score)。 
F-Measure是Precision和Recall加权调和平均: 
这里写图片描述 
当参数α=1时,就是最多见的F1,也即 
这里写图片描述 
可知F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。

八、其余评价指标

计算速度:分类器训练和预测须要的时间;

鲁棒性:处理缺失值和异常值的能力;

可扩展性:处理大数据集的能力;

可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就很差理解,咱们只好把它当作一个黑盒子。

下面来看一下ROC和PR曲线(如下内容为本身总结):

一、ROC曲线: 
ROC(Receiver Operating Characteristic)曲线是以假正率(FP_rate)和假负率(TP_rate)为轴的曲线,ROC曲线下面的面积咱们叫作AUC,以下图所示: 

这里写图片描述

 

图片根据Paper:Learning from eImbalanced Data画出


其中:这里写图片描述 
(1)曲线与FP_rate轴围成的面积(记做AUC)越大,说明性能越好,即图上L2曲线对应的性能优于曲线L1对应的性能。即:曲线越靠近A点(左上方)性能越好,曲线越靠近B点(右下方)曲线性能越差。 
(2)A点是最完美的performance点,B处是性能最差点。 
(3)位于C-D线上的点说明算法性能和random猜想是同样的–如C、D、E点。位于C-D之上(即曲线位于白色的三角形内)说明算法性能优于随机猜想–如G点,位于C-D之下(即曲线位于灰色的三角形内)说明算法性能差于随机猜想–如F点。 
(4)虽然ROC曲线相比较于Precision和Recall等衡量指标更加合理,可是其在高不平衡数据条件下的的表现仍然过于理想,不可以很好的展现实际状况。

 

二、PR曲线: 
即,PR(Precision-Recall)曲线。 
举个例子(例子来自Paper:Learning from eImbalanced Data): 
假设N_c>>P_c(即Negative的数量远远大于Positive的数量),若FP很大,即有不少N的sample被预测为P,由于这里写图片描述,所以FP_rate的值仍然很小(若是利用ROC曲线则会判断其性能很好,可是实际上其性能并很差),可是若是利用PR,由于Precision综合考虑了TP和FP的值,所以在极度不平衡的数据下(Positive的样本较少),PR曲线可能比ROC曲线更实用。

 

转载自:机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)是怎么一回事

分类: 机器学习

标签: 机器学习准确率(Precision)召回率(Recall)F值(F-Measure)

相关文章
相关标签/搜索