mAP平均精度均值(Mean Average Precision)

在机器学习领域,大多数常见问题通常会有多个模型可供选择。每个模型会有自己的特性,并会受到不同因素的影响而表现不同。

每个模型的好坏是通过评价它在某个数据集上的性能来判断的,这个数据集通常被叫做“验证/测试”数据集。这个性能由不同的统计量来度量,包括准确率( accuracy )、精确率( precision )、召回率( recall )等等。选择我们会根据某个特定的应用场景来选择相应的统计量。而对每个应用来说,找到一个可以客观地比较模型好坏的度量标准至关重要。
平均精度均值是目标检测问题中最常用的度量标准

mAP平均精度均值(Mean Average Precision)_第1张图片
准确率(查准率、查全率)Precision:
mAP平均精度均值(Mean Average Precision)_第2张图片

召回率 Recall:
在这里插入图片描述
把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线,这条曲线是单调递减的。
mAP平均精度均值(Mean Average Precision)_第3张图片
AP的计算是:首先设定一组阈值,[0, 0.1, 0.2, …, 1]。然后对于recall大于每一个阈值(比如recall>0.3),我们都会得到一个对应的最大precision。这样,我们就计算出了11个precision。AP即为这11个precision的平均值。这种方法英文叫做11-point interpolated average precision。

2010年后就换了另一种计算方法。新的计算方法假设这N个样本中有M个正例,那么我们会得到M个recall值(1/M, 2/M, …, M/M),对于每个recall值r,我们可以计算出对应(r’ > r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。

当M足够大时,mAP计算公式就可以写成:
mAP平均精度均值(Mean Average Precision)_第4张图片
其实就是曲线下方的这部分面积。
准确率和召回率时互相影响的,理想情况是想让两者都大,但一般情况是:准确率高,召回率低;召回率高,准确率低。如果两者都低的话,那应该是什么地方出了问题。
mAP越接近于1 ,模型效果越好。

ROC(Receiver Operating Characteristic)曲线
ROC关注两个指标:
mAP平均精度均值(Mean Average Precision)_第5张图片
TPR代表将正例分对的概率
mAP平均精度均值(Mean Average Precision)_第6张图片
FPR代表将负例错分为正例的概率
在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的trade-off。ROC的主要分析工具是一个画在ROC空间的曲线——ROC curve。我们知道,对于二值分类问题,实例的值往往是连续值,我们通过设定一个阈值,将实例分类到正类或者负类(比如大于阈值划分为正类)。因此我们可以变化阈值,根据不同的阈值进行分类,根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve
mAP平均精度均值(Mean Average Precision)_第7张图片
用ROC curve来表示分类器的performance很直观,但是如果想要用一个数值来表示分类器的好坏,就需要用到AUC(Area Under roc Curve)
AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance。

P/R和ROC是两个不同的评价指标和计算方式,一般情况下,检索用前者,分类、识别等用后者。

你可能感兴趣的:(数据分析与统计,均值算法,机器学习,算法)