不确定度校准和可靠性图简介

图片来源
项杰

一、说明

        不确定性校准是机器学习中最容易被误解的概念之一。它可以概括为这个简单的问题:“鉴于上述下雨的可能性,您是否带伞?”

        我们在日常生活中使用主观概率和不确定性校准的概念,但没有意识到它们。对于不确定性校准良好的天气预报模型来说,如果下雨的概率只有 5%,那么带伞可能就不值得了。从频率论的角度来看,如果可以通过大量随机试验反复观察上图早上7点的天气情况,那么只有5%会下雨。然而,另一方面,如果不确定性校准不当,那么早上 7 点的随机试验中 40% 可能最终会下雨——这是一个很大的意外惊喜。

二、什么是不确定度校准?

        德格鲁特等人以预报降雨为例说明校准的概念。

校准的概念涉及预报员的预测与实际观测到的相对降雨频率之间的一致性。粗略地说,如果预测者在预测为 x 的这些天中,长期相对频率也是 x,则可以说他是经过良好校准的。

        换句话说,对于一个校准良好的模型,如果它预测一组图像中有 40% 的概率是猫,那么该组图像中包含猫的频率应该等于 40%。“相对频率”有时被称为“条件概率”,可以理解为以预测概率为 40% 为条件的 cat,即积极结果的概率。

        Dawid [1] 提出了类似的过程,如下所示。

将预测与现实进行比较的一种方法是挑选一些相当任意的测试天集,并将 (a) 相关事件实际发生的天数比例 p 与 (b) 这些天的平均预测概率 π 进行比较。

        如果我们遵循某种划分方案来选择比较(a)和(b)的测试集,我们就会得到可靠性图。

三、可靠性图

        在二元分类问题中,我们训练一个模型来估计示例被分类为正类的概率,即 f(x_i)=p(y_i=1|x_i),如下图 1 所示。

图 1. 估计一组示例的概率

        一旦我们获得了测试集的概率,我们就将概率划分为 K 个子集,其中每个子集代表 0 到 1 之间不相交的概率区间。如图 2 所示。

图 2。示例根据区间 [0, 0.33)、[0.33, 0.66) 和 [0.66, 1] 分为三组。

        对于不同颜色的每个子集,我们计算两个估计:(a)平均预测概率,(b)正例的相对频率。

        我们首先计算 (a) 每个子集的平均预测概率,如图 3 所示。

图 3. 每个子集的平均预测概率。

        接下来我们计算(b)正例的相对频率,这需要了解真实标签的知识。在图4中,我们使用灰色圆圈表示负类,其余颜色表示正类。举个例子,在集合 1 中,只有一个例子是正例;因此,正例的相对频率为1/3。

图 4. 正面例子的相对频率

        可靠性图是根据 (a) 绘制 (b) 的图,如图 5 所示。

图 5. 可靠性图

        直观地,校准图表明: (I) 当平均预测概率为 0.17 时,大约 33% 的预测是正的;(II) 当平均预测概率为 0.45 时,大约 50% 的预测为正;(III) 当平均预测概率为 0.82 时,大约 80% 的预测是肯定的。这个设计的模型虽然并不完美,但校准得相对较好。

四、误解:相对频率与准确度

        关于可靠性图的一个普遍误解是用“准确度”代替“相对频率”。有时,从业者——包括我非常尊敬的著名研究人员——用“每个子集的准确性”来表示相对频率,这并不是校准的本意。我们需要从相对频率的角度来理解校准,其中正类的预测置信度应该反映所有预测中正例的频率(有时称为子集的流行度)而不是准确性。

我将使用scikit-learn [3]中的示例来展示它们之间的差异。图 6 显示了逻辑回归模型的可靠性图,该模型的校准相对较好。

图 6. 可靠性图

但是,如果我使用精度绘制 y 轴,它看起来像 V 形曲线,如图 7 所示。

图 7. 准确度-平均预测值图

        这是因为当阳性预测概率较低而阴性概率较高时,会抬高图的左半部分。这可以通过平均预测值的直方图来验证。大量示例的平均预测值在 0 到 0.1 之间,因为它们是负类,并且大多数示例都被模型正确分类。

