机器学习(ML), 自然语言处理(NLP), 信息检索(IR)等领域, 评估(Evaluation)是一个必要的工作, 而其评价指标往往有如下几点: 准确率(Accuracy), 精确率(Precision), 召回率(Recall) 和 F1-Measure.(注:相对来说,IR 的 ground truth 很多时候是一个 Ordered List, 而不是一个 Bool 类型的 Unordered Collection,在都找到的情况下,排在第三名还是第四名损失并不是很大,而排在第一名和第一百名,虽然都是“找到了”,但是意义是不一样的,因此更多可能适用于 MAP 之类评估指标.)

本文将简单介绍其中几个概念. 中文中这几个评价指标翻译各有不同, 所以一般情况下推荐使用英文.

现在我先假定一个具体场景作为例子.

首先我们可以计算准确率(accuracy), 其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比. 也就是损失函数是0-1损失时测试数据集上的准确率.

这样说听起来有点抽象,简单说就是,前面的场景中,实际情况是那个班级有男的和女的两类,某人(也就是定义中所说的分类器)他又把班级中的人分为男女两类. accuracy 需要得到的是此君分正确的人占总人数的比例. 很容易,我们可以得到:他把其中70(20女+50男)人判定正确了, 而总人数是100人,所以它的 accuracy 就是70 %(70 / 100).

由准确率,我们的确可以在一些场合,从某种意义上得到一个分类器是否有效,但它并不总是能有效的评价一个分类器的工作. 举个例子, google 抓取了 argcv 100个页面,而它索引中共有10,000,000个页面, 随机抽一个页面,分类下, 这是不是 argcv 的页面呢?如果以 accuracy 来判断我的工作,那我会把所有的页面都判断为"不是 argcv 的页面", 因为我这样效率非常高(return false, 一句话), 而 accuracy 已经到了99.999%(9,999,900/10,000,000), 完爆其它很多分类器辛辛苦苦算的值, 而我这个算法显然不是需求期待的, 那怎么解决呢?这就是 precision, recall 和 f1-measure 出场的时间了.

再说 precision, recall 和 f1-measure 之前, 我们需要先需要定义 TP, FN, FP, TN 四种分类情况.

按照前面例子, 我们需要从一个班级中的人中寻找所有女生, 如果把这个任务当成一个分类器的话, 那么女生就是我们需要的, 而男生不是, 所以我们称女生为"正类", 而男生为"负类".

可以很容易看出, 所谓 TRUE/FALSE 表示从结果是否分对了, Positive/Negative 表示我们认为的是"是"还是"不是".

通过这张表, 我们可以很容易得到这几个值:

  • TP=20
  • FP=30
  • FN=0
  • TN=50

精确率/查准率(precision)的公式是P =TP/(TP+FP)   即 TP / 自选P, 这里自选P 是 自选出来的50个认为是“女生” -- 亦即 TP+FP ​, 它计算的是所有"正确被检索的结果(TP)"占所有"实际被检索到的(TP+FP)"的比例.

在例子中就是希望知道此君得到的所有人中, 正确的人(也就是女生)占有的比例. 所以其 precision 也就是40%(20女生/(20女生+30误判为女生的男生)).

召回率/查全率(recall)的公式是R = TP/(TP+FN)   即 TP / 实际P, 这里实际P就是实际上女生的个数, -- 亦即 TP + FN, 它计算的是所有"正确被检索的结果(TP)"占所有"应该检索到的结果(TP+FN)"的比例.

在例子中就是希望知道此君得到的女生占本班中所有女生的比例, 所以其 recall 也就是100%(20女生/(20女生+ 0 误判为男生的女生))

对调和平均直观上的例子

在一个小公园的长椅上坐着看天,徒弟来电话询问一个题目,“轮胎问题”:自行车的前轮胎和后轮胎是相同的,可以交换。但是同样的轮胎在前轮和后轮上使用的时间是不同的。上在前轮上可以行驶500千米,上在后轮上只能行驶300千米。因此,适当的时候交换前轮胎和后轮胎可以让前轮胎和后轮胎同时报废。问题是,行驶多少千米交换合适?这样一对轮胎最多能同时行驶多少千米?

