APP下载

机器学习演算法模型评估指标之混淆矩阵、PR曲线、AP例项详解

消息来源:baojiabao.com 作者: 发布时间:2024-05-19

报价宝综合消息机器学习演算法模型评估指标之混淆矩阵、PR曲线、AP例项详解

混淆矩阵

针对一个二分类问题,将例项分成正类(postive)或者负类(negative)。但是实际中分类时,会出现四种情况.

若一个例项是正类并且被预测为正类,即为真正类(True Postive TP)若一个例项是正类,但是被预测成为负类,即为假负类(False Negative FN),漏报。若一个例项是负类,但是被预测成为正类,即为假正类(False Postive FP),错报。若一个例项是负类,但是被预测成为负类,即为真负类(True Negative TN)精确率(Precision)

也称查准率,即正确预测为正的占全部预测为正的比例。

召回率(Recall)

也称查全率、灵敏度(Sensitive),即正确预测为正的占全部实际为正的比例。

特异度(Specificity)

表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

综合评价指标 F-Measure值

P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure,F-Measure是Precision和Recall加权调和平均。当引数α=1时,就是最常见的F1,F1值为算数平均数除以几何平均数,且越大越好,将Precision、Recall的上述公式带入会发现,当F1值小时,True Positive相对增加,而False相对减少,即Precision和Recall都相对增加,即F1对Precision和Recall都进行了加权。

动物(狗)检测为例

在20个动物中,检测算法模型认为阈值大于0.7,认为是狗,否则为其它动物,结果如下:

混淆矩阵如下:

精确率(Precision)

以狗为例,20只动物里,算法模型认为有5只是狗,但是其实这5只狗只有3只预测对了,因此,

召回率(Recall)

以狗为例,20只动物里,有5只狗,而算法模型认为里面只有3只是狗。

特异度(Specificity)

以狗为例,20只动物里,在总共15只不是狗的动物中,模型认为有13只不是狗。

F1-Score

通过公式,可以计算出:

同时,我们可以通过调整阈值,来选择让系统识别出多少图片,进而改变Precision 或 Recall 的值,比如我们将阈值调整为0.68,精确度结果如下:

Precision-Recall 曲线

在介绍AP之前,先引入Precision-Recall曲线概念,如果你想评估一个算法模型的效能,一个比较好的方法就是,通过阈值变化,观察Precision与Recall值的变化情况。如果一个算法模型的效能比较好,那么它应该有如下的表现:被识别出的图片中狗所占的比重比较大,并且在识别出其它动物之前,尽可能多地正确识别出狗,也就是让Recall值增长的同时保持Precision的值在一个很高的水平。而效能比较差的分类器可能会损失很多Precision值才能换来Recall值的提高。通常情况下,会使用Precision-Recall曲线,来显示出分类器在Precision与Recall之间的权衡。 Precision-Recall曲线反映了分类器对正例的识别准确程度和对正例的覆盖能力之间的权衡,AP就是PR曲线与X轴围成的图形面积。

首先算法模型返回所有测试样本的Score,假设共有20个测试样本,每个的样本结果包含Id,Score、Label资讯,根据Score降序排序如下:

我们得到Top-5的结果,前Score最高的前5个样本,Label为1表示正例,即:

在这个例子中,True Positives就是指第1、7、11张图片,False Positives就是指第3,9张图片。排在Top-5之外的元素为False Negatives和True Negatives,即:

其中,False Negatives是指第19,14张图片,True Negatives是指剩下的第5、17、12、2、18……张图片。

那么,这个例子中Precision=3/5=60%,Recall=3/5=60%。

我们通常不满足只通过Top-5来衡量一个模型的好坏,而是需要知道从Top-1到Top-N(N是所有测试样本个数,本文中为20)对应的Precision和Recall。显然随着我们选定的样本越来也多,Recall一定会越来越高,而Precision整体上会呈下降趋势。把Recall为横座标,Precision为纵座标,即可得到常用的Precision-Recall曲线。

如上,这是一张排过序的Score,如图所示Top-20中,1、7、11、14、19为正样本,从上往下,当Top-N变化(调整阈值实现Top-N变化),Precision也随之线性变化,当遇到正样本时,Recall才变化,遇到负样本时,Recall不变,当前最大Precision也不变,相应的Precision-Recall曲线(这条曲线是递减的)如下 。

AP

AP衡量的是训练的算法模型在每个类别上的好坏,mAP衡量的是训练的算法模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。

接下来介绍下AP的计算方式,2010年之前PASCAL VOC CHALLENGE采用11-point interpolation计算方法。首先设定一组阈值,[0, 0.1, 0.2, …, 1]。然后对于Recall大于每一个阈值(比如0.1>Recall≥0),我们都会得到一个对应的最大Precision。这样,我们就计算出了11个Precision,AP即为这11个Precision的平均值。

自2010年后PASCAL VOC CHALLENGE就换了另一种——Interpolating all points计算方法。新的计算方法假设这N个样本中有M个正例,那么我们会得到M个Recall值(1/M, 2/M, ..., M/M),对于每个Recall值r,我们可以计算出对应(r' >= r)的最大Precision,然后对这M个Precision值取平均即得到最后的AP值计算方法如下:

2019-07-11 12:50:00

相关文章