学习和研究机器学习、深度学习的人经常会需要对AI模型的效果进行判定,其中最常用到的判定依据是精确度(Precision,又称为准确度、精准度)和召回率(Callback)。到底什么是精确度和召回率?它们的本质区别是什么?本文讨论这些问题。

精确度和召回率都是用来判断AI模型预测效果的指标,取值范围都是[0, 1],越接近0表示模型的效果越差,0表示模型全部预测错误;越接近1表示模型的效果越好,1表示全部预测正确。

两者的本质区别在于,精确度是针对模型的输出进行计算的,而召回率是针对模型的输入计算的。

比如,设有一个模型用来对样本进行三分类,三个分类分别是A、B和C,测试结果如下:

一个三分类模型的测试结果
输入\输出 A B

C

合计

A 40 6 4 50
B 1 57 2 60
C 4 3 63 70
合计 45 66 69 180

其中最后一列表示输入A、B、C类样本的数量分别是50、60、70个,最后一行表示模型预测输出A、B、C类样本的数量分别是45、66和69。表中的粗体和红色数据分别表示预测准确和预测错误的样本数量。比如在输出的45个A类样本中,有40个是预测正确的,5个是预测错误的。

所谓A类样本的预测精确度,就是在输出的45个A类样本中有多少是预测正确的,用表示。显然有:

同理,有:

而A类样本的预测召回率,就是在输入的50个A类样本中,有多少是预测正确的,用表示。显然有:

同理,有:

所以,即使是同一个类别的精确度和召回率也是不一样的。关于精确度和召回率有以下结论:

  1. 同一个类别的精确度和召回率是不一样的。
  2. 把所有类别样本集中在一起计算出的加权平均精确度等于加权平均召回率。上例中输入的样本一共有180个,输出的样本也是180个,其中,预测正确的是40+57+63=160个,所以,加权平均精确度等于加权平均召回率等于160/180=0.89。
  3. 一个类别的精确度的提高(或者降低)并不必然导致这个类别的召回率的提高(或者降低),反之亦然。
  4. 实践中,精确度达到最大时,召回率会达到最小,反之亦然,见下图PR曲线。

PR曲线

寥寥几段文字就说清楚了什么是精确度和召回率相关推荐

  1. socket通信——通过Udp传输方式,将一段文字数据发送出去

    需求:通过Udp传输方式,将一段文字数据发送出去 定义一个Udp发送端 思路: 1.建立updsocket服务 2.提供数据,并将数据封装到数据包中. 3.通过socket服务的发送功能,将数据包发出 ...

  2. 只要一句话、一段文字,想让奥巴马说啥他就说啥

    十三 发自 凹非寺  量子位 报道 | 公众号 QbitAI "嘿!Siri,我能看看你的脸吗?" "没问题,什么样的脸我都能给你呈现." 不仅如此,现在还可以 ...

  3. Python 技术篇-如何打印一段文字,用友云霸气控制台颜文字打印

    打印一段文字只要前后三个点包起来就行. 我主要想是展示一下用友云的颜文字收藏!哈哈,有意思吧! print( ''' \ \ / / \ \ / / / ____| | | |\ \_/ /__ _ ...

  4. 查找一段文字中最长的重复字串 – 编程珠玑(排过序的后缀数组的应用)

    转自:https://www.cse.msu.edu/~liyang5/?p=53 <编程珠玑>在第15章"珍珠字符串"一节,给出了一个非常漂亮的实现 – 基于目标字符 ...

  5. iostext添加点击事件_iOS实现一段文字中指定的某些文字点击有响应事件或者可以跳转(给字符串添加超链接)...

    直接上需求,见如下UI图: 需求是点击中间的电话(蓝色字体部分),可以直接拨打电话.对于这种很长的一段文字中间夹着可以有点击事件的文字,可以通过下面这种方式解决: 图中所指的这段文字,不用UILabe ...

  6. c语言怎么循环输入单个字符,c语言 帮我检查一下 输入一段文字,每行用回车结束,文字输入完毕可以使用某个特殊字符作为结束,...

    c语言 帮我检查一下 输入一段文字,每行用回车结束,文字输入完毕可以使用某个特殊字符作为结束,0 HIDE152019.04.28浏览4次分享举报 c语言输入一段文字,每行用回车结束,文字输入完毕可以 ...

  7. 以计算机谈人文科学,阅读下面一段文字,完成问题   自20世纪80年代以来,世界都在谈“软科学技术”,何谓软科学?经常听人说:“脑子不够使。”这其实就是对软科学的需求。于是,从古至今,...

    阅读下面一段文字,完成问题 自20世纪80年代以来,世界都在谈"软科学技术",何谓软科学?经常听人说:"脑子不够使."这其实就是对软科学的需求.于是,从古至今, ...

  8. php文字红色代码,IOS_IOS中一段文字设置多种字体颜色代码,给定range和需要设置的颜色, - phpStudy...

    IOS中一段文字设置多种字体颜色代码 给定range和需要设置的颜色,就可以给一段文字设置多种不同的字体颜色,使用方法如下: [self fuwenbenLabel:contentLabel Font ...

  9. Java如何设置word中某段文字的字体/段落样式

    前言: 在我们的OA系统中,有时需要将某段文字字体/大小/颜色/段落样式做一个统一修改,或者直接在某个位置插入一段带样式的内容.这就需要我们学习微软activex控件的使用了.但是这需要开发者具备将a ...

最新文章

  1. 【驱动】GPIO寄存器配置总结
  2. YOLOv5在建筑工地中安全帽佩戴检测的应用
  3. bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束
  4. 程序员应该学习C语言的十个理由
  5. 企业研发人员配备比例_日本电产电动汽车马达研发基地落户大连
  6. MapReduce源码分析总结
  7. android jni 将BYTE* 和 jbyteArray 之间的转换
  8. C#与halcon联合开发——内存溢出
  9. CCF认证-2014-12-2 Z字形扫描
  10. (Python编程)稳定的copra算法(copra-ep)
  11. 仿9GAG制作过程(三)
  12. 复现、修复和排查Spring RCE 0day
  13. 教你如何用ps制作紫色光斑效果
  14. 解决误删Android系统的tmp目录
  15. SNS网站LinkedIn的Java架构技术
  16. 4.网络设备基础配置实验
  17. 【AI每日播报】苹果入局无人车 当百度机器人拒绝和我聊李彦宏
  18. android卸载保留数据,谷歌Android 10新特性:应用卸载时可保留数据
  19. http://p.codekk.com/
  20. sanic教程-开始

热门文章

  1. 单细胞分析——为什么要过滤线粒体高表达的细胞和红细胞?
  2. 听风中叶老师讲《flex4与服务器》感
  3. safearray的使用
  4. 业务会采用BPMN2.0吗?
  5. 移动端阻止ios弹性滑动_禁止iOS的弹性滚动 微信的下拉回弹
  6. 决定系数R2能否为负数?
  7. 解决谷歌浏览器(chrome)input标签自动填充数据的问题,亲测有效
  8. C#窗体使用按钮实现删除DataGridView选中行
  9. 一个女大学生手机里的短信
  10. python标准库math中用来计算平方根_如何在python中计算平方根?