五、结论

        希望您永远不会担心天气预报的不确定性校准。如果当下雨的概率低于 20% 时你总是被淋湿,你就知道预测模型校准不当。

        从机器学习从业者的角度来看,不确定性校准与模型概率结果的解释高度相关,特别是在医疗领域等安全关键应用中。

六、参考

[1] 德格鲁特、莫里斯 H. 和斯蒂芬 E. 费伯格。“预测者的比较和评估。” 《皇家统计学会杂志》:D 系列(统计学家) 32.1–2 (1983):12–22.APA

[2] Dawid, A. Philip. “The well-calibrated Bayesian.” Journal of the American Statistical Association 77.379 (1982): 605–610.APA

[3] sklearn.calibration.calibration_curve — scikit-learn 1.3.2 documentation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/178082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第四节HarmonyOS 熟知开发工具DevEco Studio

一、设置主体样式 默认的代码主题样式是黑暗系的,如下图所示: 如果你不喜欢,可以按照一下步骤进行修改: 左上角点击Flie->Settings->Appearance&Behavior->Appearance,点击Theme,在弹出的下拉…

XXDD——UUII(交互设计)

今天我们再次回到Adobe全家桶的怀抱,今天介绍的这一位成员,是最直接帮助大家进行平面交互式设计的软件。他就是XD~ Adobe XD全称Adobe Experience Design CC, 官方版跨平台支持Win10 与 macOS,并且所有用户均可免费下载使用。Adob…

Linux fork笔试练习题

1.打印结果&#xff1f; #include <stdio.h> #include <unistd.h> #include <stdlib.h>int main() {int i0;for(;i<2;i){fork();printf("A\n");}exit(0); } 结果打印 A A A A A A 2.将上面的打印的\n去掉,结果如何? printf("…

Java小游戏 王者荣耀

GameFrame类 所需图片&#xff1a; package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayLis…

Linux处理文本常见命令

目录 1 vim 2 echo 3 tee 4 cat 1 vim 编辑文本类的内容&#xff0c;使用的时候 vim [文件名]&#xff0c;比如 vim A.txt 进入vim界面后&#xff0c;按i可以开启编辑模式&#xff0c;按ESC可以关闭编辑模式&#xff0c;关闭编辑模式后:wq!保存并退出 2 echo ech…

【C语言加油站】函数栈帧的创建与销毁 #保姆级讲解

函数栈帧的创建与销毁 导言一、计算机硬件1.冯•诺依曼机基本思想2.冯•诺依曼机的特点&#xff1a;3.存储器3.1 分类3.2 内存的工作方式3.3 内存的组成 4.寄存器4.1 基本含义4.2 寄存器的功能4.3 工作原理4.4 分类4.4.1 通用寄存器组AX(AH、AL)&#xff1a;累加器BX(BH、BL)&a…

Git——Git应用入门

将会介绍以下知识&#xff1a; 搭建Git环境和创建Git版本库&#xff08;init、clone&#xff09;。文件添加、状态检查、创建注释和查看历史记录。与其他Git版本库交互&#xff08;pull、push&#xff09;。解决合并冲突。创建分支列表、列表切换和合并。创建标签。 1、版本控…

AI技术如何助力实现智慧交通

人工智能的常见优势在于能够实时、高效地分析处理大量的数据&#xff0c;并结合算法模型提供个性化、专业化的服务。在智慧交通方面&#xff0c;人工智能同样可以发挥专长&#xff0c;助力打造智能高效的交通运输网络&#xff0c;本篇就为大家简单介绍一下AI技术如何促进智慧交…

Java核心知识点整理大全20-笔记

目录 17. 设计模式 17.1.1. 设计原则 17.1.24. 解释器模式 18. 负载均衡 18.1.1.1. 四层负载均衡&#xff08;目标地址和端口交换&#xff09; 18.1.1.2. 七层负载均衡&#xff08;内容交换&#xff09; 18.1.2. 负载均衡算法/策略 18.1.2.1. 轮循均衡&#xff08;Roun…

Java王者荣耀小游戏

Background类 package LX;import java.awt.*; //背景类 public class Background extends GameObject{public Background(GameFrame gameFrame) {super(gameFrame);}Image bg Toolkit.getDefaultToolkit().getImage("C:\\Users\\ASUS\\Desktop\\王者荣耀图片\\Map.jpg&…

