信息检索中常用的评价指标:MAP,nDCG,ERR,F-measure

2024-05-06 22:48

本文主要是介绍信息检索中常用的评价指标:MAP,nDCG,ERR,F-measure,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

知识点文本检索常用的评价指标:MAP、nDCG、ERR、F-score/F-measure以及附加的Precision、Recall、AveP、CG、DCG、IDCG、MRR、cascade models

而ROC曲线及其度量指标AUC主要用于分类和识别

一,MAP


Precision(P):

准确率(精确度)是指检索得到的文档中相关文档所占的比例,公式如下:

precision=|{relevant documents}{retrieved documents}||{retrieved documents}|

precision@10表示检索10个文档中包含相关所占的比例,即:|{retrieved documents}| = 10。

Recall(R):

召回率是指所有相关文档中被检索到的比例,公式如下:

recall=|{relevant documents}{retrieved documents}||{relevant documents}|

Average precision(AveP):

由前面可知,准确率和召回率都只能衡量检索性能的一个方面,最理想的情况肯定是准确率和召回率都比较高。当我们想提高召回率的时候,肯定会影响准确率,所以可以把准确率看做是召回率的函数,即: P=f(R) ,也就是随着召回率从0到1,准确率的变化情况。那么就可以对函数 P=f(R) R 上进行积分,可以求P的期望均值。公式如下:

AveP=10P(r)dr=k=1nP(k)Δ(k)=nk=1(P(k)×rel(k))number of relevant documents

其中 rel(k) 表示第k个文档是否相关,若相关则为1,否则为0, P(k) 表示前k个文档的准确率。 AveP 的计算方式可以简单的认为是:

AveP=1R×r=1Rrposition(r)

其中 R 表示相关文档的总个数,position(r)表示,结果列表从前往后看,第 r 个相关文档在列表中的位置。比如,有三个相关文档,位置分别为1、3、6,那么AveP=13×(11+23+36)。在编程的时候需要注意,位置和第i个相关文档,都是从1开始的,不是从0开始的。

AveP意义是在召回率从0到1逐步提高的同时,对每个R位置上的P进行相加,也即要保证准确率比较高,才能使最后的AveP比较大。

Mean average precision(MAP):

通常会用多个查询语句来衡量检索系统的性能,所以应该对多个查询语句的AveP求均值(the mean of average precision scores),即公式:

MAP=Qq=1AveP(q)Q

二,nDCG


在MAP计算公式中,文档只有相关不相关两种,而在nDCG中,文档的相关度可以分多个等级进行打分。

Cumulative Gain(CG):

表示前p个位置累计得到的效益,公式如下:

CGp=i=1preli

其中 reli 表示第i个文档的相关度等级,如:2表示非常相关,1表示相关,0表示无关,-1表示垃圾文件。

Discounted cumulative gain(DCG):

由于在 CGp 的计算中对位置信息不敏感,比如检索到了三个文档相关度依次是{3,-1,1}和{-1,1,3},显然前面的排序更优,但是它们的CG相同,所以要引入对位置信息的度量计算,既要考虑文档的相关度等级,也要考虑它所在的位置信息。假设每个位置按照从小到大的排序,它们的价值依次递减,如:可以假设第i个位置的价值是 1log2(i+1) ,那么排在第i个位置的文档所产生的效益就是 reli×1log2(i+1)=relilog2(i+1) 。公式如下:

DCGp=i=1prelilog2(i+1)=rel1+i=2prelilog2(i+1)

另一种比较常用的,用来增加相关度影响比重的DCG计算方式是:
DCGp=i=1p2reli1log2(i+1)

Ideal DCG(IDCG):

IDCG是理想情况下的DCG,即对于一个查询语句和p来说,DCG的最大值。公式如下:

IDCGp=i=1|REL|2reli1log2(i+1)

其中 |REL| 表示,文档按照相关性从大到小的顺序排序,取前p个文档组成的集合。也就是按照最优的方式对文档进行排序。

Normalize DCG(nDCG):

由于每个查询语句所能检索到的结果文档集合长度不一,p值的不同会对DCG的计算有较大的影响。所以不能对不同查询语句的DCG进行求平均,需要进行归一化处理。nDCG就是用IDCG进行归一化处理,表示当前DCG比IDCG还差多大的距离。公式如下:

nDCGp=DCGpIDCGp

这样每个查询语句的 nDCGp 就是从0到1,不同查询语句之间就可以做比较,就可以求多个查询语句的平均 nDCGp
NDCG@10、NDCG@20分别表示求p为10和20的时候的nDCG。

三,ERR


Mean reciprocal rank (MRR) :

reciprocal rank是指,第一个正确答案的排名的倒数。MRR是指多个查询语句的排名倒数的均值。公式如下:

MRR=1|Q|i=1|Q|1ranki

其中 ranki 表示第i个查询语句的第一个正确答案的排名。

Cascade Models :

之前的评分模型虽然考虑了位置自身的价值信息和位置上文档的相关度信息,但是没有考虑文档之间的相关性信息。一种考虑是,一个文档是否被用户点击和排在它前面的文档有很大的关系,比如排在前面的文档都是不相关文档,那么它被点击的概率就高,如果排它前面的文档都是非常相关的文档,那么它被点击的概率就很低。Cascade Models假设用户从排名由高到底依次查看文档,一旦文档满足了用户的需求,则停止查看后续的文档。用 Ri 表示用户只看在位置 i 上的文档后就不在需要查看其它文档的概率,显然文档的相关度越高,Ri越大。那么用户在位置 i 停止的概率公式如下:

PPr=i=1r1(1Ri)Rr

Expected reciprocal rank (ERR) :

区别RR是计算第一个相关文档的位置的倒数,ERR表示用户的需求被满足时停止的位置的倒数的期望。首先是计算用户在位置 r 停止的概率PPr,如下所示:

PPr=i=1r1(1Ri)Rr

其中 Ri 是关于文档相关度等级的函数,可以选取如下的函数:
Ri=R(gi)=2g12gmax,g{0,1,,gmax}

那么ERR的计算公式如下:
ERR=r=1nφ(r)PPr=r=1n1rPPr=r=1n1ri=1r1(1Ri)Rr

更通用一点,ERR不一定计算用户需求满足时停止的位置的倒数的期望,可以是其它基于位置的函数 φ(r) ,只要满足 φ(0)=1 ,且 φ(r)0 随着 r 。比如DCG中的 φ(r)=1log2(r+1)

四,F-score/F-measure


F-score/F-measure :

一种同时考虑准确率和召回率的指标。公式如下:

F=2×precision×recall(precision+recall)

可以看出F的取值范围从0到1。另外还有一种F的变体如下所示:
Fβ=(1+β2)×(precision×recall)(β2×precision+recall)

常用的两种设置是 F2 F0.5 ,前者中recall重要程度是precision的两倍,后者则相反,precision重要程度是recall的两倍。

这篇关于信息检索中常用的评价指标:MAP,nDCG,ERR,F-measure的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965604

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx: