写点什么

个性化推荐系统设计(3

  • 2021 年 11 月 11 日
  • 本文字数:1441 字

    阅读完需:约 5 分钟

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


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


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


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


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


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


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 曲线来帮助分析。


? 注意:准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了。一般情况,用不同的阀值,统计出一组不同阀值下的精确率和召回率,如下图:



如果是做搜索,那就是保证召回的情况下提升准确率;如果做疾病监测、反垃圾,则是保准确率的条件下,提升召回。


所以,在两者都要求高的情况下,可以用 F1 值来衡量。



公式基本上就是这样,但是如何算图中的 A、B、C、D 呢?这需要人工标注,人工标注数据需要较多时间且枯燥,如果仅仅是做实验可以用用现成的语料。当然,还有一个办法,找个一个比较成熟的算法作为基准,用该算法的结果作为样本来进行比照,这个方法也有点问题,如果有现成的很好的算法,就不用再研究了。


  • 综合评价指标(F-Measure)


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


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



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



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


  • E 值


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



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


  • 平均正确率(Average Precision)


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


  • AP 和 mAP(mean Average Precision)


? mAP 是为解决 P(准确率),R(召回率),F-measure 的单点值局限性的。为了得到 一个能够反映全局性能的指标,可以看考察下图,其中两条曲线(方块点与圆点)分布对应了两个检索系统的准确率-召回率曲线 。



评论

发布
暂无评论
个性化推荐系统设计(3