入侵redis之准备---Centos7上面部署redis

入侵redis之准备—Centos7上面部署redis 编写这个部署redis&#xff0c;只是为了另一个文章入侵redis做准备&#xff0c;网上还有好多类似的文章&#xff0c;这个单纯的就是部署安装&#xff0c;并简单的测试使用以下 关联其他文章 [1]VMware上面安装部署centos7镜像系统【详细…

地大与明道云的实践:零代码产教融合与协同育人

摘要 中国地质大学&#xff08;武汉&#xff09;与明道云合作&#xff0c;通过建设数字学院的方式&#xff0c;塑造教育数字化新动能。具体实践包括&#xff1a; 联合建设数字学院&#xff1a;选择经济管理学院作为试点&#xff0c;通过统筹规划、统一标准、分步实施的方式&a…

今日 LeetCode热题100--c++代码附思路

目录 1.最长连续序列 题目描述​编辑 通过代码 2.移动零 题目描述 通过代码 3.盛最多水的容器 题目描述 通过代码 1.最长连续序列 题目描述 通过代码 class Solution { public:int longestConsecutive(vector<int>& nums) {//排序&#xff0c;相同字母跳过…

kafka如何保证消息不丢失 不重复消费 消息的顺序

如何保证消息的不丢失 消息为什么会丢失 想要保证消息不丢失就要首先知道消息为什么会丢失,在哪个环节会丢失,然后在丢失的环节做处理 1.生产者生产消息发送到broker,broker收到消息后会给生产者发送一个ack指令.生产者接收到broker发送成功的指令,这个时候我们就可以认为消息…

SpringBoot中如何优雅地使用重试

1 缘起 项目中使用了第三方的服务&#xff0c; 第三方服务偶尔会出现不稳定、连接不上的情况&#xff0c; 于是&#xff0c;在调用时为了保证服务的相对高可用&#xff0c;添加了超时连接重试&#xff0c; 当连接第三方服务超时时&#xff0c;多重试几次&#xff0c;比如3次&a…

GPTS-生成一个动漫图像GPT

介绍 GPTs是ChatGPT的定制版本,用户可以通过组合指令、知识和功能来定制用于特定任务或主题的GPT。它们可以根据需要简单或复杂,解决从语言学习到技术支持等各种事情。 创建GPTs Plus和Enterprise用户可以在chat.openai.com/create上开始创建GPTs。 您可以通过在ChatGPT上的…

「有问必答」秒杀系统 Go并发编程实践!

有问必答 摘要 本文将介绍如何使用Go语言的并发原语来构建一个简单的高并发秒杀系统。 我们将使用Go语言的原生库和一些常见的技术手段&#xff0c;包括互斥锁、通道、计数器等&#xff0c;来解决并发访问和数据一致性的问题。 本文只是一个简单的示例&#xff0c;重点是Go语…

MySQL数据库如何应对故障恢复与数据恢复回滚

一个最基本的数据库&#xff0c;应当可以做到以下几点 数据持久化&#xff0c;可以将数据保存到磁盘&#xff0c;服务重启数据依然存在。 可以按照某种关系存储数据&#xff0c;如果你用过IO流&#xff0c;那么你会发现整理数据也是一件复杂的事情。我是该追加写呢还是找到某条…

K 最近邻算法

K 最近邻算法 简单 KNN海伦约会手写数字识别KNN 算法的优缺点 K 最近邻&#xff08;K-NearestNeighbor&#xff0c;KNN&#xff09;算法&#xff0c;是 1967 年由 Cover T 和 Hart P 提出的一种用于分类与回归的方法。 基本原理&#xff1a;存在一个带标签的数据集&#xff08;…

漏电保护器工作原理

漏电保护器 漏电保护器是低压线路中最常用的保护器之一&#xff0c;简称漏保&#xff0c;又称漏电开关或漏电断路器。漏电保护器除了具有空开的所有保护功能外&#xff0c;还具备漏电保护功能。 需要了解 一根通电导线可以产生磁场&#xff0c;磁场与电流方向遵循右手螺旋关…