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

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

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

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

机器学习准确率的计算 准确率的算法_机器学习


1、准确率(Accuracy)

准确率(accuracy)计算公式为:

机器学习准确率的计算 准确率的算法_召回率_02


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

2、精确率(Precision)

精确率(precision)定义为:

这里写图片描述

机器学习准确率的计算 准确率的算法_正例_03


精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是对的。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)。

3、召回率(recall)

召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)。

4、f1-score

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

机器学习准确率的计算 准确率的算法_机器学习准确率的计算_04


5、ROC曲线

ROC(Receiver Operating Characteristic)曲线是以假正率(FP_rate)和真正率(TP_rate)为轴的曲线,ROC曲线下面的面积我们叫做AUC,如下图所示:

机器学习准确率的计算 准确率的算法_机器学习_05

其中:

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

6、AUC

AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。

简单说:AUC值越大的分类器,正确率越高完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。

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

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

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

机器学习准确率的计算 准确率的算法_召回率_06


既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。