Precision和Recall

首先我们来看看下面这个混淆矩阵:

pred_label/true_label Positive Negative
Positive TP FP
Negtive FN TN

如上表所示,行表示预测的label值,列表示真实label值。TP,FP,FN,TN分别表示如下意思:

  • TP(true positive):表示样本的真实类别为正,最后预测得到的结果也为正;
  • FP(false positive):表示样本的真实类别为负,最后预测得到的结果却为正;
  • FN(false negative):表示样本的真实类别为正,最后预测得到的结果却为负;
  • TN(true negative):表示样本的真实类别为负,最后预测得到的结果也为负.

根据以上几个指标,可以分别计算出Accuracy、Precision、Recall(Sensitivity,SN),Specificity(SP)。

Accuracy=TP+TNTP+FP+TN+FN
Precision=TPTP+FP
Recall=TPTP+FN
SP=TNTN+FP
  • Accuracy:表示预测结果的精确度,预测正确的样本数除以总样本数。
  • precision,准确率,表示预测结果中,预测为正样本的样本中,正确预测为正样本的概率;
  • recall,召回率,表示在原始样本的正样本中,最后被正确预测为正样本的概率;
  • specificity,常常称作特异性,它研究的样本集是原始样本中的负样本,表示的是在这些负样本中最后被正确预测为负样本的概率。

在实际当中,我们往往希望得到的precision和recall都比较高,比如当FN和FP等于0的时候,他们的值都等于1。但是,它们往往在某种情况下是互斥的。例如,有50个正样本,50个负样本,结果全部预测为正样本,那么TP=50,FP=50,TN=0,FN=0,按照上面的公式计算,可以得到正样本的recall却为1,precision却为0.5.所以需要一种折衷的方式,因此就有了F1-score。

F1score=2×recall×precisionrecallprecision

F1-score表示的是precision和recall的调和平均评估指标。

另外还有一个指标,即MCC,该指标对于不均衡数据集的评估非常有效,公式如下:

$$MCC = \frac{TP \times TN - FP \times FN}{ \sqrt {(TP FP)(TP FN)( TN FP)(TN FN)}}$$

下面简单列举几种常用的推荐系统评测指标:

1、准确率与召回率(Precision & Recall)

准确率召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率

一般来说,Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。

正确率、召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价指标。不妨看看这些指标的定义先:

1. 正确率 = 提取出的正确信息条数 /  提取出的信息条数

2. 召回率 = 提取出的正确信息条数 /  样本中的信息条数

两者取值在0和1之间,数值越接近1,查准率或查全率就越高。

3. F值  = 正确率 * 召回率 * 2 / (正确率 + 召回率) (F 值即为正确率和召回率的调和平均值)

不妨举这样一个例子:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:

正确率 = 700 / (700 + 200 + 100) = 70%

召回率 = 700 / 1400 = 50%

F值 = 70% * 50% * 2 / (70% + 50%) = 58.3%

不妨看看如果把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:

正确率 = 1400 / (1400 + 300 + 300) = 70%

召回率 = 1400 / 1400 = 100%

F值 = 70% * 100% * 2 / (70% + 100%) = 82.35%

由此可见,正确率是评估捕获的成果中目标成果所占得比例;召回率,顾名思义,就是从关注领域中,召回目标类别的比例;而F值,则是综合这二者指标的评估指标,用于综合反映整体的指标。

当然希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。比如极端情况下,我们只搜索出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高。如果是做实验研究,可以绘制Precision-Recall曲线来帮助分析。

2、综合评价指标(F-Measure)

P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。

F-Measure是Precision和Recall加权调和平均

当参数α=1时,就是最常见的F1,也即

可知F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。

3、E值

E值表示查准率P和查全率R的加权平均值,当其中一个为0时,E值为1,其计算公式:

b越大,表示查准率的权重越大。

4、平均正确率(Average Precision, AP)

平均正确率表示不同查全率的点上的正确率的平均。

5、DCG

