免责声明:本文仅代表个人观点,如有错误,请读者自己鉴别;如果本文不小心含有别人的原创内容,请联系我删除;本人心血制作,若转载请注明出处
这几天看了几篇文章,看到VOC 2007数据集时,看到评判指标mAP,不甚理解,查阅了资料,现总结如下:
P(Precision)正确率,找回率Recall。对于一个查询,返回了一系列的文档,正确率指的是返回的结果中相关的文档占的比例,定义为:precision=返回结果中相关文档的数目/返回结果的数目;
而召回率则是返回结果中相关文档占所有相关文档的比例,定义为:Recall=返回结果中相关文档的数目/所有相关文档的数目。
正确率只是考虑了返回结果中相关文档的个数,没有考虑文档之间的序。对一个搜索引擎或推荐系统而言返回的结果必然是有序的,而且越相关的文档排的越靠前越好,于是有了AP的概念。对一个有序的列表,计算AP的时候要先求出每个位置上的precision,然后对所有的位置的precision再做个average。如果该位置的文档是不相关的则该位置 precision=0.
对MAP,则是对所有查询的AP值求个平均。
比如一个数据库,正 5个,负 5个
查询1,2搜索正,结果排序如下:
顺序 | 查询1 | 查询2 |
1 | 负 | 负 |
2 | 正 | 负 |
3 | 正 | 负 |
4 | 正 | 负 |
5 | 负 | 正 |
6 | 负 | 正 |
7 | 负 | 正 |
对于查询 1:
找回率=返回结果中相关文档的数目/所有相关文档的数目=4/5
准确率=返回结果中相关文档的数目/返回结果的数目=4/7
mAP=(1/1+2/5+3/6+4/7)/5
对于查询2:
找回率=返回结果中相关文档的数目/所有相关文档的数目=4/5
准确率=返回结果中相关文档的数目/返回结果的数目=4/7
mAP=(1/1+2/2+3/3+4/4)/5
结论:查询1和查询2,查全率和准确率相同,此时用mAP来衡量系统好坏,更加有效。
参考文献:1、http://www.douban.com/note/287762869/
2、http://blog.csdn.net/zylxadz/article/details/41694563