当前位置: 首页 > news >正文

关于检索评价的一份介绍

在信息检索中,当我们进行完检索评价后就需要对于检索所得的结果进行评价,类似于机器学习中的模型评估那样,因此我们需要一些度量方式来对于信息检索的结果进行评价。

在这篇文章中,我就将介绍一些标准用于度量信息检索的结果。具体将包含Cranfield范式,Precision、Recall、P@n、MAP、MPP、F等许多评价指标。

一、Cranfield范式

Cranfield范式是指一种用于信息检索系统评估的标准方法,它起源于1960年代英国Cranfield大学的一项研究工作。这项工作的目标之一是建立一个基准测试环境,用于比较不同的信息检索技术的有效性。它本身并非一种评价指标,而是一种方法论,描述如何进行信息检索实验的设计与评价。

Cranfield主要由4部分组成,分别为数据集、查询集、相关性判断与检索指标。对于前三者在此不必多言,但对于检索指标我们需要知道:Cranfield范式引入了用于评估检索效果的度量标准,最著名的就是查准率(Precision)和查全率(Recall)。查准率衡量的是检索结果中相关文档的比例,而查全率衡量的是所有相关文档中有多少被检索到了。

二、检索指标

2.1 Precision

Precision可以被翻译为精度,其代表在检出文档中相关文档的比例,表达式为:

Precision=p=\frac{|R\bigcap A|}{A}

其中,R表示相关文档,A表示检出文档。

举个例子:

对于一个查询q有如下的结果:

1.d123     2.d84~    3.d345    4.d1~    5.d11

其中有加“~”表示其是相关文档,而R由专家评估可得R={d1,d84,d100}

那么可知R=3,A=5,将之带入式子可得:

p = \frac{2}{5}=0.4

2.2 Recall

Recall可以被翻译为召回率,其是指相关文档与检出文档的比例,表达式为:

Recall=r=\frac{|R\bigcap A|}{R}

其中,R与A的含义同上。

同样举个例子:

例子的已知条件同上,则带入表达式得:

r=\frac{2}{3}\approx 0.667

对于上述的Precision和Recall在python的sklearn中存在现成的函数去调用,具体代码如下:

from sklearn.metrics import precision_score, recall_score# 假设我们有一组预测的相关文档和真实的文档列表
# 预测的相关文档(预测标签)
predicted_relevant = [1, 0, 1, 1, 0]  # 假设1表示相关,0表示不相关# 真实的相关文档(真实标签)
true_relevant = [1, 1, 1, 0, 0]  # 同样,1表示相关,0表示不相关# 计算Precision
precision = precision_score(true_relevant, predicted_relevant)
print(f"Precision: {precision:.2f}")# 计算Recall
recall = recall_score(true_relevant, predicted_relevant)
print(f"Recall: {recall:.2f}")

最终输出为:

Precision: 0.67
Recall: 0.67 

2.3 P@n

“前n平均精度”(Precision at n,简称 P@n)是一个用于评估信息检索系统性能的指标,特别是在搜索引擎、推荐系统以及分类任务中。它衡量的是检索结果列表中前N个结果的精确度,即在这n个结果中有多少是相关(正确)的结果。

其表达式为:

p@n=\frac{number of relevant items}{n}

一般情况下,我们通常选择5或10,即p@5或p@10。

2.4 MAP

平均精度均值(MAP)的主要想法是产生一个关于排序的总结性单一数值,而这个通过对每个新观察到的相关文档计算精度并做平均获得的。

其中,AP 是针对单个查询计算的,而 MAP 则是针对多个查询的 AP 的平均值。AP 考虑了检索结果中相关文档的排列位置,而不仅仅是相关文档的数量。

对于之前的例子我们可以先算出它的AP,AP=0.5,此时如果我们再存在一个查询q2,则可以算对应的AP,然后求和相除即可得到MAP来。

2.5 R精度

R精度的思想是在排序的第R个位置计算精度,从而为该排序生成一个总计欸选哪个的单一值,其中R是当前查询的相关文档总数。

2.6 MRR

平均查询倒数(MRR)是所有排序倒数的均值,即:

MRR=\frac{1}{N_{q}}*\sum _{i=1}^{N_{q}}\frac{1}{S_{correct}(R_{i})}

举个例子,还是之前的那些已知信息,则有:

我们来看如何计算单个查询的Reciprocal Rank(RR)。在这一组结果中,相关文档出现的位置如下:

d84~ 出现在位置2

d1~ 出现在位置4

由于d100不在检索结果中,我们只考虑出现的两个相关文档。

对于这个查询来说,我们取第一个相关文档的位置来计算RR:

第一个相关文档是d84~,位于第2位,所以RR = 1/2 = 0.5

如果我们只有一个查询,那么MRR就是这个查询的RR值: MRR=RR=0.5

2.7 E值

E值是一种结合了精度和召回率的度量方法,其可以定义为:

E(j)=1-\frac{1+b^2}{\frac{b^2}{r(j)}+\frac{1}{P(j)}}

其中r(j)是排序中第j个位置的召回率,p(j)是在排序中第j个位置的精度。

此时,如果b=0,那么原式变形为:

E(j)=1-P(j)

如果b->\inftyb,那么:

E(j)=1-r(j)

2.8 F值

调和平均(Harmonic Mean)有时也被称为F值,其计算方式如下:

F(j)=\frac{2}{\frac{1}{r(j)}+\frac{1}{P(j)}}

其中,r(j)表示在排序中第j个位置的召回率,P(j)表示在排序中第j个位置的精度。

这些是有关检索评价的一部分指标,除此之外还有许多,我将会在之后的文章中再详细介绍。

此上


http://www.mrgr.cn/news/56181.html

相关文章:

  • 如何高效解锁业务数据价值:多云时代应该怎么构建新一代数据平台架构
  • Linux·文件与IO
  • 自动裁剪图像的智能方法:Smart Image Cropping API指南
  • linux下使用VSCODE 调试python
  • 【Linux】 Linux 释放内存脚本
  • windows安装mysql,跳过自定义的密码验证
  • java使用枚举类存常量字典值
  • 【Qt】控件——Qt输入类控件、常见的输入类控件、输入类控件的使用、Line Edit、Text Edit、Combo Box、Spin Box
  • 《地下蚁国》风灵月影十项修改器使用教程
  • LLM 量化新篇章:FlatQuant 的平坦之道
  • HTMX 和 WebStencils 白皮书
  • gazebo显示urdf
  • 三部门联合推铁路电子客票,百望云率先完成产品配置,助力财务服务数智化升级
  • 安达发|家电组装多厂协同APS计划排程软件介绍
  • 网关挂了服务还能正常运行吗?
  • Spring Boot 3.3 【八】整合实现高可用 Redis 集群
  • 【1024程序员节】如何快速掌握人工智能技术技能
  • 【人工智能】Transformers之Pipeline(二十):令牌分类(token-classification)
  • “销量飞跃秘籍:打造吸引力销售网络与革新招商策略“
  • MyHdfs代码分享
  • Codeforces Round 974 (Div. 3) F. Sheriff‘s Defense(树形DP)
  • 最佳简历--JAVA程序员的项目经验如何写
  • Linux 基础目录与命令操作
  • 创建型模式-----(单例模式)
  • 数据仓库-维度表和事实表
  • Linux: network: tcp:__sk_mem_raise_allocated;确保公平