我告诉让他这是个相遇问题、分数工程问题,可能很隐晦,不容易看出来。下面作出详细的解释。

我们先看几个容易解决的同构问题:

一艘轮船从A码头顺流而下到C码头然后原路返回,顺流而下去时速度30千米/时,逆流而上返回20千米/时。求往返平均速度。容易错成(30+20)÷2=25(千米/时),因为往返使用的时间是不同的。事实上结果应该是30和20的调和平均数。2/(1/20+1/30)=2×20×30/(20+30)=24(千米/时)。可以这样解释算是的算理:去时每千米耗时1/30小时,返回时每千米耗时1/20小时,因此在每1千米的路上,往返一次共行驶2千米,耗时(1/20+1/30)小时,也就是每小时行驶2/(1/20+1/30)千米。也可以根据2×20×30/(20+30)的提示这样解释,假设AC之间的航程是20×30千米,往返一次的总路程和总时间分别为2×20×30千米和(20+30)千米。

现在我将这个问题稍稍复杂化一点:问题是,在这条航道上是否存在一点B,顺流而下到B和逆流而上到B用的时间相同?答案是肯定的,也是显然的。我们可以假设,顺流而下的船出发,同时有一艘同样的船逆流而上,两船相遇的地点就是所求的B点。而且这个点很容易确定,AB:BC=3:2。这个点B有这样的特点:从A顺流而下到B所用的时间与从C逆流而上到B所用的时间相等。

我们再看一个更容易理解的问题。

A、C夫妇二人在不同的公司上班,因为乘车次数不同,同样价值的公交乘车卡,A可以用40天,C可以用60天,他们为了同时给公交卡充值,需要在某一天交换公交卡,使得同时用光公交卡中的钱,他们的公交卡最多能同时用多少天?他们应该在几天后交换乘车卡?

显然,他们的公交卡最多能同时使用的天数就是40和60的调和平均数。2×40×60/(40+60)=48(天)。算式很容易理解:假设两个公交卡中共有2×40×60日元,A每天需要花60日元,C每天需要花40日元。显然,48÷2=24天后就应该交换公交卡。这个结果恰好是1÷(1/40+1/60)=24(天)。这也不难理解:A每天用去公交卡的1/40,C每天用去公交卡的1/60,当两人一共用掉1张公交卡的时候,就应该交换公交卡。

现在我们再看看“轮胎问题”进行一个巧妙的假设。我们假设骑自行车的目的就是磨轮胎。让这个自行车变成两辆独轮车——前轮A和后轮C,一条轮胎让A磨每千米磨损1/500,让C磨每千米磨损1/300。A和C同时合作磨轮胎,当刚好磨损掉一条轮胎的时候就应该交换前后轮。此时都行驶了1÷(1/300+1/500)=187.5(千米)。交换后还可以行驶187.5千米,一共行驶了375千米。

References

  • [1] 李航. 统计学习方法[M]. 北京:清华大学出版社,2012.
  • [2] 准确率(Precision)、召回率(Recall)以及综合评价指标(F1-Measure ) 注意, 此篇引用一般化似有问题
  • [3] F-Measure in Wikipedia
  • [4] https://www.zhihu.com/question/23096098

from : https://blog.argcv.com/articles/1036.c