首先,介绍一下DCG。DCG的全称是Discounted Cumulative Gain,它是衡量搜索引擎算法的一个指标。搜索引擎一般采用PI(per item)的方式进行评测,即逐条对搜索结果进行等级的打分。比如在Google搜索到一个词,得到5个结果。我们对这些结果进行3个等级的区分:Good、Fair、Bad,对应的分值分别是3、2、1。假设这5个结果的分值分别是3、1、2、3、2。
使用DCG这个统计方法有两个前提:
(1) 在搜索页面中,相关度越高的结果排在前面越好。
       (2) 在PI标注时,等级高的结果比等级低的结果好。
在一个搜索结果的list里面,假设有两个结果的评级都是Good,但是第一个排在第一位,第二个排在第40位,虽然等级是一样的,但排在40位的那个结果被用户看到的概率比较小,对整个页面的贡献也要比第一个结果小很多。所以第二个结果的得分应该有所减少。DCG的计算公式如下:
其中,就是第 i 个结果的得分。 
IDCG(Ideal DCG),即理想的DCG。举上面的例子来说,5个搜索结果的分值是3、1、2、3、2,那么DCG = 3 + (1+1.26+1.5+0.86 )=7.62。
而IDCG下的分值排列顺序是3、3、2、2、1,所以IDCG=3 + (3+1.26+1+0.43)=8.69。
所以,NDCG = DCG / IDCG = 0.88。
6. MAP
单个主题的平均准确率是每篇相关文档检索出后的准确率的平均值。主集合的平均准确率(MAP)是每个主题的平均准确率的平均值。MAP 是反映系统在全部相关文档上性能的单值指标。系统检索出来的相关文档越靠前(rank 越高),MAP就可能越高。如果系统没有返回相关文档,则准确率默认为0。
例如:假设有两个主题,主题1有4个相关网页,主题2有5个相关网页。某系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7;对于主题2检索出3个相关网页,其rank分别为1,3,5。对于主题1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于主题2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。则MAP= (0.83+0.45)/2=0.64。”

计算相对复杂。对于排在结位置n处的NDCG的计算公式如下图所示:

7. NDCG
因为不同的搜索结果的数量很可能不相等,所以不同搜索的DCG值不能直接做对比。解决的方法是比较NDCG。

在MAP中,四个文档和query要么相关,要么不相关,也就是相关度非0即1。NDCG中改进了下,相关度分成从0到r的r+1的等级(r可设定)。当取r=5时,等级设定如下图所示:

(应该还有r=1那一级,原文档有误,不过这里不影响理解)

例如现在有一个query={abc},返回下图左列的Ranked List(URL),当假设用户的选择与排序结果无关(即每一级都等概率被选中),则生成的累计增益值如下图最右列所示:

考虑到一般情况下用户会优先点选排在前面的搜索结果,所以应该引入一个折算因子(discounting factor): log(2)/log(1+rank)。这时将获得DCG值(Discounted Cumulative Gain)如下如所示:

最后,为了使不同等级上的搜索结果的得分值容易比较,需要将DCG值归一化的到NDCG值。操作如下图所示,首先计算理想返回结果List的DCG值:

然后用DCG/MaxDCG就得到NDCG值,如下图所示:

8、MRR(Mean Reciprocal Rank):

是把标准答案在被评价系统给出结果中的排序取倒数作为它的准确度,再对所有的问题取平均。相对简单,举个例子:有3个query如下图所示:

(黑体为返回结果中最匹配的一项)

