• 一个评测指标就是MAP(Mean Average Precision)平均精度均值。


    一个评测指标就是MAP(Mean Average Precision)平均精度均值。

    转载 2017年09月13日 10:07:12

    来源01:Mean Average Precision(MAP)

    来源02:一个评测指标就是MAP(Mean Average Precision)平均精度均值

    来源03:MAP(Mean Average Precision)

    MAP可以由它的三个部分来理解:P,AP,MAP

    先说P(Precision)精度,正确率。在信息检索领域用的比较多,和正确率一块出现的是找回率Recall。对于一个查询,返回了一系列的文档,正确率指的是返回的结果中相关的文档占的比例,定义为:precision=返回结果中相关文档的数目/返回结果的数目;
    而召回率则是返回结果中相关文档占所有相关文档的比例,定义为:Recall=返回结果中相关文档的数目/所有相关文档的数目。

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


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

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

    得到的计算公式[2]:
     
     
     
    r为相关文档的个数,N为查询词的个数。

    具体求解:

    假设有两个查询,查询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

    代码:

    Github地址:https://github.com/JK-SUN/MLandDM-EvaluationMeasures 欢迎拍砖


    参考:

    [1]Alternate explanation of Mean Average Precision

    [2]信息检索系统导论

    [3]Mean Average Precision

  • 相关阅读:
    java 根据对象属性排序
    无法初始化SFTP协议。主机是SFTP服务器吗
    Spring IOC 学习(三)IOC容器的依赖注入
    Spring-IOC学习-02 IOC容器初始化
    nginx简单使用
    Spring-IOC学习-01 IOC重要的几个接口定义
    Spring-IOC学习
    Http Service
    C#从入门到放弃--字符串类型转数字类型
    VS系列--快捷键的使用
  • 原文地址:https://www.cnblogs.com/Alex0111/p/8482786.html
Copyright © 2020-2023  润新知