Mean Average Precision

来源:互联网 发布:快递行业数据 编辑:程序博客网 时间:2024/06/16 05:39

mean average precision简称mAP,以前一直不懂什么意思,现在写篇博客记录一下。

Precision

我们先来讨论一下,Precision是怎么算的。假如我们有2000个样本,1000正样本,1000个负样本。我们用某个方法进行分类,标记出来300个样本是正样本。现在,我们知道,任何分类方法都不会有百分之百的正确率。所以标记出来的300个分类的样本里,肯定有被分错的样本。假如100个正样本,200个负样本,也就是说,这个分类方法把200个负样本给当成正样本给分类了。那么Precision就是100/300 = 66%。也就是检测出来的正样本数/检测出来的总数。

Recall

Recall和Precision十分类似,还是上面的例子,Recall是检测出来的正样本数/所有正样本个数,这个例子中,所有正样本的个数为1000。所以Recall = 100/1000 = 10%

mAP

有了这两个概念,我们就可以介绍mAP的概念了。

我们来举一个新的例子。
假设有一个搜索引擎,根据搜索引擎,有如下结果:

搜索1相关的样本总共有5个: 正,正,正,正,正
Rank1   正,负,正,负,负,正,负,负,正,正
Recall    0.2,0.2,0.4,0.4,0.4,0.6,0.6,0.6,0.8,1.0
Precision 1.0,0.5,0.66,0.5,0.4,0.5,0.42,0.38,0.44,0.5
Precision从左到右1.0/1, 1/2, 2/3, 2/4以此类推    

搜索2相关样本总共有3个,以下是搜索引擎返回的结果
Rank2 正,负,负,正,正,负,负
Recall 0.33,0.33,0.33,0.66,1,1,1
Precision 1.0,0.5,0.33,0.5,0.6,0.5,0.4

我们把每个正样本所对应的Precision求平均
搜索1的mAP: mAP = (1 + 0.66 + 0.5 + 0.5 + 0.44 + 0.5) / 5 = 0.72
搜索2的mAP: mAP = (1 + 0.33 + 0.5) / 3 = 0.61

整体的mAP = (0.72 + 0.61) /2  = 0.665

这个就是mAP大概的计算过程。希望能帮到大家,排版问题我自己也无法解决。。。抱歉了大家。

原创粉丝点击