搜索推荐系统评价指标相关推荐

  1. 搜索推荐系统实战:终极奥秘

    搜索推荐系统实战篇-下篇 一切源于炼丹笔记,我只是敲了敲代码. 搜索推荐系统实战:起始篇 搜索推荐系统实战:进化篇 搜索推荐系统实战:终极奥秘 Bias问题是推荐系统长期需要考虑的一个问题,举些简单的 ...

  2. 搜索推荐系统中的召回

    搜索推荐系统中的召回 1. 召回简介 2. 召回指标 3. 召回策略 3.1 基于内容匹配的召回 3.2 基于协同过滤的召回 1. 召回简介 谈召回离不开搜索推荐,通过用户搜索或者系统推荐获取客户想要 ...

  3. 搜索推荐系统实战:起始篇

    搜索推荐系统实战篇-上半篇 一切源于炼丹笔记,我只是敲了敲代码. 搜索推荐系统实战:起始篇 搜索推荐系统实战:进化篇 搜索推荐系统实战:终极奥秘 在电商搜索中,例如淘宝,拼多多,京东等的搜索的场景往往 ...

  4. 搜索推荐系统实战:进化篇

    搜索推荐系统实战篇-中篇 一切源于炼丹笔记,我只是敲了敲代码. 搜索推荐系统实战:起始篇 搜索推荐系统实战:进化篇 搜索推荐系统实战:终极奥秘 此处我们假设模型训练的大的框架已经固定,同时数据采样的方 ...

  5. 搜索推荐系统根据用户搜索频率(热搜)排序

    之前写的三叉树,有点儿简单,并不能满足实际项目的需要.先简单分析一下solr中搜索推荐系统的核心算法. wiki中有关于solr的搜索推荐的详细描述,但是核心算法需要自己查看源代码.关于wiki上的解 ...

  6. 推荐系统评价指标综述

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2022年2月份热门报告盘点 机器学习在B站推荐系统中的应用实践 小红书推荐系统中台应用实践 微信视 ...

  7. 机器学习推荐系统评价指标之AUC

    机器学习推荐系统评价指标之AUC 综述 AUC的计算过程 AUC的优势 综述 AUC是机器学习模型中常见评价指标,在推荐系统中也十分常见.和常见的评价指标Acc,P,R相比,AUC具备一定的优势. A ...

  8. 搜索推荐系统[10]项目实战系列Z1:手把手教学(商品搜索系统、学术文献检索)语义检索系统搭建、召回排序模型详解。

    搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...

  9. 在广告/搜索/推荐系统中 对展示结果打散的通用鲁棒算法

    摘要:之所以同时提到广告/搜索/推荐三个系统,是因为这三者有一定的相似性,即通过一次请求(基于上下文.用户场景.关键词等)给用户呈现一篮子元素,这些元素包括如文章.商品.活动.专辑.音乐.视频等等.这 ...

最新文章

  1. 图像拼接--A multiresolution spline with application to image mosaics
  2. Save could not be completed. Eclipse国际化的问题解决
  3. 【总结】MTO/MTS操作步骤及月末结算
  4. 【吾日三省吾身】2015.6.03-涅槃行动第十六天
  5. JavaScript中this的指向问题
  6. C和指针之数组编程练习3(判断矩阵是否为单位矩阵)
  7. AI助手智商测评Siri进步最大,无人驾驶打车服务已在美国试行
  8. 错误175:具有固定名称MySql.Data.MySqlClient的ADO.NET提供程序未在计算机或者应用程序配置文件中注册或者无法加载
  9. ASP.NET状态管理之一(概括篇)
  10. 开发iOS百度地图大头针可以重复点击
  11. Go WebSocket开发与测试实践【gorilla/websocket】
  12. MCMC蒙特卡洛算法
  13. FreeCAD源码分析:TechDraw模块
  14. php 视频裁剪,视频画面大小裁剪 把视频画面多余部分裁剪掉,视频画面裁剪工具的使用方法...
  15. 淘淘商城系列(一)—— 电商行业的背景介绍(一)
  16. 【微信】一、微信开发环境
  17. ant design pro,删除最后一页退回上一页
  18. string字符串输入
  19. 机器学习 | MATLAB实现BP神经网络newff参数设定(中)
  20. ios13 无法传参_iOS13.1 正式版来了,加入了降频功能

热门文章

  1. 基于微信小程序的跳蚤市场(二手商城)
  2. hdu 1533 KM匹配
  3. 2019ACM西安邀请赛总结
  4. 【日常训练】883. 三维形体投影面积
  5. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情
  6. Android Animation之ScaleAnimation用法详解
  7. 毕业设计正式拉开帷幕——android的画图工具,基于samsung的spen
  8. NX二次开发-输入X向量Y向量输出一个3*3矩阵UF_MTX3_initialize
  9. 计算机无法访问需要密码,win7系统局域网访问需要密码的解决方法
  10. 2021 [线下]陇剑杯 wp