机器学习中的准确率、召回率、F值详解

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

摘要:

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

引言:

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

业内目前常用的评价指标有准确率、召回率、F值等等,下图是不同机器学习算法的评价指标。下午讲对其中某些指标做简要介绍。

机器学习中的准确率、召回率、F值详解_第1张图片

 

本文针对二元分类器!

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

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

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

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

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

机器学习中的准确率、召回率、F值详解_第2张图片

 

 

  1. 准确率(Accuracy)

准确率计算公式:

 

注:准确率是我们最常见的评价指标,而且很容易理解,就是指被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。

准确率确实是一个很好很直观的评价指标,但是有时候准确率高并不代表一个算法就好比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:不发生地震,1:发生地震。一个不加思考的分类器,对每一个测试用例都将类别划分为0,那那么他就可能达到99%的准确率,但真的地震来临时,这个分类器毫无察觉,这个分类带来的损失是巨大的。为啥99%的准确率的分类器不是我们想要的,因为这里面的数据分布不均衡,类别为1 的数据太少,完全错分类别1依然可以达到很高的准确率却忽视了我们关注的东西。再举个例子说明一下,在正负样本不均衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里,点击的数量是很少的,一般只有千分之一,如果用acc,即使是全部预测成负类(不点击),acc也有99%以上,没有意义。因此,单纯依靠准确率来评价一个算法模型是远远不够科学全面的。

  1. 错误率(Error rate)

错误率则与正确率相反,描述被分类器错分的比例,Error rate = (FP + FN) / (TP + TN + FP + FN), 对某一个实例来说,分对与分错是互斥事件,所以准确率 = 1 – 错误率。

  1. 灵敏度(Sensitive)

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

  1. 特效度(Specificity)

Specificity = TN / N , 表示的是

  1. 精确率、精度(Precision)

精确率(precision)定义为:

 

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

  1. 召回率(Recall)

召回率是覆盖面的度量,度量有多少个正例被分为正例,recall = TP / (TP + FN) = TP / P = sensitive。可以看到,召回率和灵敏度是一样的。

  1. 综合评价指标( F- measure)

P和R 指标有时候会出现矛盾情况,这样就需要综合考虑他们,最常见的方法就是F-measure (又称为 F-Score),F-Measure 是Precision 和Recall 加权调和平均:

 

当参数a  = 1 时, 就是最常见的F1,也即:

 

可知F1 综合了P和R的结果,当F1较高时则能说明试验方法比较有效。

  1. 其他评价指标

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

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

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

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

一下内容为自己总结:

  1. ROC曲线:

Roc 曲线(receiver Operating Characteristic)曲线是以 假正率(FP_rate) 和 假负率(TP_rate)为轴的曲线,ROC曲线下的面积我们叫做AUC,如下:

机器学习中的准确率、召回率、F值详解_第3张图片

 

  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 等衡量指标更加合理,但是其在高度不平衡的数据条件下的表现仍然过于理想,不能很好的展示实际情况。

  1. PR曲线

即PR(precision-recall)曲线

机器学习中的准确率、召回率、F值详解_第4张图片

 

ROC曲线的最佳值位于左上角,而PR曲线最佳值位于右上角。但是不能保证优化ROC空间中的AUC,能与优化PR中的AUC相对应。

PR曲线能够在高度不平衡数据下有效评估模型性能的原因主要是:

  1. 当负样本远远超过正样本(N>>P)时,如果分类器的性能在FP(false positive)上有很大变化,它并不会显著改变FP_rate,因为分母(负例数过大),因此,ROC并不能准确捕获这种情况
  2. PR曲线则考虑了TP关于TP+ FP 的比率,因此当FP数量急剧增加时,它仍然能够正确评估分类器模型。

注:假设N_c>>P_c(即Negative的数量远远大于Positive的数量),若FP很大,即有很多N的sample被预测为P,因为这里写图片描述,因此FP_rate的值仍然很小(如果利用ROC曲线则会判断其性能很好,但是实际上其性能并不好),但是如果利用PR,因为Precision综合考虑了TP和FP的值,因此在极度不平衡的数据下(Positive的样本较少),PR曲线可能比ROC曲线更实用。

 

你可能感兴趣的:(机器学习中的准确率、召回率、F值详解)