问答系统性能的评价指标MAP、MRR、Accuracy@N

MAP(mean average precision)

即平均准确率,系统对所有候选答案进行评分,并按分值大小进行排序,正确答案越靠前,MAP值就越大
计算方式如下:

参考:https://www.jianshu.com/p/e1664861bc9d

比如共有三个问题,问题1有3个直接相关的答案,问题2有2个直接相关的答案,问题3有4个直接相关的答案。系统返回的答案中,问题1的3个答案的排序为1,3,5;问题2的2个答案的排序为2,3;问题3的4个答案的排序为1,2,4,6。
那么对于问题1,平均准确率为(1/1+2/3+3/5)/3=0.756
对问题2,平均准确率为(1/2+2/3)/2=0.583
对问题3,平均准确率为(1/1+2/2+3/4+4/6)/4=0.854
则MAP=(0.756+0.583+0.854)/3=0.731

MRR(Mean Reciprocal Rank)

即平均排序倒数,计算方式如下:

参考:https://www.jianshu.com/p/e1664861bc9d

比如前述的问题中,MRR=(1/1+1/2+1/1)/3=0.833

Accuracy@N

即topN准确率,计算方式如下:

参考:https://www.jianshu.com/p/e1664861bc9d
比如前述问题中,设N=1,则Accuracy@1=(1+0+1)/3=0.667

代码实现

参考:https://github.com/shuaihuaiyi/QA/blob/master/taevaluation.py

'''
qIndex2aIndex2aScore: {qIndex:{aIndex:score,...},......}
qIndex2aIndex2aLabel: {qIndex:{aIndex:label,...},......}
'''def calculate(qIndex2aIndex2aScore,qIndex2aIndex2aLabel):ACC_at1List = []APlist = []RRlist = []for qIndex, index2scoreList in qIndex2aIndex2aScore.items():     # 对每一个问题index2label = qIndex2aIndex2aLabel[qIndex]     # {aindex:label,......}rankIndex = 0rightNum = 0curPList = []rankedList = sorted(index2scoreList.items(), key=lambda b: b[1], reverse=True)     # [(aindex,score),......]ACC_at1List.append(0)for info in rankedList:    # 对每一个答案aIndex = info[0]label = index2label[aIndex]rankIndex += 1      # 第几个答案if label == 1:      # 如果是正确答案rightNum += 1   # 正确答案数+1if rankIndex == 1:  # 如果是排序第一的答案ACC_at1List[-1] = 1    # ACC@1p = float(rightNum) / rankIndexcurPList.append(p)if len(curPList) > 0:RRlist.append(curPList[0])APlist.append(float(sum(curPList)) / len(curPList))return ACC_at1List,APlist,RRlistdef MRR(RRlist):return float(sum(RRlist)) / len(RRlist)def MAP(APlist):return float(sum(APlist)) / len(APlist)def ACC_at_1(ACC_at1List):return float(sum(ACC_at1List)) / len(ACC_at1List)

参考:https://www.jianshu.com/p/e1664861bc9d
https://blog.csdn.net/lightty/article/details/47079017
https://github.com/shuaihuaiyi/QA/blob/master/taevaluation.py

问答系统QA的评价指标MAP、MRR、Accuracy@N相关推荐

  1. 评价指标:目标检测的评价指标 - mAP

    本文建议阅读时间 8 min 基本概念 AP & mAP AP:PR 曲线下面积(下面会说明) mAP:mean Average Precision, 即各类别 AP 的平均值 TP.FP.F ...

  2. 目标检测重要评价指标——mAP的含义及计算

    目标检测常见评价指标 1. 公开数据集 评价标准:pascal voc, coco,目前基本都在使用coco数据集. 2.评价指标 mAP: mean Average Precision, 即所有类别 ...

  3. 目标检测评价指标mAP

    目标检测评价指标 mAP是目标检测中常用的评价指标之一,在论文中可以经常看到.全称是mean average precision (mAP)即各个类别AP的平均值.常用的评测指标有: mAP: mea ...

  4. 信息检索中 (IR) 的评价指标: P@n, MAP, MRR, DCG, NDCG

    转载自: http://www.yongfeiyan.cn/post/md/3 P@n 前 n 个结果的准确度, P指的是Precision. 如果用 y i = 0 , 1 y_i=0,1 yi​= ...

  5. 【】评价指标 mrr accuracy recall

    来自参考csdn1 准确率(Accuracy) true positives(TP 正类判定为正类,例子中就是正确的判定"这位是女生") false positives(FP 负类 ...

  6. IR的评价指标-MAP,NDCG和MRR

    Map:相关性,1 or 0,计算排序后rank值 NDCG: 设定相关性等级(2^5-1, 2^4-1-) 计算累计增益值(嗯,就累加起来) 计算折算因子log(2)/log(1+rank) (越靠 ...

  7. IR的评价指标-MAP,MRR和NDCG的形象理解

    一 .MAP(Mean Average Precision): 单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值.主集合的平均准确率(MAP)是每个主题的平均准确率的平均值.MAP 是反映系 ...

  8. 信息检索IR评价中常见的评价指标-MAP\NDCG\ERR\P@10等

    信息检索评价是对信息检索系统性能(主要满足用户信息需求的能力)进行评估的活动.通过评估可以评价不同技术的优劣,不同因素对系统的影响,从而促进本领域研究水平的不断提高.信息检索系统的目标是较少消耗情况下 ...

  9. 知识图谱常用评价指标:MRR,MR,HITS@K,Recall@K,Precision@K

    一.MRR MRR的全称是Mean Reciprocal Ranking(排名的倒数),其中Reciprocal是指"倒数的"的意思.该指标越大越好(即预测排名越靠前,倒数就越大, ...

最新文章

  1. 万字谈监控:解答Zabbix与Prometheus选型疑难
  2. 设计模式在外卖营销业务中的实践
  3. 给交叉编译工具建立软连接用脚本
  4. tuple object is not callable解决方案
  5. android RSA加密
  6. xxx征集系统项目目标文档
  7. pg和oracle比较,Oracle与PostgreSQL使用差异对比与总结
  8. .net2.0 orm_Hibernate 4.3 ORM工具
  9. 关于gcc -o 的使用问题
  10. 作为一个销售人员,要做到这些
  11. 链表知识体会总结(仅供参考)
  12. 回归分析常数项t值没有显著异于零怎么办_线性回归分析思路总结!简单易懂又全面!...
  13. crontab 问号_轻松搞定crontab和quartz表达式
  14. 腾讯微博qq说说备份导出工具_曾经比微信还火,3亿人用过的腾讯软件,如今彻底凉了...
  15. 写论文时引用作者名字
  16. 修改mdf ldf文件权限修改方法
  17. 微服务项目:尚融宝(42)(核心业务流程:借款额度审批(2))
  18. yolov5s.yaml中各参数作用意义及使用netron工具来可视化yolov5s的结构
  19. 如何升级MacOS自带的PHP到指定版本(5.3-7.3)
  20. L2-039 清点代码库 (25 分)

热门文章

  1. 如何直观理解交叉熵及其优势?
  2. 解决“E: Package ‘libqtgui4‘ has no installation candidate”无法安装qt4
  3. 什么是三目运算符?对三目运算符的理解
  4. c++ overload 、override、overwrite
  5. Linux命令 - usermod命令
  6. Java 集合转数组的toArray()和toArray(T[] a)方法通俗易懂
  7. Mask Scoring R-CNN
  8. excel——设置单元格格式
  9. python 条形图填充疏密_可视化库-Matplotlib-条形图(第四天)
  10. 深入分析: Vista后Windows 微软需要思考什么