zoukankan      html  css  js  c++  java
  • MAP(Mean Average Precision)平均精度均值

    P(Precision)正确率,找回率Recall。对于一个查询,返回了一系列的文档,正确率指的是返回的结果中相关的文档占的比例,定义为:precision=返回结果中相关文档的数目/返回结果的数目


    而召回率则是返回结果中相关文档占所有相关文档的比例,定义为:Recall=返回结果中相关文档的数目/所有相关文档的数目。


     正确率只是考虑了返回结果中相关文档的个数,没有考虑文档之间的序。对一个搜索引擎或推荐系统而言返回的结果必然是有序的,而且越相关的文档排的越靠前越好,于是有了AP的概念。对一个有序的列表,计算AP的时候要先求出每个位置上的precision,然后对所有的位置的precision再做个average。如果该位置的文档是不相关的则该位置 precision=0.

    对MAP,则是对所有查询的AP值求个平均。


    正确率只是考虑了返回结果中相关文档的个数,没有考虑文档之间的序。对一个搜索引擎或推荐系统而言返回的结果必然是有序的,而且越相关的文档排的越靠前越好,于是有了AP的概念。对一个有序的列表,计算AP的时候要先求出每个位置上的precision,然后对所有的位置的precision再做个average。如果该位置的文档是不相关的则该位置 precision=0.


    举个例子(修改了引用[1]的例子):

    Prediction  Correctness  Points
    1wrong0
    2right1 / 2
    3right2 / 3
    4wrong0
    5right3 / 5
    6wrong0
    7wrong0
    8wrong0
    9right4 / 9
    10wrong0
     
    可以从中看出AP的计算方法,若该位置返回的结果相关,计算该位置的正确率,若不相关,正确率置为0。若返回的这四个的相关文档排在1,2,3,4号位,则对于的正确率都为1,AP也就等于1,可见计算方法是对排序位置敏感的,相关文档排序的位置越靠前,检出的相关文档越多,AP值越大。
    对MAP,则是对所有查询的AP值求个平均。


    具体求解:

    假设有两个查询,查询1有4个相关文档,查询2有5个相关文档。某系统对查询1检索出4个相关文档,其rank分别为1,2,4,7;对于查询2检索出3个相关文档,其rank分别为1,3,5。

    对于查询1,AP平均正确率为:(1/1+2/2+3/4+4/7)/4=0.83

    对于查询2,AP平均正确率为:(1/1+2/3+3/5)/5=0.45

     

    则平均正确率均值为:(0.83+0.45)/2=0.64

  • 相关阅读:
    windows下进程与线程剖析
    visual studio调试exe程序
    javascript方法注释
    visual studio 使用技巧——vs技巧
    程序员的成长路线
    如何写好demo——学习感悟
    github看项目-浏览器插件
    java开源项目——java学习
    文章格式-资料整理
    如何学习新技术-学习
  • 原文地址:https://www.cnblogs.com/mrcharles/p/11879774.html
Copyright © 2011-2022 走看看