准确率(Accuracy),精确率/查准率(Precision), 召回率/查全率(Recall)和F1-Measure相关推荐

  1. matlab 召回率,查准率、召回率、敏感性、特異性和F1-score的計算及Matlab實現

    查准率(Precision):所有診斷為患病(1)樣本中實際為患病的比率. 召回率(Recall):所有患病樣本中被發現並診斷為患病的比率. 查准率 = TP/(TP+FP) 召回率 = TP/P = ...

  2. python垃圾分类准确率计算公式_准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure...

    机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accuracy),精确率(Precision), ...

  3. 【机器学习】准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure

    在机器学习.数据挖掘.推荐系统完成建模之后,需要对模型的效果做评价. 业内目前常常采用的评价指标有准确率(Precision).召回率(Recall).F值(F-Measure)等,下图是不同机器学习 ...

  4. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)

    首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比.也就是损失函数是0-1损失时测试数据集上的准确率. 下面在介绍时使用一下例子: 一个 ...

  5. 【深度学习】查准率、召回率、AP、mAP

    AP和mAP计算详解(代码全解) 参考:https://mp.weixin.qq.com/s?__biz=MzUxNjcxMjQxNg==&mid=2247490269&idx=3&a ...

  6. 谈谈准确率(P值)、召回率(R值)及F值

    转载自  谈谈准确率(P值).召回率(R值)及F值 谈谈准确率(P值).召回率(R值)及F值 一直总是听说过这几个词,但是很容易记混,在这里记录一下.希望对大家理解有帮助. 首先来做一个总结: 准确率 ...

  7. 量化数值评估,查准率和召回率

    我们想知道通过采取一个方法,是否使得误差变小.如果有一个量化的数值评估,通过这个数字的大小,我们可以得到误差变大了还是变小了.在这里,推荐大家在交叉验证集上实现误差分析,而不是在测试集上. 那么怎么选 ...

  8. 目标检测中准确率accuracy的计算(precision是精度、查准率)(Recall是召回率、查全率)

    准确率定义为: 查准率P和查全率R分别定义为: 查准率关心的是"预测出正例的正确率"即从正反例子中挑选出正例的问题. 查全率关心的是"预测出正例的保证性"即从正 ...

  9. 目标检测评价标准(mAP, 精准度(Precision), 召回率(Recall), 准确率(Accuracy),交除并(IoU))

    1. TP , FP , TN , FN定义 TP(True Positive)是正样本预测为正样本的数量,即与Ground truth区域的IoU>=threshold的预测框 FP(Fals ...

最新文章

  1. 【翻译】Oracle不同版本之间Export Import的兼容性矩阵
  2. P3175-[HAOI2015]按位或【min-max容斥,FWT】
  3. python大神交流网站_学习Python必去的8个网站
  4. linux之多线程(1)
  5. redis管理_Redis基本管理
  6. Office文件嵌入特殊字体
  7. Linux 的简单钩子
  8. .Net Log4Net配置多文件日志记录
  9. ros中odometry数据生成方式与分发去向
  10. mac宽带连接找不到pppoe服务器,mac苹果电脑如何建立PPPoE拨号连接上网
  11. c 语言转成 梯形图,把语句表转换成梯形图.doc
  12. Win10 桌面图标出现空文件夹的删除及桌面图标排列问题
  13. 不想安装环境,我如何与前端工程师远程协作开发?
  14. 计算机系统维护与硬件检查,计算机硬件维护与检测方法
  15. 【珍藏版】⼤数据中台架构及解决⽅案
  16. 浏览器缓存和服务器缓存
  17. 计算机xp系统怎么录音,XP系统电脑怎么录音? - KK录像机
  18. 嵌入式期末大作业——家用智能晾衣杆
  19. android Ble4.0蓝牙开发之搜索慢、startLeScan()过时,6.0以上不需要定位权限也能快速搜索到蓝牙设备
  20. Django框架笔记(一)

热门文章

  1. Rxjava和Reactor区别和介绍
  2. 华为设备配置CAPWAP断链业务保持
  3. 云电脑要求电脑配置吗
  4. Win10 Edge浏览器 应用商店 IE浏览器 无法访问页面 0x8000FFFF 问题解决
  5. OculusQuest使用ALVR无线串流玩SteamVR游戏
  6. 常见2的次方结果总结
  7. windows7系统损坏修复_iPad 运行 win7 系统,微信 7.0.11 来了
  8. 安卓studio如何C语言,android studio 运行c语言程序
  9. Python 验证码处理
  10. 用Java实现分数加减和乘法计算