Python-应用共形预测实践指南-全-
Python 应用共形预测实践指南(全)
原文:
annas-archive.org/md5/e2fbbdc80efb8a4344d68cd1813dddf8译者:飞龙
前言
与“Python 应用符合预测实用指南”一起踏上一次富有洞察力的旅程,这是您掌握机器学习中不确定性量化的全面指南。本书揭示了符合预测的复杂性,重点关注跨越分类、回归、预测、计算机视觉和自然语言处理的实际应用。它还深入探讨了处理不平衡数据集和多类分类挑战的复杂技术,通过案例研究将理论与实际应用相结合。
本资源精心制作,面向多元化的读者群体,包括数据科学家、机器学习工程师、行业专业人士、研究人员、学者和学生,他们有兴趣在各自领域掌握不确定性量化和符合预测。
无论您是刚开始数据科学之旅,还是希望深化现有的专业知识,本书都提供了在机器学习中自信地导航不确定性量化的基础知识和高级策略。
通过“Python 应用符合预测实用指南”,您不仅获得了知识,还获得了将尖端技术应用于行业应用、提高预测模型精度和可靠性的能力。抓住这个机会,利用符合预测的潜力来提升您的机器学习职业生涯。
这本书面向谁?
对于对符合预测感兴趣的读者来说,这是一本必读之作,它满足了广泛的职业和学习者的需求。它专门为数据科学家、机器学习工程师、教育者和学者、研究专业人士、应用开发者、对数据充满热情的学生、分析专家以及致力于扩展知识的统计学家设计。
本书涵盖内容
第一章**,介绍符合预测,《Python 应用符合预测实用指南》的开篇章节为本书的核心主题——符合预测提供了一个基本介绍。它通过阐明符合预测作为有效量化预测不确定性和增强机器学习模型信任的强大框架的目的来奠定基础。
在本章中,我们回顾了这一变革性框架的历史演变和日益增长的赞誉。探讨了支撑符合预测的关键概念和原则,揭示了其多方面的优势。本章强调了符合预测如何与传统机器学习技术区分开来。它通过提供预测区域和置信度度量来实现这一区别,所有这些都有有限的样本有效性保证,同时避免了需要限制性分布假设的需求。
第二章**,一致性预测概述,在《Python 应用一致性预测实用指南》的第二章中,我们开始了一段全面探索一致性预测领域的旅程,重点关注其在量化预测不确定性中的关键作用。
本章首先阐述了量化预测不确定性的关键需求,并介绍了随机不确定性和认知不确定性的概念。它强调了与传统的统计、贝叶斯和模糊逻辑方法相比,一致性预测提供的独特优势。这些优势包括保证覆盖范围、摆脱分布约束以及与各种机器学习模型的兼容性。
本章的大部分内容致力于阐明如何在内分类场景下进行一致性预测。它揭示了使用非一致性分数来衡量预测与训练数据分布之间一致性的复杂过程。这些分数随后被转换为 p 值和置信水平,为构建预测集奠定了基础。
第二章向读者提供了对一致性预测原理及其在量化不确定性中的深远意义的深入理解。这种知识在需要伴随预测的可靠置信估计的关键应用中尤其宝贵,增强了结果的总体可信度。
第三章**,一致性预测的基础知识,深入探讨了一致性预测背后的基本原理和数学基础。它解释了基本组成部分,如非一致性度量、校准集和预测过程。
它涵盖了分类和回归中的不同类型的非一致性度量,解释了它们的优缺点。流行的选择,如铰链损失、边缘和归一化误差,都得到了讨论。
本章通过示例说明了如何计算非一致性分数、p 值、置信水平和可信度水平。它还解释了校准集的作用、在线与离线一致性预测以及无条件与条件覆盖。
总体而言,第三章使读者对一致性预测的核心概念和数学原理有了深刻的理解。通过掌握这些基础,从业者可以将一致性预测应用于增强各种机器学习任务中预测的可靠性。
第四章**,一致性预测的有效性与效率,扩展了前一章中引入的概念,并深入探讨了有效性和效率的关键概念。通过实际案例,读者将发现准确(无偏)预测模型的重要性。
本章将深入探讨有效和高效模型的定义、指标和现实世界实例。我们还将探索一致预测提供的内在有效性保证。到本章结束时,你将具备评估和提升预测模型有效性和效率所需的知识,为你在各自领域带来更可靠和有影响力的应用打开大门。
第五章**,一致预测的类型,本章探讨了引人入胜的一致预测领域,探讨了其各种类型和独特属性。涵盖的关键主题包括一致预测的基础原理及其在机器学习中的相关性。本章解释了经典的归纳一致预测(TCP)和归纳一致预测(ICP),指导读者根据具体问题需求选择合适的类型。此外,还介绍了在二分类、多分类和回归中一致预测的实际应用案例。
第六章**,分类中的一致预测,本章探讨了用于量化机器学习预测不确定性的不同类型的一致预测器。它涵盖了经典的归纳一致预测(TCP)和更高效的归纳****一致预测(ICP)的基础。TCP 利用完整数据集进行训练,但需要对每个新预测进行模型重新训练。ICP 将数据分为训练集和校准集,通过一次训练实现计算加速。讨论了不同变体之间的权衡。
本章提供了将 TCP 和 ICP 应用于分类和回归问题的算法描述。它通过代码示例详细介绍了计算非一致性得分、p 值和预测区域。
根据数据大小、实时需求和计算约束等因素,提供了选择合适一致预测器的指南。示例用例说明了何时 TCP 或 ICP 更可取。
我们还介绍了一致预测中称为 Venn-ABERS 预测器的专业技术。
总体而言,本章为读者提供了对不同类型一致预测器的全面了解,以及如何根据问题背景选择最佳方法。
第七章**,一致性预测在回归中的应用,本章提供了使用一致性预测对回归问题进行不确定性量化的全面指南。它涵盖了不确定性量化的必要性,生成预测区间的技术,针对回归定制的一致性预测框架,以及如一致性分位数回归、Jackknife+和一致性预测分布等高级方法。读者将学习一致性预测的理论和实际应用,以产生有效、校准良好的预测区间和分布。本章包括使用现实世界房价数据和 Python 库的详细解释和代码示例,以提供实际应用这些方法的动手经验。总体而言,读者将获得可靠量化不确定性和为回归问题构建良好校准预测区域的知识。
第八章**,一致性预测在时间序列和预测中的应用,本章致力于一致性预测在时间序列预测领域的应用。
本章从探讨预测中不确定性量化的重要性开始,强调预测区间的概念。它涵盖了生成预测区间的多种方法,包括参数方法、如自助法等非参数技术、贝叶斯方法和一致性预测。
使用 Amazon Fortuna(EnbPI 方法)、Nixtla(statsforecast 包)和 NeuralProphet 等库展示了时间序列一致性预测的实际实现。提供了代码示例,说明了预测区间的生成和有效性的评估。
本质上,第八章为读者提供了实用的工具和技术,以利用一致性预测在时间序列预测模型中创建可靠且校准良好的预测区间。通过采用这些方法,预测者可以有效地量化不确定性并增强其预测的鲁棒性。
第九章**,一致性预测在计算机视觉中的应用,在这一章中,我们将开始探索一致性预测在计算机视觉领域的应用。
本章首先强调了在视觉任务中不确定性量化的极端重要性,特别是在具有安全关键影响的领域,如医学成像和自动驾驶。它解决了现代深度学习中的一个常见挑战——过度自信和校准不当的预测。
在突出一致性预测的独特优势之前,包括其无分布保证,探讨了多种不确定性量化方法。
本章生动地展示了符合预测在图像分类中的实际应用,重点关注 RAPS 算法,该算法以其生成紧凑且稳定的预测集而闻名。本章提供了代码示例,说明了在 ImageNet 数据上构建具有良好校准预测集的分类器,采用各种符合预测方法。
从本质上讲,第九章使读者理解了在计算机视觉系统中不确定性量化的价值。它提供了利用符合预测来构建具有有效置信度估计的可靠图像分类器的实践经验。
第十章**,自然语言处理中的符合预测,本章探讨了自然语言处理(NLP)中的不确定性量化领域,利用符合预测的力量。
本章首先深入探讨了语言固有的歧义性及其源于复杂深度学习模型的校准预测失误的后果。
比较了不确定性量化各种方法,如贝叶斯方法、自助法和分布外检测,并进行了深思熟虑。本章还揭示了将符合预测应用于 NLP 的机制,包括非一致性分数和 p 值的计算。
采用符合预测进行自然语言处理的优势被巧妙地概述,包括无分布保证、可解释性和适应性。本章还深入当代研究,突出符合预测如何增强大型语言模型的可靠性、安全性和信任度。
第十一章**,处理不平衡数据,本章探讨了处理不平衡数据的常见机器学习挑战的解决方案,其中一类数据远多于其他类。它解释了这种分布偏差为何对预测建模造成复杂问题。
本章比较了各种传统方法,如过采样和 SMOTE,指出它们在模型校准方面的问题。然后介绍了符合预测作为一种创新方法来处理不平衡数据,而不会损害可靠性。
通过在现实世界的信用卡欺诈检测数据集上的代码示例,本章展示了即使在高度倾斜的数据中,如何应用符合预测进行概率校准。读者将学习解决不平衡问题的最佳实践,同时确保决策准备好的概率预测。
第十二章**,多类符合预测,最后一章探讨了多类分类以及如何将符合预测应用于具有两个以上结果类别的难题。它涵盖了评估模型性能的指标,如精确率、召回率、F1 分数、对数损失和 Brier 分数。
本章解释了将支持向量机或神经网络等二分类算法扩展到多类环境的技术,使用一对一和一对多策略。
然后演示了如何通过正则预测提供每个类别的预测集或区间,并保证其有效性。还介绍了用于多类概率估计的高级方法,如 Venn-ABERS 预测器。
通过代码示例,本章展示了如何在多类问题上实现归纳正则预测,输出具有可信度和置信度分数的预测。读者将学习将正则预测应用于具有多个潜在类别的分类任务的最佳实践。
要充分利用本书
您需要在您的计算机上有一个有效的 Python 环境。我们建议使用 Python 3.6 或更高版本。
确保您已安装必要的库,例如 scikit-learn、NumPy 和 Matplotlib。如果没有,您可以使用 Conda 或 pip 轻松安装它们。
笔记本可以在本地运行,也可以使用 Google Colab (colab.research.google.com)。
| 本书涵盖的软件/硬件 | 操作系统要求 |
|---|---|
| Python | Windows, macOS 或 Linux |
| Colab (在 Google Cloud 中运行笔记本) | Windows, macOS 或 Linux |
| MAPIE | Windows, macOS 或 Linux |
| Amazon Fortuna | Windows, macOS 或 Linux |
| NIxtla statsforecast | Windows, macOS 或 Linux |
| NeuralProphet | Windows, macOS 或 Linux |
如果您正在使用本书的数字版,我们建议您从本书的 GitHub 仓库(下一节中有一个链接)访问代码。这样做将帮助您避免与代码的复制和粘贴相关的任何潜在错误。
下载示例代码文件
您可以从 GitHub 下载本书的示例代码文件 github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction。如果代码有更新,它将在 GitHub 仓库中更新。
我们还有其他来自我们丰富的书籍和视频目录的代码包,可在 github.com/PacktPublishing/ 获取。查看它们吧!
使用的约定
本书使用了许多文本约定。
文本中的代码:表示文本中的代码单词、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 处理。以下是一个示例:首先,我们必须使用 nonconformist 的包装器创建 ICP 分类器。
代码块设置如下:
y_pred_calib = model.predict(X_calib)
y_pred_score_calib = model.predict_proba(X_calib)
y_pred_test = model.predict(X_test)
y_pred_score_test = model.predict_proba(X_test)
小贴士或重要注意事项
看起来是这样的。
联系我们
我们欢迎读者的反馈。
一般反馈: 如果您对本书的任何方面有疑问,请通过电子邮件发送至 customercare@packtpub.com,并在邮件主题中提及书名。
勘误: 尽管我们已经尽最大努力确保内容的准确性,但错误仍然可能发生。如果您在这本书中发现了错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/support/errata并填写表格。
盗版: 如果您在互联网上发现我们作品的任何形式的非法副本,如果您能提供位置地址或网站名称,我们将不胜感激。请通过电子邮件发送至 copyright@packt.com 并提供材料的链接。
如果您有兴趣成为作者:如果您在某个主题上具有专业知识,并且您有兴趣撰写或为书籍做出贡献,请访问authors.packtpub.com.
分享您的想法
一旦您阅读了Python 应用一致预测实用指南,我们很乐意听听您的想法!请点击此处直接进入该书的亚马逊评论页面并分享您的反馈。
您的评论对我们和科技社区非常重要,并将帮助我们确保我们提供高质量的内容。
下载本书的免费 PDF 副本
感谢您购买这本书!
您喜欢在旅途中阅读,但无法携带您的印刷书籍到处走?您的电子书购买是否与您选择的设备不兼容?
别担心,现在,每购买一本 Packt 书籍,您都可以免费获得该书的 DRM 免费 PDF 版本。
在任何地方、任何设备上阅读。从您最喜欢的技术书籍中搜索、复制和粘贴代码到您的应用程序中。
优惠远不止于此,您还可以获得独家折扣、时事通讯和每日免费内容的每日电子邮件。
按照以下简单步骤获取这些好处:
- 扫描二维码或访问以下链接

packt.link/free-ebook/9781805122760
-
提交您的购买证明
-
就这样!我们将直接将免费 PDF 和其他好处发送到您的电子邮件。
第一部分:简介
本部分将向您介绍一致预测。它将详细解释一致预测可以解决的问题类型,并概述其基于的一般思想。
本部分包含以下章节:
-
第一章, 介绍一致预测
-
第二章, 一致预测概述
第一章:正规预测介绍
本书关于正规预测,这是一个用于不确定性量化的现代框架,在工业和学术界越来越受欢迎。
机器学习和人工智能应用无处不在。在机器学习的领域,预测是一个基本任务。给定一个训练数据集,我们训练一个机器学习模型对新数据进行预测。

图 1.1 – 机器学习预测模型
然而,在许多实际应用中,由于各种因素,如数据不足或不完整、建模过程中的问题,或者仅仅是底层问题的随机性和复杂性,统计、机器学习和深度学习模型做出的预测往往是不正确或不可靠的。
机器学习模型做出的预测通常没有提供所需的置信度和可靠性量化,这正是正规预测发挥作用的地方。通过提供其预测可靠性的明确度量,正规预测增强了机器学习模型的可信度和可解释性,使它们对决策者更加透明和用户友好。
本章将介绍正规预测,并探讨它在实际环境中的应用。
在本章中,我们将涵盖以下主要主题:
-
正规预测简介
-
正规预测的起源
-
正规预测与传统机器学习的区别
-
p 值及其在正规预测中的作用
本章将提供对正规预测及其应用的实用理解。在本章结束时,您将能够理解如何将正规预测应用于自己的机器学习模型,以提高其可靠性和可解释性。
技术要求
本书使用 Python。本书的代码托管在 GitHub 上,可在以下链接找到:github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction。您可以在本地运行笔记本或将它们上传到 Google Colab (colab.research.google.com/)。
正规预测简介
在本节中,我们将介绍正规预测,并解释如何利用它来提高统计、机器学习和深度学习模型生成的预测的可靠性。我们将概述正规预测背后的关键思想和概念,包括其基本原理和优势。在本节结束时,您将对正规预测有一个扎实的理解,并了解为什么它是一个重要的知识框架。
正规预测是一种强大的机器学习框架,为个别预测提供有效的置信度度量。这意味着当你使用正规预测框架中的任何模型进行预测时,你还可以测量你对该预测的置信度。
这在许多实际应用中非常有用,在这些应用中,可靠和可解释的预测至关重要。例如,在医疗诊断中,正规预测可以提供肿瘤是恶性还是良性的置信水平。这使得医生可以根据预测置信度做出更明智的治疗决策。在金融领域,正规预测可以提供估计金融风险的预测区间。这允许投资者量化上行和下行风险。
具体来说,正规预测可以确定有 95%的可能性肿瘤是恶性的,这使医生对癌症诊断充满信心。或者,它可以预测下个月股价将在 50 美元和 60 美元之间的 80%的可能性,提供一个估计的交易范围。正规预测通过提供可量化的置信度,增加了信任,并在医疗诊断和金融预测等现实世界应用中非常有价值。
正规预测的关键优势是它为个别预测提供有效的置信度度量。正规预测模型通常以预测区间或预测集的形式提供预测,并指定一个置信水平,例如 95%。在分类问题中,正规预测还可以校准类概率,增强置信度和明智的决策。
在正规预测中,“覆盖”表示预测区域(无论是分类任务中的潜在结果集合还是回归任务中的预测区间)准确包含真实值的可能性。本质上,如果你选择 95%的覆盖,这意味着有 95%的可能性真实值落在提供的预测集或区间内。
我们称这样的预测区域为“有效的”。预测有效性的要求对于确保模型不包含预测偏差至关重要,特别是在健康、金融和自动驾驶汽车等后果重大的应用中尤为重要。有效的预测是信任产生该预测的机器学习模型的前提。
虽然有其他方法来量化不确定性,例如贝叶斯方法、蒙特卡洛方法和自助法,以提供有效性保证,但这些方法需要关于数据的特定分布假设——例如,假设数据遵循正态分布。然而,真实世界数据的真实分布通常未知。相反,正规预测不做出分布假设,可以在不假设数据分布具体细节的情况下提供有效性保证。这使得正规预测更广泛地适用于可能不满足如正态性、平滑性等常见统计假设的真实数据。
在实践中,对特定分布的假设需求限制了贝叶斯推理或自助法等方法正式严格地陈述关于任意真实数据源的能力。无法保证这些方法的预测将具有所声称的置信水平或覆盖范围,因为这些假设可能不成立。这可能导致向用户传达的置信水平与实际覆盖范围之间存在不匹配,导致决策不准确并误导用户关于模型预测可靠性的认识。
正规预测通过提供不依赖于难以验证的数据分布假设的无分布有限样本有效性保证来规避这些问题。这使得正规预测的置信度估计在现实世界应用中更加可靠和稳健。
正规预测具有多重优势:
-
保证覆盖范围:正规预测自动保证预测区域的有效性。来自正规预测框架的任何方法都通过数学设计保证了预测区域的有效性。相比之下,其他方法输出的预测不提供任何有效性保证。例如,流行的 NGBoost 包不产生有效的预测区间(你可以在以下链接中了解更多信息:
medium.com/@valeman/does-ngboost-work-evaluating-ngboost-against-critical-criteria-for-good-probabilistic-prediction-28c4871c1bab)。 -
无分布依赖性:一致性预测是无分布依赖性的,可以应用于任何数据分布,无论分布的性质如何,只要数据是可交换的。可交换性意味着数据点的顺序或索引并不重要——对数据点进行洗牌或排列不会改变整体数据分布。例如,可交换性假设观察 1、2、3 与观察 2、3、1 或 3、1、2 具有相同的分布。这是一个比独立同分布(IID)更弱的假设,并且是提供有效性保证所必需的。与许多经典统计模型不同,一致性预测不假设数据遵循正态分布。数据可以具有任何分布,甚至包括像厚尾这样的不规则性。唯一的要求是可交换性。通过仅依赖于可交换性而不是严格的分布假设,一致性预测在预测覆盖范围上提供了有限样本保证,这些保证是无分布依赖性的,并且适用于任何数据源。
-
模型无关性:一致性预测可以应用于任何产生点预测的预测模型,包括分类、回归、时间序列、计算机视觉、自然语言处理、强化学习或其他统计、机器学习和深度学习任务。一致性预测已经成功应用于许多创新模型类型,包括最近的一些创新,如扩散模型和大型语言模型(LLMs)。一致性预测不要求模型是统计的、机器学习的或深度学习的。它可以是任何类型的任何模型,例如由领域专家开发的商业启发式模型。如果您有一个用于进行点预测的模型,您可以使用一致性预测作为您点预测模型上的不确定性量化层,以获得一个校准良好、可靠且安全的概率预测模型。
-
非侵入性:一致性预测在简单性和效率方面脱颖而出。它不是彻底改造现有的点预测模型,而是无缝地与之集成。对于已经将模型投入生产的公司来说,这是一个颠覆性的变化。对于数据科学家来说,这个过程甚至更加令人兴奋。只需将您的点预测模型与一致性预测提供的不确定性量化层叠加,您就装备了一个最先进的概率预测模型。
-
数据集大小:符合预测与典型的统计方法不同,后者依赖于严格的数据分布假设,如正态性,或需要大量数据集才能提供可靠的保证。它提供内在的数学保证,确保无论数据集大小如何,预测都是有效的且无偏差。虽然较小的数据集在回归任务中可能产生更宽的预测区间(或分类中的更大集合),但符合预测始终保持一致性。无论数据集大小、底层预测模型或数据分布如何,其有效性都得到保证,使其成为不确定性量化的一种独特且无与伦比的方法。
-
易于使用:几年前,由于开源库的稀缺,符合预测的采用受到限制,尽管一些著名大学和主要公司如微软已经使用它多年。快进到今天,情况发生了巨大变化。现在有丰富的顶级 Python 包,如 MAPIE 和 Amazon Fortuna 等。这意味着通过符合预测生成良好校准的概率预测只需几行代码,使其能够轻松集成到商业应用中。此外,KNIME 等平台通过低代码或无代码解决方案使它的使用民主化。
-
快速:最广泛采用的符合预测变体,归纳符合预测,因其高效运行且无需重新训练基础模型而脱颖而出。相比之下,其他方法,如贝叶斯网络,通常需要重新训练。这种区别意味着归纳符合预测提供了一种简化的方法,消除了与重复模型重新训练相关的时延和计算成本。
-
非侵入性:与许多不确定性量化技术不同,符合预测无缝集成,不会改变底层点预测模型。其非侵入性既经济又方便,尤其是与其他需要可能昂贵且复杂的机器或深度学习模型调整的方法相比。使用符合预测的好处确实是令人难以置信的。你可能想知道符合预测是如何实现其提供给用户的独特而强大的益处的。
符合预测的关键目标是提供有效的置信度度量,这些度量会根据做出个别预测的难度进行调整。符合预测使用“非一致性度量”来评估新观测值与先前观测值拟合得有多好。
整体工作流程包括以下步骤:
-
符合预测器通过从过去的训练示例中学习来量化对新观测值的预测的不确定性。
-
在量化新观察预测的不确定性时,它计算非符合度得分,衡量新观察与训练集(在符合预测的经典归纳版本中)或校准(在符合预测最受欢迎的变体——归纳符合预测中)相比有多不同或“不符合”。
-
这些非符合度得分用于确定新观察是否落在基于训练数据预期的值范围内。
-
该模型为每个预测计算个性化的置信度度量以及预测集(在分类问题中)或预测区间(在回归问题和时间序列预测中)。
符合预测的魔力在于这些非符合度度量,它允许模型在先前看到的数据的背景下评估每个新的预测。这种简单但强大的方法导致了对给定预测内在难度的适应性的有限样本覆盖保证。这种有效性适用于任何数据分布、预测算法或数据集大小。
在这本书中,我们将交替讨论非符合度和符合度度量;一个是另一个的倒数,并且根据应用,使用符合度或非符合度度量可能更方便。
理解符合度度量
符合度度量是符合预测的一个关键组成部分,本质上是一个函数,它将数值分数(符合度分数)分配给数据集中每个对象。符合度分数表示新观察与观测数据拟合得有多好。在做出新的预测时,我们可以使用符合度度量来计算新观察的符合度分数,并将其与先前观察的符合度分数进行比较。基于这种比较,我们可以计算预测的置信度度量。符合度分数表示预测的置信度程度。
符合度度量的选择是符合预测的关键步骤。符合度度量决定了我们如何评估新观察与过去示例的相似性。根据问题的不同,定义符合度度量的选项有很多。
在分类设置中,一个简单的符合度度量可以计算预测模型为新观察分配给每个类的概率得分。概率得分最高的类别将具有最佳的符合度或与训练数据的匹配度。
符合预测的关键优势在于,无论使用何种符合度度量,我们都能获得有效的预测区域。这是因为符合预测仅依赖于符合度度量所诱导的顺序,而不是其确切形式。
因此,我们有灵活性在设计中融入领域知识,为当前问题设计适当的一致性度量。如果度量可以评估新观测值与过去数据的匹配程度,则符合性预测可以用来提供有限样本覆盖保证。
虽然所有符合性预测器都提供有效的预测区域,但一致性度量的选择会影响它们的效率。效率与预测区间或集合的宽度相关——较窄的区间包含更多对决策有价值的信息。
虽然任何一致性度量都保持有效性,但精心选择一个针对应用的定制度量可以提高效率,并产生更窄、更有用的预测区间。这些区间还应根据模型的不确定性进行调整——对于难以预测的情况扩大,对于清晰的情况缩小。
让我们用一个例子来说明这一点。假设我们有一个包含疾病诊断患者的数据集,具有年龄、性别和测试结果等特征。我们想要预测新患者是否处于风险之中。
一个简单的一致性度量可以计算新患者的特征值与训练数据中的患者之间的相似度。与数据差异很大的新患者将获得低一致性得分和宽预测区间,这表明高度的不确定性。虽然这种一致性度量会产生有效的区间,但我们可以通过更定制的方法来提高效率。
通过仔细选择与我们的预测问题和领域知识相一致的一致性度量,我们可以获得高质量的符合性预测器,这些预测器既有效又高效。
我们现在将简要谈谈符合性预测的起源。
符合性预测的起源
符合性预测的起源在阿纳斯塔西奥斯·N·安杰洛普洛斯(Anastasios N. Angelopoulos)和斯蒂芬·贝茨(Stephen Bates)所著的《符合性预测与无分布不确定性量化轻松入门》(arxiv.org/abs/2107.07511)中有详细记录。
注意
符合性预测是由我的博士导师、伦敦皇家霍洛威大学的教授弗拉基米尔·沃克(Prof. Vladimir Vovk)发明的。弗拉基米尔·沃克毕业于莫斯科国立大学,在那里他学习数学,并成为了 20 世纪最著名的数学家之一安德烈·柯尔莫哥洛夫的学生。在这段时间里,后来引发符合性预测发明的初步想法出现了。
《随机世界中的算法学习》的第一版(link.springer.com/book/10.1007/b106715)由弗拉基米尔·沃克(Vladimir Vovk)、亚历山大·加默曼(Alexander Gammerman)和格伦·沙弗(Glenn Shafer)所著,于 2005 年出版。该书的第二版于 2022 年出版(link.springer.com/book/10.1007/978-3-031-06649-8)。
同构预测在美国学术界得到普及,是由 Carnegie Mellon 大学的 Larry Wasserman 教授及其合作者推广的,他们发表了一些关键论文,并将同构预测介绍给了美国的其他许多研究人员。
注意
在 2022 年,我完成了我的机器学习博士学位。同年,我创建了 Awesome Conformal Prediction (github.com/valeman/awesome-conformal-prediction) – 这是关于同构预测最全面的专业整理资源,自那时起已经收到了数千个 GitHub 星标。
同构预测已经从一个小众研究领域迅速发展为主流的不确定性量化框架。近年来,该领域迅速发展,预计仅在 2023 年就有超过 1,000 篇关于同构预测的研究论文发表。
这股研究热潮反映了同构预测在学术界和工业界的日益流行和适用性。像 Microsoft、Amazon、DeepMind 和 NVIDIA 这样的主要科技公司现在都在研究和应用同构预测。该框架也已被应用于医疗保健和金融等高风险领域,在这些领域中,有效性和可靠性至关重要。
自从引入以来,超过二十年的时间里,同构预测已经巩固了自己作为机器学习不确定性量化领域中最优秀和最可信的方法之一。随着越来越多的从业者认识到同构预测的有限样本保证相对于依赖于渐近理论和不可验证的分布假设的传统统计方法的价值,该领域将继续扩大。随着研究的增长和采用率的提高,同构预测有望成为任何需要严格不确定性估计和点预测的应用的标准工具。
在 NeurIPS 2022 上,我们这个时代的杰出数学家之一,Emmanuel Candes(斯坦福大学)发表了一场主题为 2022 年的同构预测 的关键邀请演讲 (slideslive.com/38996063/conformal-prediction-in-2022?ref=speaker-43789),吸引了成千上万的参与者。在他的演讲中,Emmanuel Candes 表示:
同构推断方法在学术界和工业界都变得非常流行。简而言之,这些方法为未来的观测提供了精确的预测区间,而不需要对任何分布假设做出任何假设,除了具有独立同分布(IID)数据,以及更一般地,可交换数据。
同构预测的未来
多年来,我一直推广一致预测作为可靠概率预测的顶级框架。令人兴奋的是,在过去的 2-3 年里,对一致预测的兴趣和采用率激增,包括亚马逊、微软、谷歌和 DeepMind 等主要科技领导者。许多大学和公司正在研究一致预测,积极开发实际应用,并发布开源库,如 MAPIE 和 Amazon Fortuna。
随着越来越多的从业者认识到一致预测在可信不确定性量化方面的力量,这些趋势将只会加速。正如著名机器学习研究者迈克尔·I·乔丹在 ICML 2021 研讨会(icml.cc/virtual/2021/workshop/8373)上所指出的:“一致预测的想法是 UQ(不确定性量化)的答案;我认为这是我见过的最好的——它简单、可推广,等等。”
一致预测作为量化机器学习中不确定性的不可或缺的工具,拥有极其光明的未来。几个关键原因推动了一致预测的势头和采用率:
-
简单性:一致预测易于理解和实现,使得没有深厚统计专业知识的从业者也能使用。其核心是直观地衡量新观测值如何与过去的数据一致。
-
灵活性:它可以应用于任何机器学习模型和数据分布。不需要对现有的预测器进行修改。这种模型无关的特性极大地扩大了一致预测的应用范围。
-
理论保证:有限的样本覆盖保证提供了与传统依赖于渐近理论的统计方法相比无与伦比的可信度水平。
这些优势使一致预测完美地定位为机器学习应用中不确定性量化的黄金标准,在这些应用中,可信的置信度估计至关重要。
我坚信,在未来的几年里,在学术研究和工业界采用一致预测将会迅速加速。它简单而强大的方法正在巩固其在任何处理预测不确定性的从业者或组织中的基本工具地位。在接下来的几年里,随着我们充分发挥这一颠覆性框架的潜力,将会非常激动人心。
一致预测与传统机器学习的不同之处
正规预测允许为任何统计、机器学习或深度学习模型生成良好校准的概率预测。这是在不依赖其他方法(如贝叶斯技术、蒙特卡洛模拟和重抽样)所需的限制性假设的情况下实现的。重要的是,正规预测不需要主观先验。它每次都提供数学保证的、良好校准的预测——无论底层预测模型、数据分布或数据集大小如何。
传统机器学习的一个关键限制是需要为单个预测提供更合理的置信度度量。模型可能具有出色的整体性能,但无法可靠地量化给定输入的不确定性。
正规预测通过输出具有统计有效保证的预测区域和置信度度量来解决这一问题。它在不需修改底层预测器的情况下实现了无分布依赖的可靠性。
当机器学习和深度学习模型在量化不确定性方面遇到困难,限制了用户信任时,正规预测已成功应用于具有重大现实问题的领域。例如,诊断抑郁症、药物发现以及预测癌症和中风的风险。
通过提供可靠的个体预测不确定性,正规预测释放了机器学习在需要置信度度量的高风险应用中的潜力。
正规预测在许多高风险领域具有宝贵的应用,在这些领域中,可靠的置信度估计至关重要:
-
医学:正规预测可以提高对医学影像中 AI 严重程度评分的信任,协助放射科医生使用 MRI 扫描进行疾病分级。
-
健康:它可以检测异常并提供可靠的异常分数,以告知治疗决策。
-
自动驾驶汽车:正规预测可以通过提供可靠的人行横道位置和轨迹预测区间来提高自动驾驶车辆的安全性。
-
金融:它可以确保贷款中的算法公平性,通过提供良好校准的预测。
-
推荐系统:通过正规预测增强推荐系统可以提高推荐质量,通过保证高质量的建议和最小化错误项目。
通过提供严格的置信度估计,正规预测在医学、交通、金融等领域解锁了可靠和道德的 AI 应用。其有效性保证使其对于依赖机器学习的高风险决策变得极其宝贵。
p 值及其在正规预测中的作用
在正规预测中,p 值在构建具有保证置信水平的预测区域和区间中起着关键作用。然而,它们的目的与传统统计假设检验中的不同。
让我们通过一个二元分类任务的例子来了解这是如何工作的。假设我们想根据患者的症状和特征来预测患者是否有医疗状况:
-
首先,我们计算一个非一致性分数,该分数衡量新患者与先前看到的患者的不同或“不符合”程度。我们可以以各种方式定义此分数,例如特征值之间的距离。
-
接下来,我们暂时为患者分配每个可能的标签——0(无状况)和 1(有状况),并使用分配的标签重新计算非一致性分数。
如果分数与过去具有标签 0 的患者的分数相似,那么标签 0 很好地符合数据。为了从统计上测量这种拟合,我们通过比较测试对象的“异常性”来计算 p 值,使用测试对象的非一致性分数与先前患者的非一致性分数进行比较。
如果这个 p 值超过我们选择的显著性水平,我们就将标签 0 添加到预测集中,因为它符合数据。我们重复这个过程,看看是否应该包括标签 1。
最终,我们构建了一个包含所有标签的预测集,这些标签的非一致性分数导致 p 值超过显著性水平。这为预测区域的置信水平提供了有限样本保证。
因此,总的来说,非一致性分数衡量每个潜在标签与训练数据拟合得有多好。然后 p 值让我们将这些分数转换为统计上严格的预测集和区间。这两个概念在一致性预测框架中是相辅相成的。
摘要
在本章中,我们介绍了一致性预测,并解释了这一强大框架在可靠地量化预测不确定性以提高对机器学习模型信任方面的多重好处。
我们解释说,一致性预测的关键好处是,与任何其他概率预测框架不同,它提供了有效的概率预测,并附带置信度度量,无论底层模型、数据集大小和数据分布如何。
我们随后探讨了一致性预测的起源,并了解了它最近如何成为被领先大学和公司采用的非常流行的框架。
最后,我们探讨了一致性预测与传统机器学习的不同之处,并了解了 p 值在一致性预测中的作用。
在第二章中,我们将解释为什么一致性预测是量化预测不确定性的宝贵工具,特别是在医疗保健、自动驾驶汽车和金融等关键环境中。我们还将讨论不确定性量化的概念以及一致性预测框架如何成功地解决了量化不确定性的挑战。
第二章:共形预测概述
在当今世界,数据在决策中扮演着至关重要的角色,因此测量预测中的不确定性变得越来越重要。为了实现这一目标,一种名为共形预测的相对较新的框架正在获得越来越多的关注。这个框架提供了既稳健又可靠的概率预测,同时也值得信赖。这是一个强大的工具,它为给定的预测提供了信心、准确性和可靠性的度量,使用户能够更有信心地做出明智的选择。
本章将概述共形预测。
它将解释为什么共形预测是量化预测不确定性的宝贵工具,尤其是在医疗保健、自动驾驶汽车和金融等关键领域。我们还将讨论不确定性量化(UQ)的概念以及共形预测框架如何成功地解决了量化不确定性的挑战。到本章结束时,您将更好地理解共形预测及其在各个领域的潜在应用。
在本章中,我们将涵盖以下主题:
-
理解不确定性量化
-
量化不确定性的不同方法
-
使用共形预测量化不确定性
理解不确定性量化
不确定性是任何预测的固有部分,因为总有一些未知或难以测量的因素。预测通常是基于不完整的数据或无法捕捉现实世界全部复杂性的模型。因此,预测会受到各种不确定性来源的影响,包括随机性、偏差和模型错误。
为了减轻与不确定性相关的风险,准确量化它是至关重要的。通过量化不确定性,我们可以估计可能结果的范围并评估我们对预测可以有多少信心。这些信息可用于做出明智的决策,并确定需要进一步研究或数据收集的领域。
UQ 是一个研究领域,帮助我们衡量在做出预测时我们不知道多少。UQ 尝试估计即使研究中的某些系统方面不完全清楚,结果发生的概率。
不确定性通常分为两种类型:随机和认知。随机不确定性是由被研究系统固有的随机性和不可预测性引起的,而认知不确定性则源于我们对系统缺乏了解。
随机不确定性
随机不确定性是指由系统固有的随机性和不可预测性引起的类型的不确定性。以下是一些随机不确定性的例子:
-
掷骰子:掷骰子的结果是固有的随机且不可预测的。你无法确定骰子上会出现哪个数字,因此这个过程存在随机不确定性。
-
天气预报:天气是一个受许多因素影响的复杂系统,其中一些因素本质上是随机的且难以预测。例如,由于随机不确定性,风暴系统的确切路径和强度可能难以预测。
-
股市波动:股市是一个受许多因素影响的复杂系统,包括人类行为、经济状况和新闻事件。其中一些因素本质上是不可预测的,可能导致股价波动,从而产生随机不确定性。
-
交通流量:交通流量是一个受多种因素影响的复杂系统,包括道路上的车辆数量、道路状况和驾驶员行为。在任何给定时间,交通的确切流量难以确定,导致随机不确定性。
让我们接下来讨论认知不确定性。
认知不确定性
认知不确定性是指由于对系统缺乏知识或理解而产生的类型的不确定性。以下是一些认知不确定性的例子:
-
医疗诊断:诊断医疗状况涉及基于可用数据进行预测,例如症状、病史和检测结果。然而,如果数据不完整或不可靠,或者对医疗状况理解不充分,诊断可能存在认知不确定性。
-
金融预测:预测未来经济状况是一项复杂任务,需要基于包括利率、通货膨胀和政治事件在内的广泛因素进行预测。然而,由于我们对经济系统的理解有限,这些预测总是存在认知不确定性。
-
自然灾害预测:预测自然灾害(如地震或飓风)的可能性和严重程度,需要基于过去事件和当前环境条件的数据进行预测。然而,如果我们对涉及的潜在物理过程没有完全理解,这些预测可能存在认知不确定性。

图 2.1 – 随机不确定性和认知不确定性的说明
前面的图示描绘了两个不同的点区域。左侧区域表现出明显的随机性,而右侧区域展示了结构化的数据模式,这从可以穿过其聚集点的直线中可以看出。左侧的簇表现出高随机不确定性,与右侧簇中低随机不确定性形成对比,这归因于其数据的规律性。此外,三个表现出高认知不确定性的区域对应于数据中的空白,表明我们对系统理解或知识的缺口。
让我们继续探讨量化不确定性的不同方法。
量化不确定性的不同方法
量化不确定性的方法有很多,每种方法都有其自身的优点和局限性。以下是一些例子:
-
统计方法:统计方法在不确定性量化(UQ)中得到广泛应用,涉及使用概率分布来模拟数据和预测中的不确定性。这些方法在金融、工程和物理学等领域得到广泛应用,并涉及置信区间、回归分析、蒙特卡洛模拟和假设检验等工具。
-
贝叶斯方法:贝叶斯方法涉及使用先验知识和数据来更新我们对预测不确定性的信念。这些方法在机器学习、自然语言处理和图像处理中得到广泛应用。贝叶斯工具包括贝叶斯推理——基于新数据更新关于预测不确定性的信念的统计方法——以及贝叶斯网络——表示变量之间概率关系的图形模型,可用于模拟各种系统和计算不同结果的可能性。贝叶斯工具还包括马尔可夫链蒙特卡洛(MCMC)——一种用于从复杂概率分布中采样的计算方法——以及贝叶斯优化——用于优化难以评估的函数的方法。
-
模糊逻辑方法:模糊逻辑涉及使用集合和隶属函数来表示系统中的不确定性。这种方法在控制系统、机器人和人工智能中得到广泛应用。模糊逻辑包括模糊集合——即允许部分隶属的集合。与将元素二分为集合成员或非成员的二元分类不同,模糊集合允许元素具有隶属度。这允许以更细腻的方式表示不确定性。
我们现在将讨论使用一致性预测来量化不确定性。
使用一致性预测量化不确定性
随着机器学习在医疗保健、金融和自动驾驶汽车等关键应用中的广泛应用,量化机器学习预测的不确定性变得越来越重要。在这些应用中,错误预测的后果可能非常严重,因此理解每个预测相关的不确定性变得至关重要。
例如,在医疗保健领域,机器学习模型被用来预测患者结果,如疾病发生的可能性或治疗的疗效。这些预测可以对患者护理和治疗决策产生重大影响。然而,如果模型无法提供自己置信度的估计,它可能没有用,并且可能存在依赖它的风险。
相反,如果模型可以提供自己不确定性的度量,临床医生可以利用这些信息做出更明智的关于患者护理和治疗的决策。
考虑一种情况,一位医生获得了患者的 MRI 扫描,并需要推断患者是否患有癌症。在这种情况下,高精度是不够的,因为医生的诊断必须排除(或不排除)患者患有如此关键、改变生活的疾病,如癌症。
类似地,在金融领域,机器学习模型被用来预测市场趋势、股价和风险评估。这些预测可以对投资决策和投资组合管理产生重大影响。然而,如果模型无法提供自己置信度的估计,它可能没有用,甚至可能导致不良的投资决策。另一方面,如果模型可以提供自己不确定性的度量,投资者可以利用这些信息做出更明智的决策,并减少与不确定性相关的风险。
量化不确定性是解释性和机器学习模型的可信度的先决条件。如果一个模型不能提供自己置信度的估计,那么可能很难解释它为什么做出了某个预测,或者难以赢得利益相关者的信任。
相反,如果模型可以提供自己不确定性的度量,利益相关者可以更好地理解模型是如何得出预测的,并且可以更有信心地评估模型的表现。
一致性预测是量化预测不确定性的相对较新的框架,它与传统统计、贝叶斯和模糊逻辑方法相比具有几个优势。
这里是使用一致性预测进行不确定性量化的一些优势:
-
概率预测:一致性预测提供了包含每个预测的置信度、准确性和可靠性度量的概率预测。这使用户能够做出明智的选择,并估计可能结果的范围。
-
覆盖保证:与其他方法不同,一致性预测模型生成的预测区域(分类任务的预测集/回归任务的预测区间)附带严格的统计有效性保证。这些宝贵的信息可以用来评估模型的可靠性,减轻风险,并确定需要进一步研究或数据收集的领域。
-
非参数:一致性预测不需要对潜在的概率分布做出假设,使其适用于广泛的难题和数据类型。
-
分布无关:只要能够保持可交换性假设,一致性预测模型适用于任何数据分布。然而,一致性预测模型最近已被扩展到不再满足可交换性假设的情境中,包括在时间序列预测中的成功应用。
-
数据集大小无限制:与统计和贝叶斯模型不同,一致性预测模型并不关心数据集的大小——预测的有效性不受数据集大小的影响。然而,当数据量较大时,预测区间通常更窄。这是由于机器学习模型通常能够从更多的数据中更有效地学习这一普遍模式。
-
稳健性:一致性预测对异常值和噪声数据具有鲁棒性,在数据可能不完美或不完整的环境中特别有用。
-
应用广泛:一致性预测已被成功应用于广泛的难题类别,包括分类、回归、时间序列和预测、计算机视觉、NLP、强化学习等等。
-
计算成本低:一致性预测模型在提供非常严格的不确定性预测区域的同时,保持了计算效率,并且不会对系统资源造成沉重负担,这使得它们非常适合实时应用和大数据集。
与其他方法相比,一致性预测提供了稳健的非参数概率预测,并保证了有效性。这在分析建模不确定性具有挑战性且需要用于决策的概率预测的情况下特别有益。
一致性预测通过提供表示预测准确性的可能性的概率度量来量化不确定性。这种不确定性度量根植于有效性的概念,它表示正确预测的预期比率。
在分类任务中,机器学习模型通常会生成类别得分并分配最高得分的标签。然而,当预测确定性低时,这可能会引发问题。
考虑以下来自 Anastasios N. Angelopoulos 和 Stephen Bates 的《一致性预测和无分布不确定性温和导论》(arxiv.org/abs/2107.07511)的图像。一个训练好的深度学习模型将为新的图像输出类别得分,就像以下图中的三个一样。
我们可以看到,这三个例子并没有产生相同的结果。

图 2.2 – 分类问题中的不确定性
注意
前面的图来源于Angelopoulos and Bates, 2023(经作者许可使用)。
左侧的图片容易预测——模型已经看到了很多松鼠的例子,对其预测相当有信心。因此,预测集中只包含一个潜在的标签——狐狸松鼠。
中间的图片与它相关联的不确定性程度中等——虽然背景中还有其他物体,但模型仍然相当确信它最可能是狐狸松鼠。然而,为了规避预测风险,模型现在输出额外的标签,如灰狐狸、桶和 雨桶。
右侧的图片最难分类,因为数据集中有很多不确定性;动物的头部分被遮挡,背景也很不寻常。为了应对这种预测不确定性,模型不仅降低了狐狸松鼠类别的概率,还引入了动物实际上可能是土拨鼠的可能性。此外,模型通过留下这种动物实际上也可能是水獭、黄鼠狼、海狸或甚至 黄鼬的可能性来扩展预测集。
注意保形预测模型如何扩展了深度神经网络的点预测,因为它不是生成一个点预测,而是在指定的 95%置信水平下生成一个预测集。保形预测模型生成的预测集提供了更多信息,以改善下游决策。
保形预测框架基于构建一个包含真实值并具有一定置信度的预测集的想法。这个集合被称为保形预测集,它是基于一组训练数据构建的。
构建一个保形预测集时,该框架使用一个非一致性函数来衡量预测与训练数据拟合得有多好。
非一致性度量用于按预测与训练数据拟合得有多好来对预测进行排序。最相似的预测包含在保形预测集中,以及基于非一致性度量具有一定置信度的一组额外预测。通过遵循这种方法,保形预测模型可以提供其自身不确定性的度量。这允许模型构建者和利益相关者更好地理解模型是如何得出预测的,并可以增强对模型性能的信心。
摘要
在本章中,我们概述了保形预测,并解释了为什么保形预测是量化预测不确定性的宝贵工具,尤其是在医疗保健、自动驾驶汽车和金融等关键领域。我们还讨论了不确定性量化(UQ)的概念以及保形预测框架如何成功地解决了量化不确定性的挑战。
在下一章中,我们将更深入地探讨一致预测的基础知识并将其应用于二元分类问题。我们将说明如何通过计算不符合度得分和 p 值,然后使用 p 值来决定哪些类别标签应包含在您的预测集中,来将一致预测应用于您自己的二元分类问题。
第二部分:一致预测框架
本部分将解释一致预测的基础知识。您将了解一致预测模型类型以及一致预测的关键概念,包括有效性、效率和不符合度度量。
本节包含以下章节:*
-
第三章**,一致预测的基础知识
-
第四章**,一致预测的有效性和效率
-
第五章**,一致预测器的类型
第三章:一致性预测的基础
本章将深入探讨一致性预测,这是一个强大且多功能的概率预测框架。一致性预测允许在机器学习应用中有效地量化不确定性。通过学习和利用一致性预测技术,您将能够做出更明智的决策,并更有效地管理与数据驱动解决方案相关的风险。
本章将涵盖一致性预测的数学基础。您将学习如何准确测量预测伴随的不确定性。您还将熟悉非一致性度量,掌握预测集的概念,并能够以全面和有意义的方式评估您模型的性能。通过本章,您将获得在各个学术和工业领域中非常有价值的能力,在这些领域中,理解与预测相关的不确定性是至关重要的。
在本章中,我们将涵盖以下主要内容:
-
一致性预测的基础知识
-
一致性预测的基本组件
通过掌握本章中介绍的概念和技术,您将能够充分利用一致性预测的力量,并有效地将其应用于您的工业应用中。
一致性预测的基础
在本节中,我们将涵盖一致性预测的基础知识。一致性预测有两种变体——归纳一致性预测(ICP)和归纳一致性预测(TCP)。我们将讨论一致性预测框架的优势,了解一致性预测的基本组件和非一致性度量的不同类型。我们还将学习如何使用非一致性度量在分类任务中创建概率预测集。
定义和原则
一致性预测是一种机器学习框架,它量化不确定性以产生概率预测。这些预测可以是分类任务的预测集或回归任务的预测区间。一致性预测在为统计、机器学习和深度学习模型提供有价值附加功能方面具有显著优势,这些功能可以增强对预测的信心。
此外,它还是唯一提供强大数学保证的不确定性量化框架,即错误率永远不会超过用户确定的显著性水平。简单来说,一致性预测模型总是生成有效且无偏的预测集和预测区间,这是做出明智决策的关键方面。
想要获取全面资源,请访问 Awesome Conformal Prediction (github.com/valeman/awesome-conformal-prediction)。这是关于一致预测最全面、专业整理的资源。随着时间的推移,一致预测已经发展成为一个广泛的框架,适用于与任何底层点预测模型一起使用,无论数据集的大小、底层点预测模型或数据分布如何。
今天,一致预测的原则可以表达如下:
-
有效性:一致预测的目标是创建预测区域(例如,对于分类任务的预测集或对于回归任务的预测区间),这些区域以用户指定的置信水平包含实际的目标值。目标是达到至少与用户定义的置信水平一样大的覆盖概率。例如,如果用户选择 95%的置信水平,预测区域(集或区间)应该至少在 95%的时间内包含正确的目标值。
-
效率:一致预测旨在生成尽可能小的预测区间或区域,同时保持所需的置信水平。这种方法确保预测有效且精确,同时传达有用的信息。
-
适应性:一致预测旨在生成对个别示例具有适应性的预测集。对于难以预测的示例,预测集预计会更宽,以考虑到预测的不确定性。
-
无分布依赖性:一致预测是一个多才多艺且稳健的框架,可以用于各种数据类型和机器学习任务,因为它不依赖于底层数据分布的特定假设。一致预测所做的唯一假设是数据可交换性,这是一个比独立同分布(IID)数据要求更宽松的条件。尽管如此,一致预测在许多超出可交换性的应用中取得了成功,包括时间序列和预测应用。
-
在线适应性:一致预测可以在在线和离线场景中运行。在在线设置中,一致预测器可以调整到新的数据点,并相应地修改其预测,而无需重新训练模型。
-
兼容性:一致预测是一个灵活的框架,可以无缝集成到各种统计和机器学习技术中,包括决策树、神经网络、支持向量机、提升树(XGBoost/LightGBM/CatBoost)、袋装树(随机森林)和深度学习模型。这是通过定义一个适当的非一致性度量来实现的,该度量可以应用于任何现有的机器学习算法。
-
非侵入性: 符合预测不需要对统计、机器学习或深度学习点预测模型进行更改。这对于已经部署到生产中的模型尤为重要。符合预测可以作为不确定性量化层添加到任何已部署模型之上,无需任何修改或了解预测模型的工作方式。
-
可解释性: 符合预测生成易于理解和提供明确测量不确定性的预测集和区间。这使得它成为金融、医疗保健和自动驾驶汽车等行业的有价值工具,在这些行业中,理解预测不确定性至关重要。
在下一节中,我们将探讨符合预测器的基本组件,并了解非一致性度量。
符合预测器的基本组件
我们现在将探讨符合预测器的基本组件:
-
非一致性度量: 非一致性度量是一个函数,用于评估新数据点与现有数据点之间的差异程度。它将新的观测值与整个数据集(在符合预测的完整归纳版本中)或校准集(在最受欢迎的变体——ICP中)进行比较。非一致性度量的选择基于特定的机器学习任务,如分类、回归或时间序列预测,以及底层模型。本章将探讨几个适合分类和回归任务的非一致性度量。
-
校准集: 校准集是数据集的一部分,用于计算已知数据点的非一致性得分。这些得分是建立新测试数据点的预测区间或区域时的参考。校准集应该是整个数据分布的代表样本,通常是随机选择的。校准集应包含足够数量的数据点(至少 500 个)。如果数据集较小,不足以保留足够的校准集数据,用户应考虑其他符合预测的变体——包括TCP(例如,参见Mastering Classical Transductive Conformal Prediction in Action –
medium.com/@valeman/how-to-use-full-transductive-conformal-prediction-7ed54dc6b72b))。 -
测试集: 测试集包含用于生成预测的新数据点。对于测试集中的每一个数据点,符合预测模型使用非一致性度量来计算非一致性得分,并将其与校准集的得分进行比较。通过这种比较,符合预测器生成一个包含目标值并具有用户定义置信水平的预测区域。
所有这些组件协同工作,创建了一个一致预测框架,该框架有助于在广泛的机器学习任务中进行有效的和高效的不确定性量化。
在上一章中,我们探讨了非一致性度量,这是任何一致预测模型的基本元素。为了回顾,非一致性度量的主要作用是通过评估新数据点与先前观察到的数据差异的程度,来量化新数据点的不确定性。
在一致预测框架中,任何模型都提供有效的预测集,无论选择的是哪种非一致性度量。然而,选择合适的非一致性度量对于创建更精确、信息丰富和自适应的预测区域至关重要。
在一致预测中,这些区域的大小决定了预测系统的有效性。较小的区域被认为是更有效和更有信息的。
一致预测模型的有效性可能受到用户选择的非一致性度量的影响。然而,最适合机器学习的非一致性度量取决于上下文。
为了进一步理解,您可以探索没有免费的午餐定理,该定理讨论了通用优化和学习算法的限制。您可以在en.wikipedia.org/wiki/No_free_lunch_theorem上找到有关此定理的更多信息。
尽管该定理有影响,但研究论文已经提供了关于选择有效非一致性度量的宝贵见解。这些论文检查了不同的数据集,并提供了关于选择在各种场景中已证明有效的非一致性度量的指导。通过利用这些研究成果,您可以在为特定的机器学习任务选择非一致性度量时做出明智的决定。
在题为Model-Agnostic Nonconformity Functions for Conformal Classification的研究论文ieeexplore.ieee.org/abstract/document/7966105中,作者们检查了三种模型无关的非一致性度量在分类问题中的效率。在用神经网络和神经网络集成作为分类器对 21 个多类数据集进行的实验中,作者们发现非一致性度量的选择对预测集的效率有显著影响。这些发现强调了选择适当非一致性度量以增强分类问题中一致预测效率的重要性。
研究人员得出结论,选择最佳的非一致性度量取决于最适合用例的效率指标。当从单标签预测(单例)的比例来评估效率时,基于边界的非一致性度量成为首选选项。另一方面,当评估预测集的平均宽度时,铰链损失度量产生了最窄的预测集,这表明它在产生更精确和专注的预测方面的有效性。
在一致性预测中,非一致性度量是从底层点预测模型生成的预测中推导出来的。更容易误分类或具有更高内在不确定性的实例被分配更高的非一致性得分。一致性预测模型的效率取决于底层模型的准确性和所选非一致性度量的质量。在选择合适的非一致性度量时,尤其是在处理需要额外支持以准确分类对象的具有挑战性的数据集时,这一点变得尤为重要。
非一致性度量的类型
非一致性度量有两种类型——模型依赖型和模型独立型。
基于模型的非一致性度量是针对一致性预测中使用的特定类型底层模型而言的。这些度量依赖于模型的内部工作或特征来计算非一致性得分。与可以应用于任何类型点预测模型的模型无关的非一致性度量不同,模型依赖性度量是根据特定模型定制的。
基于模型的非一致性度量利用底层模型的独特特征或属性来评估新数据点与训练数据(在经典 TCP 中)或校准数据(在 ICP 中)的偏差或不确定性。这些度量可以根据模型的输出进行定制,例如概率估计或决策边界。它们还可以利用模型特定的属性,如学习到的权重或参数,来确定非一致性得分。
基于模型的非一致性度量的例子包括支持向量机中支持向量的距离、线性回归模型中的残差误差,或在概率分类器中预测类别概率与实际类别概率之间的差异。
基于模型的非一致性度量具有潜在地捕捉模型特定信息和特性的优势,从而实现定制和可能更准确的不确定性量化。然而,它们仅限于它们设计的特定模型,并且可能无法很好地推广到其他模型。因此,我们只将涵盖模型无关的非一致性度量。
在《适用于一致性分类的模型无关非一致性函数》一文中,作者研究了三种流行的损失函数——鸟结损失、边界和布里尔分数——作为预测分类中模型无关非一致性度量的流行选择。由于这些函数与任何产生类别估计的分类模型一起工作,因此它们可以与任何生成类别分数的分类器一起使用,这使得它们具有模型无关性。
重要的是要注意,在一致性预测器中,只有非一致性得分的顺序很重要。在双类问题中,所有三个损失函数——鸟结损失、边界和布里尔分数——都将实例按相同的顺序排列,从而产生相同的效率。
为了比较这些效率度量,作者关注了多类问题。
让我们更详细地看看三种非一致性度量。
鸟结损失
鸟结损失(有时也称为LAC 损失或逆概率)可以在分类问题的背景下进行描述,在这种情况下,我们从模型中获得类别概率作为输出。
对于特定的实例,假设真实标签是y,模型对该标签的预测概率是P(y)。那么,该实例的鸟结损失计算如下:
鸟结损失 = 1 − P(y)
解释
如果模型非常自信,并将概率 1 分配给真实标签y,那么鸟结损失为 0。这表明了一个完美的预测。
如果模型将 0 的概率分配给真实标签y,那么鸟结损失为 1。这表明了一个完全错误的预测。
对于介于 0 和 1 之间的概率,鸟结损失将在 0 和 1 之间变化,较高的值表示对正确标签的信心较低,反之亦然。
从本质上讲,鸟结损失给出了预测与真实标签“偏离”程度的度量。较低的鸟结损失值更好,表明预测的真实标签概率更接近 1。相反,较高的鸟结损失值表示预测概率与真实标签之间的差异更大。
为了说明如何计算鸟结损失非一致性得分,考虑一个产生三个类别分数的分类器:class_0 = 0.5,class_1 = 0.3,和class_2 = 0.2,以及实际标签y = 1。
为了计算非一致性得分,取真实类别的概率分数(在这种情况下,1)并从 1 中减去。因此,这个示例的逆概率(鸟结)非一致性得分是 0.7。
边界非一致性度量
边界非一致性度量定义为预测的最可能错误类别标签的概率与真实标签的预测概率之间的差异:
Δ[h(x i), y i] = max y≠y i ˆ P h(y ∣ x i) − ˆ P h(y i ∣ x i)
解释
该度量捕捉了分配给任何错误标签的最高概率与实例 xi 的真实标签 yi 的概率之间的差异。对于具有真实标签 yi 的特定实例 xi,我们首先确定最可能错误的类别的概率,然后从该值中减去真实标签的概率以得到边缘。
如果边缘值接近零或为负,这意味着模型对其对真实类别标签的预测有信心,并且没有其他类别具有接近竞争概率。这表明是一个符合规范的反例。
如果边缘值是正的且较大,这表明模型为另一个类别(一个错误的类别)分配了比真实类别更高的概率。这是一个不符合规范的反例,表明模型对错误类别的信心比对真实类别的信心更大。
边缘越大,反例越不符合规范,因为它表明预测的真实类别的概率与最可能错误的类别的概率之间的不一致性更大。
从本质上讲,基于边缘的非一致性度量提供了一个关于预测“风险”的指示。如果度量值高,表明模型对该实例的预测可能存在问题,表明预测可能不可靠。如果度量值接近零或为负,这意味着模型对其对真实类别的预测更有信心。
为了说明如何计算边缘非一致性得分,考虑一个产生三个类别得分的分类器:class_0 = 0.5,class_1 = 0.3,class_2 = 0.2,以及实际标签 y = 1。
要计算边缘非一致性得分,需要取最可能但错误的类别的概率(在这种情况下,为 0)并从真实类别的概率(1)中减去,以得到 0.2 的边缘非一致性得分。
Brier 得分
Brier 得分衡量分类任务中基于概率的预测的准确性。它计算预测概率与实际二元结果之间的平方差。该分数的值可以从 0(完美准确性)到 1(完全不准确)不等。
Brier 得分是正确评分规则的一个例子(分类问题中另一个正确的评分规则是交叉熵损失)。
正确评分规则是一种用于评估概率预测准确性的度量。具体来说,它是一种规则,为每个预测分配一个数值分数,使得最准确(或校准)的概率预测在平均情况下将获得更好的(通常是更低的)分数,比任何其他有偏或不太准确的预测。
正确评分规则背后的思想是鼓励诚实地报告概率。如果一个评分规则是“正确的”,那么预报员在报告他们的真实信念或真实估计的概率时,而不是夸大或贬低他们的预测时,将获得最佳的预期分数。
从本质上讲,合适的评分规则确保预报员在提供对事件概率的真实评估时,在评分方面获得最佳回报。
作为一种合适的评分规则,布里尔分数促进了准确度良好的概率估计。它独特地捕捉了校准,即预测概率与实际结果之间的对齐,以及区分度,即模型区分类别的能力。
格伦·W·布里尔(Glenn W. Brier),在气象预报领域工作,于 20 世纪 50 年代发明了布里尔分数(Brier score),并在他的论文《以概率表示的预报验证》(journals.ametsoc.org/view/journals/mwre/78/1/1520-0493_1950_078_0001_vofeit_2_0_co_2.xml)中对其进行了描述)。与对数损失一样,布里尔分数今天被广泛用于评估概率分类器的性能和理解预测概率的质量。
为了说明如何使用我们的示例计算布里尔分数,考虑同一个分类器,它产生了三个类别得分:class_0 = 0.5,class_1 = 0.3,和 class_2 = 0.2,以及实际标签y = 1。以下是计算给定示例布里尔分数的逐步指南:
-
编码实际类别:
对于多类别问题,您将希望使用 one-hot 编码对实际标签进行编码:
-
class_0: 0
-
class_1: 1
-
class_2: 0
-
-
计算每个类别的平方差异:
计算预测概率与实际结果之间的平方差异:
-
对于类别 0: (0-0.5)² = 0.25
-
对于类别 1: (1-0.3)² = 0.49
-
对于类别 2: (0-0.2)² = 0.04
-
-
平均平方差异:
布里尔分数 = 0.25 + 0.49 + 0.04 _______ 3 = 0.26
因此,此例的布里尔分数为 0.26。较低的布里尔分数表示更好的性能,0 是最佳可能分数。
模型无关非一致性度量措施的有效性
在论文《用于一致性分类的模型无关非一致性函数》中,作者使用两个标准评估了三种非一致性措施的有效性:单类别分类(OneC)和AvgC。
OneC指的是所有预测中只包含一个标签的单例集的比例。这些集是期望的,因为它们提供了最有信息的预测。
另一方面,AvgC指的是预测集中类别标签的平均数量。较低的AvgC值表明模型在消除不适合的类别标签后,能更好地产生更具体和有信息的预测。
例如,考虑一个二元分类问题,以下是对五个实例的预测:
-
预测集 1: {0}
-
预测集 2: {1}
-
预测集 3: {**0, 1}
-
预测集 4: {1}
-
预测集 5: {0}
在这种情况下,有五个预测,其中四个是单例集(预测集 1、2、4 和 5)。为了计算OneC,我们计算所有预测中单例集的比例:
OneC = (单例集数量) / (预测集总数) = (4) / (5) = 0.8
较高的OneC值表明,符合预测模型更有效地产生具体和有信息的预测。在这个例子中,80%的预测集是单例集,反映了相对高效的分类器。
为了计算代表预测集中平均类别标签数的AvgC,我们首先计算每个预测集中类别标签的总和:
-
预测集 1:1 个标签
-
预测集 2:1 个标签
-
预测集 3:2 个标签
-
预测集 4:1 个标签
-
预测集 5:1 个标签
类别标签的总和是 1 + 1 + 2 + 1 + 1 = 6。
接下来,我们将这个总和除以预测集的总数:
AvgC = (类别标签总和) / (预测集总数) = (6) / (5) = 1.2
在这个例子中,AvgC为 1.2,表示平均每个预测集包含 1.2 个类别标签。较低的AvgC值表明模型在产生更具体和有信息的预测方面表现更好。在这种情况下,AvgC值为 1.2 反映了相对高效的分类器,因为它接近最小可能值 1,这会在所有预测集都是单例集时发生。
研究人员已经确定,最有效的方法是使用基于边界的非一致性函数来实现高比例的单例预测(OneC)。
另一方面,使用铰链(逆概率)非一致性度量的非一致性度量在平均AvgC值上产生了最小的标签集,这是通过AvgC来衡量的。
这种结果背后的直觉是什么?
为了获得高的OneC分数,预测应该主要是包含单个标签的单例集。这意味着必须将所有其他标签分配高非一致性分数。基于边界的非一致性度量促进了这种结果,尤其是在基础模型赋予单个标签高概率的情况下。在这种情况下,与该单个标签相关的概率被添加到所有其他标签的非一致性分数中,从而有效地促进了单例集的选择,并因此提高了OneC性能。
然而,铰链损失函数,它对每个标签进行单独评估,可能只排除一些标签,而在某些情况下保留高概率的标签。这种情况发生是因为所有其他标签必须具有固有的低概率,而铰链损失函数并没有考虑到剩余的概率质量是如何具体分配给高概率标签的。因此,铰链损失函数无法考虑这种分布可能导致它只排除一些标签,而不一定专注于高概率的标签。这两种非一致性度量分配分数的不同导致基于边界的非一致性度量更适合实现高比例的单例预测。
另一方面,为了通过AvgC获得平均更小的标签集,基于铰链(逆概率)非一致性度量的非一致性度量更有效。这是因为铰链损失函数只考虑真实类标签的概率。相比之下,基于边界的非一致性度量考虑了真实类标签的概率以及最可能的错误类标签的概率。这导致基于边界的非一致性度量平均产生更宽的集合,而铰链损失函数更有可能排除错误标签,并产生更小、更有信息的集合。
与分类相比,回归问题在选择非一致性度量方面相对简单:
- 绝对误差:绝对误差非一致性度量是给定数据点的预测值与真实目标值之间的绝对差值。这个度量可以与任何回归模型一起使用:
非一致性(x)= |y_pred - y_true|
-
归一化误差:归一化误差非一致性度量是绝对误差除以预测误差尺度的估计,例如平均绝对误差(MAE)或残差的方差。这个度量可以与任何回归模型一起使用,并有助于解释数据中的异方差性:
非一致性(x)= |y_pred - y_true| / scale
现在让我们考虑回归问题中这两种非一致性度量的优缺点。
绝对误差
优点如下:
-
简单性:计算和理解都很简单,因此成为许多实践者的首选选择
-
统一解释:由于它没有缩放,解释在不同数据集之间保持一致
缺点如下:
-
尺度敏感性:绝对误差可能对目标变量的尺度敏感。对于具有大目标值的数据集,即使预测相对准确,绝对误差也可能很大。
-
不考虑数据分布:它不考虑数据集中误差的变异性或分布,这可能导致过于乐观或悲观的符合预测。
归一化误差
优点如下:
-
尺度不变性:通过根据误差的尺度(例如,平均绝对误差或残差的标准差)归一化误差,它对目标变量的尺度变得不那么敏感,从而允许在具有不同尺度的数据集上实现更一致的性能。
-
解释异方差性:这种度量对于表现出异方差性(即误差的变异性随数据变化)的数据尤其有用。通过使用一个度量来归一化,它可以更准确地表示预测的相对准确性。
-
更适应:归一化因子可以适应数据的局部特性,提供更有意义的误差度量。
缺点如下:
-
复杂性:它引入了一个额外的复杂性层,因为需要确定最佳归一化误差的方法。归一化的选择(例如,使用平均绝对误差与残差的标准差)可能会影响结果。
-
误导性结果的风险:如果归一化因子选择不当或从小的样本中计算得出,可能会导致误导性的符合预测。
-
需要更多数据:估计预测误差的尺度通常需要一个足够大的样本量才能可靠。
在回归的符合预测的背景下,这些度量之间的选择通常取决于数据的特性和应用的特定需求。如果存在异方差性的担忧,归一化误差可能更合适。否则,绝对误差的简单性可能更受欢迎。
符合预测器的第二个组成部分是校准集,用于计算已知数据点的非符合度分数。校准集是最受欢迎的变体 ICP 的特征,而 TCP 不需要校准集。与 ICP 相比,TCP 利用所有可用数据,在数据使用方面效率更高。然而,TCP 在计算上效率低下,需要为每个新的测试对象重新训练底层点预测模型。
我们将关注 ICP,这是当前研究和开源库中最流行和最广泛使用的变体,以更好地理解符合预测。ICP 是在 2002 年的一篇论文中引入的,题为《用于回归的归纳置信机器》(Inductive Confidence Machines for Regression) (link.springer.com/chapter/10.1007/3-540-36755-1_29)。
ICP 在计算效率方面具有显著优势,因为它几乎与底层点预测模型一样快。这是因为 ICP 基于训练数据生成单个模型,然后可以使用该模型为所有测试实例生成预测。任何预测模型都可以与 ICP 结合,将其转换为符合预测器。
在开发 ICP 时,请记住,训练集仅用于训练基础预测模型。不要用它来构建符合预测器。同样,校准集应仅保留用于符合预测器,而不是用于训练基础模型。
符合预测的主要目标是为新出现的未见示例提供有效的预测集。ICP 方法通过比较底层点预测模型做出的预测与实际标签,使模型能够了解不确定性。
ICP 的构建如下:
-
将您的训练数据分为两个不相交的子集 IT 和 IC,其中 T 和 C 分别表示适当的训练集和校准集。
-
使用适当的训练集 IT 中的数据来训练您的点预测模型 H。如前一章所述,H 可以是任何点预测模型,包括统计模型、机器学习、深度学习,甚至是基于专家意见、业务规则或启发式方法的任何模型。
-
使用适当的非一致性度量来计算分类或回归任务的非一致性得分α1, α2, ..., αn,其中 n 代表校准数据集中的数据点总数。
-
暂时将标签 y 分配为新测试点 x 的潜在标签,并计算(x,y)的非一致性得分α。
-
按以下方式计算 p 值:
p = |{z i : α i ≥ : α T}| + 1 _ n + 1 .
让我们简要讨论计算每个测试数据点的 p 值这一重要步骤。在前面的步骤中,我们计算了校准集中所有点的非一致性得分。然后,我们计算新测试点的非一致性得分,以确定测试点的非一致性得分与校准集中的那些得分相比如何。p 值提供了一个衡量测试对象与校准数据差异的指标,基于其非一致性得分。它是通过首先使用模型计算测试对象的非一致性得分,然后使用相同的模型计算校准集中所有对象的非一致性得分来计算的。然后,计算校准对象中非一致性得分大于或等于测试对象得分的对象数量,并将 1 加到这个计数上。这个计数加 1 然后除以校准对象总数加 1,以确定 p 值,这表明了至少与测试对象一样极端的校准对象的比例。得到的 p 值提供了测试对象与校准数据模式非一致性的定量指标,低 p 值意味着测试对象与校准数据相比非常不寻常。
-
符合性预测的核心思想是为测试点分配一个暂定的标签 y(在分类问题中是一个类别标签,在回归问题中是一个真实的 y 值)并评估测试对象(包括其特征和分配的标签)与校准集中观察到的对象如何拟合。为了衡量这种拟合,我们通过比较测试对象的“异常性”来计算 p 值,使用的是测试对象的非一致性得分与校准集对象的得分。
重要的是要注意,在计算 p 值时,分子和分母(n+1)包括测试对象,与校准集数据一起放在同一个袋子里。由于可交换性假设,数据可以被洗牌,使得所有数据点在顺序方面都是等效的。
一旦我们得到了具有暂时分配标签的测试点的 p 值,我们就将其与显著性水平进行比较。如果 p 值低于显著性水平,这表明校准集中几乎没有,如果有的话,对象与我们的测试点一样异常。这表明提出的标签 y 不适合,我们将其排除在预测集之外。
另一方面,如果 p 值等于或高于显著性水平,考虑到观察到的数据,将潜在标签 y 分配给我们的测试对象并不会使其显得特别异常。从这个意义上讲,我们使用 p 值来测试在可交换性假设下,每个潜在 y 值是否适合之前观察到的数据。
-
我们对 y 的每个可能值重复上述过程。结果,我们获得一个包含真实标签的概率为 1 - ε的预测集,其中ε是我们选择的显著性水平(例如,5%)。
现在,我们将讨论置信度和可信度的概念,这些概念有助于评估预测的质量:
-
置信度水平:置信度水平,用(1 - ε)表示,代表真实标签(或值)落在预测集中的概率。更高的置信度水平表明预测更有可能是准确的。置信度水平通常提前选择,常见值是 0.95(95%)或 0.99(99%)。例如,以 95%的置信度水平,可以预期真实标签将有 95%的时间包含在预测集中。
-
可信度水平:可信度水平,用 p 表示,衡量预测集中每个元素是真实标签的可能性。我们讨论了计算标签‘y’每个潜在值的 p 值。在分类任务中,可信度水平可以解释为对每个类别标签的置信度的归一化度量。可信度水平有助于确定回归任务预测区间内最可能的价值。可信度水平可以用作阈值来过滤掉不太可能的预测,从而得到更精确、尽管规模较小的预测集。
让我们考虑一个具有两个可能类别标签的二分类问题:A和B。我们将使用符合性预测框架来计算测试数据点的置信度和可信度水平。
假设我们已经训练了一个点预测模型,并计算了校准数据集和测试点的非一致性得分。
校准数据集的非一致性得分如下:
-
第 1 点(标签A):0.4
-
第 2 点(标签A):0.3
-
第 3 点(标签B):0.2
-
第 4 点(标签B):0.5
使用模型的预测标签和概率来计算测试点的非一致性得分。例如,如果模型为类别 A 产生 0.75 的概率估计,为类别 B 产生 0.65 的概率估计,则非一致性得分将按以下方式计算:
-
对于类别 A,模型分配的概率为 0.75。非一致性得分是通过从 1 减去这个概率来计算的,即 1–0.75 = 0.25。
-
对于类别 B,模型分配的概率为 0.65。非一致性得分为 1–0.65 = 0.35。
通常,非一致性得分是 1 减去模型对候选标签的概率。这衡量了预测与完全置信(概率为 1)的偏差程度。更高的非一致性得分意味着模型的标签分配不太确定或不一致。当模型为每个类别输出概率估计时,通常会使用 Hinge 损失。从 1 减去概率提供了一个直观的非一致性度量。
现在,我们将为每个候选标签计算 p 值:
-
标签 A:计算非一致性得分大于或等于 0.25 的校准点数量:3(点 1、2 和 4)
p 值 = (3 + 1) / (4 + 1) = 4 / 5 = 0.8
-
标签 B:计算非一致性得分大于或等于 0.35 的校准点数量:2(点 1 和 4)
p 值 = (2 + 1) / (4 + 1) = 3 / 5 = 0.6
这些 p 值是每个标签的可信度水平。因此,标签 A 的可信度为 0.8,标签 B 的可信度为 0.6。
我们期望的置信水平是 95%(1–ε = 0.95,ε = 0.05)。由于两个可信度水平(p 值)都大于选择的显著性水平ε = 0.05,我们将标签 A 和 B 都包含在预测集中。
在这个例子中,置信水平为 95%,表示真实标签有 95%的概率包含在预测集中。可信度水平为标签 A 的 0.8 和标签 B 的 0.6,这表明标签 A 更有可能是正确的标签,而不是标签 B。
然而,由于两个标签的可信度水平都高于显著性水平,它们都被包含在预测集中。
在线一致性预测和离线一致性预测是两种不同的一致性预测变体,它们在处理和整合新数据点的方式上有所不同:
-
离线一致性预测:在离线一致性预测中,模型在固定数据集上训练,并为单独的校准数据集计算非一致性得分。当新数据点可用时,模型不会更新或改变。这种方法适用于数据集静态或你有大量数据可用于训练和校准时。离线一致性预测的缺点是它不适应新的数据或数据分布随时间的变化。
-
在线一致性预测:在线一致性预测中,当新数据点可用时,模型会持续更新。它通过更新非一致性得分并相应调整预测来整合新信息。在线一致性预测在处理流数据或当潜在数据分布随时间变化时特别有用。这种方法使模型能够与最新数据保持同步,在动态环境中提供更准确的预测。然而,由于需要不断更新,在线一致性预测可能计算上要求更高。
条件覆盖和无条件覆盖是评估预测模型预测区间性能的两个标准。它们评估预测区间对真实值的覆盖情况,但它们关注不同的方面:
-
无条件覆盖:无条件覆盖评估真实值落在预测区间内的比例,而不考虑特定的条件或模式。它衡量预测区间在整个数据集上捕捉真实值的能力。具有良好无条件覆盖的模型将在指定比例(例如,95%)的时间内将真实值包含在预测区间内。无条件覆盖对于评估模型的总体性能很有用,但它不考虑观察之间的潜在依赖关系或数据分布的变化。
-
条件覆盖:另一方面,条件覆盖在考虑数据中的特定条件或模式的同时,评估预测区间的性能。它检查预测区间在考虑具有某些特征或依赖关系(例如,时间段、类别等)的数据子集时,捕捉真实值的程度。具有良好条件覆盖的模型将保持每个特定条件或数据子集所需的覆盖率。条件覆盖为模型性能提供了一种更细致的评价,有助于识别模型对某些数据子集预测中可能存在的弱点或偏差。
总结来说,无条件覆盖评估模型预测区间包含真实值的总体能力。相比之下,条件覆盖评估在特定条件或数据子集中预测区间的性能。这两个标准对于理解预测模型的性能都很重要,但它们关注模型预测的不同方面。
符合性预测是一个产生可靠和有效预测并具有可量化不确定性的框架。它可以应用于广泛的机器学习、统计或深度学习模型以及其他预测方法。在这里,我们将讨论符合性预测与其他框架的关系:
-
传统机器学习框架:符合性预测可以与传统机器学习方法(例如,线性回归、SVM、决策树等)相结合,为预测提供有效的置信度或可信度度量。通过这样做,符合性预测增强了这些方法,使用户能够更好地理解与每个预测相关的不确定性。
-
集成方法:例如,袋装、提升和随机森林等集成方法也可以从符合性预测中受益。通过将这些方法与符合性预测相结合,集成可以产生一个点估计和一个带有相关置信水平的预测区间或集合。
-
深度学习框架:一致性预测可以与深度学习模型(如神经网络)集成,为其预测提供可量化的不确定性估计。这允许从业者更好地理解这些复杂模型产生的预测的可靠性。
-
贝叶斯框架:贝叶斯方法本质上通过概率分布提供不确定性量化。然而,一致性预测仍然可以与贝叶斯框架结合,以提供一种频率主义的不确定性量化方法。这种结合可以提供对预测相关不确定性的补充视角。
-
模型验证技术:一致性预测可以与交叉验证或自助法等模型验证技术结合使用,以评估模型的性能。虽然这些验证技术评估模型的准确性和泛化能力,但一致性预测提供了对模型不确定性量化的补充视角。
在第四章中,我们将探讨在概率预测模型背景下有效性和效率的概念,基于前几章所奠定的基础。
摘要
在本章中,我们深入探讨了一致性预测的基本原理和数学基础,这是一个强大且通用的概率预测框架。我们学习了在分类和回归中使用的不同非一致性度量,为将一致性预测应用于您的行业应用奠定了坚实的基础。
在下一章中,我们将探讨在概率预测模型背景下有效性和效率的概念,基于前几章所奠定的基础。
第四章:符合性预测的有效性和效率
在本章中,我们将更深入地探讨概率预测模型中的有效性和效率概念,在前面章节的基础上进行构建。
有效性和效率是确保预测模型在广泛行业应用中的实用性和鲁棒性的关键方面。理解这些概念及其影响将使你能够开发出无偏且高性能的模型,这些模型可以可靠地支持决策和风险评估过程。
在本章中,我们将探讨有效和高效模型的定义、指标和示例,并讨论由符合性预测提供的自动有效性保证,这是一种前沿的不确定性量化方法。到本章结束时,你将具备评估和改进你预测模型有效性和效率所需的知识,为你在各自领域内更可靠和有效的应用铺平道路。
本章将涵盖以下主题:
-
概率预测器的有效性
-
概率预测器的效率
概率预测器的有效性
我们首先总结一下为什么无偏点预测模型在各个领域和应用中都很重要:
-
准确性和可靠性:无偏模型确保其生成的预测在平均上是准确和可靠的,这意味着模型既不会系统地高估也不会低估真实值。这种准确性对于做出明智的决策、最小化风险和提升系统的整体性能至关重要。
-
信任和可信度:无偏预测模型有助于在利益相关者之间建立信任和可信度,因为它们为决策提供了可靠的基础。用户可以更有信心地依赖无偏模型生成的输出,知道它不会偏斜或偏向任何特定结果。
-
公平性和公正性:在某些应用中,例如金融、医疗保健和人力资源,无偏模型对于确保不同群体或个人之间的公平性和公正性至关重要。有偏模型可能会无意中加剧现有的不平等或创造新的不平等,导致不公平的待遇或资源分配。
-
泛化性:无偏模型更有可能在新数据或未见数据上良好泛化,因为它们准确地代表了数据中的潜在关系。相比之下,有偏模型在应用于新数据或不同条件下可能会表现不佳,导致意外的错误或次优结果。
-
合规性:在某些行业中,无偏模型是合规性的要求。例如,在金融、医疗保健和保险业,模型必须无偏见以满足监管标准,并确保客户得到公平对待,风险得到有效管理。
在一致预测的背景下,有效性指的是预测模型提供准确、可靠和无偏估计其预测相关不确定性的能力。更具体地说,一个有效的一致预测器会生成包含目标变量真实值的预测区间,并具有预定义的覆盖概率,确保模型的不确定性量化是可靠的且经过良好校准。
从不同角度可以理解一致预测中有效性的重要性:
-
对预测的信心:有效的预测器允许用户对其生成的预测区间有信心,因为他们知道这些区间真正反映了预测的不确定性。例如,如果一个一致预测器为某个数据点生成一个 95%的预测区间,用户可以相信有 95%的概率真实值位于该区间内。这种信心对于各种应用中的决策和风险管理至关重要。
-
对模型误设的鲁棒性:一致预测的一个关键优势是即使在底层预测模型误设或不完美的情况下,它也能提供有效的确定性估计。这种对模型误设的鲁棒性在现实世界场景中特别有价值,因为在这些场景中,真实的数据生成过程往往是未知的或复杂的,而可用的模型可能只能提供底层关系的近似。
-
非参数性质:一致预测是一种非参数方法,这意味着它不依赖于关于数据分布或预测误差的任何特定假设。这种非参数特性进一步促进了一致预测器的有效性,因为它们可以适应不同的数据结构,并在不需要了解底层分布的显式知识的情况下提供准确的不确定性估计。
-
跨领域的适用性:一致预测的有效性是一个普遍的特性,适用于各种领域和应用。这种普遍性允许从业者利用一致预测在多个领域,如金融、医疗保健、能源和交通等领域,知道一致预测器提供的不确定性估计将有效且可靠,无论具体情境如何。
-
自动有效性保证:与传统方法相比,一致预测的一个关键优势是它能够提供自动有效性保证,这意味着它产生的不确定性估计在轻微的假设下(如数据的可交换性)是有效的。这种自动有效性确保一致预测器即使在添加新数据点或底层关系随时间演变时也能保持其可靠性。
在符合性预测中,有效性从数学上定义为预测区间或由符合性预测器生成的区域的覆盖概率。如果对于任何期望的置信水平 (1−α),真实目标值在其相应预测区间内包含的比例平均而言至少为 (1−α),则符合性预测器是有效的,在多个实例中。
从数学上讲,让我们将目标变量表示为 Y,预测区间(在回归中)或集合(在分类中)表示为 I(x, α),其中 x 代表测试数据点的特征,α 是显著性水平 (α ∈ [0, 1])。如果以下条件成立,则符合性预测器是有效的:
P(Y ∈ I(x, α)) ≥ 1 – α
此条件表明,对于任何给定的输入数据点 x,真实目标值 Y 在预测区间 I(x, α) 内的概率至少为 (1−α)。
符合性预测中的有效性与概率预测中的校准概念密切相关。校准预测器生成的预测区间具有正确的覆盖概率,确保它提供的不确定性估计与数据中的真实潜在不确定性良好对齐。
重要的一点是,在可交换性的假设下,符合性预测的有效性是有保证的,这要求观察到的数据点可以与未来的、未见过的数据点交换。对于 独立同分布(IID)数据,这个假设是成立的。此外,已经开发出成功的符合性预测修改方法来处理不可交换的数据,包括许多针对时间序列的成功模型。
分类器校准
分类器校准确保预测事件的概率与该事件发生的真实概率或频率相匹配。例如,在天气预报中,校准确保预测的降雨概率与一系列预测中实际降雨的发生相一致。
分类器校准的概念自 20 世纪 50 年代以来就被应用于天气预报,由 Glen Brier 开创。在降雨预测的情况下,预报员可能会宣布有 80%的降雨概率。如果平均而言,在这样的话语之后,降雨发生 60%的时间,我们认为这样的预测校准良好。
让我们考虑一位天气预报员,他声称某一天有 x% 的降雨概率。为了评估预报员预测的校准,我们会收集一系列类似的预测及其相应的结果(是否下雨)。例如,假设我们收集了 100 个实例,预报员预测了 60%的降雨概率。如果预报员的预测校准良好,那么大约会有 60 天下雨,从而使得观察到的降雨频率与预测的概率相匹配。
但这在实践中意味着什么呢?让我们通过一个例子来更好地理解这个概念。
假设,随着时间的推移,一位天气预报员做出了 10 次关于有 x% 降雨概率的预测。在下表中,我们展示了这些预测和实际结果:
| 日期 | 预测降雨 概率 | 实际 结果(降雨) |
|---|---|---|
| 1 | 80% | 是 |
| 2 | 60% | 否 |
| 3 | 90% | 是 |
| 4 | 30% | 否 |
| 5 | 70% | 是 |
| 6 | 50% | 否 |
| 7 | 80% | 是 |
| 8 | 20% | 否 |
| 9 | 40% | 是 |
| 10 | 60% | 是 |
表 4.1 – 预测降雨概率与实际结果对比
为了确定这个预测是否校准良好,我们需要比较每个概率水平下的预测降雨概率与实际结果。我们可以按概率水平分组预测,并计算每个组的降雨观察频率。
| 降雨 概率 | 20% | 30% | 40% | 50% | 60% | 70% | 80% | 90% |
|---|---|---|---|---|---|---|---|---|
| 预测 | 1 天 | 1 天 | 1 天 | 1 天 | 2 天 | 1 天 | 2 天 | 1 天 |
| 降雨 | 0 天 | 0 天 | 1 天 | 0 天 | 1 天 | 1 天 | 2 天 | 1 天 |
| 观察 频率 | 0% | 0% | 100% | 0% | 50% | 100% | 100% | 100% |
表 4.2 – 预测降雨概率与观察频率对比
根据观察频率,我们可以看到预测并未校准良好。观察频率与大多数概率水平的预测概率不一致。例如,在两个有 60% 降雨概率的日子里,只下了雨一次(预测频率的 50%),而在有 50% 降雨概率的日子里,一点雨都没下(预测频率的 0%)。
我们如何将这些结果汇总成某些指标?我们可以使用Brier 分数,这是我们之前章节中遇到的。Brier 分数是二分类问题中常用的校准指标。
回想一下,Brier 分数是预测概率与真实二元结果(0 或 1)之间平均平方差的计算:
Brier 分数 = (1 / N) ∑ (prediction_i - outcome_i)²
其中 N 是预测次数,prediction_i 是第 i 次实例的预测概率,outcome_i 是第 i 次实例的真实二元结果(降雨为 1,无降雨为 0)。
现在我们可以计算 Brier 分数:
Brier 分数 = (1 / 10) * (0.04 + 0.36 + 0.01 + 0.09 + 0.09 + 0.25 + 0.04 + 0.04 + 0.36 + 0.16) = 0.144
较低的 Brier 分数表示更好的模型性能和,因此,更好的校准。然而,与其他模型进行比较或参考,更容易确定 Brier 分数为 0.144 是否良好。此外,重要的是要记住,这种评估仅基于只有 10 天的有限样本量,这可能无法准确代表预报在更长时期内的校准。
我们还可以创建一个校准图,也称为可靠性图,以评估概率预测模型的校准。该图在 x 轴上绘制预测概率(分组到不同的区间),在 y 轴上绘制事件的观察频率。一个校准良好的模型将沿对角线(45 度角)有多个点,这表明预测概率与观察到的频率相匹配。
如我们从 表 4.2 中可以看到,预测并没有很好地校准。观察到的频率与大多数概率水平上的预测概率不匹配。
存在两种类型的校准错误:信心不足和信心过强。当一个分类器表现出信心不足时,它会低估其区分类别的能力,在实际表现上比其预测更好。相反,一个信心过强的分类器会高估其分离类别的能力,其表现比预测的概率更差。
可以用来评估校准的另一个指标是对数损失,也称为对数损失或交叉熵,它是一种用于评估产生每个类别概率估计的分类模型性能的指标。它衡量真实和预测概率分布之间的差异,对错误和不准确的预测进行惩罚。
对数损失的概念基于这样一个想法,即分类器不仅应该预测正确的类别,而且对其预测应该有信心。对数损失通过对预测概率与实际结果进行比较来量化预测概率的不确定性。
对于二元分类,对数损失定义为以下:
对数损失 = − (y * log(p) + (1 − y) * log(1 − p))
在这种情况下,y 代表真实类别标签,可以是 0 或 1。符号 p 表示对正类(类别 1)的预测概率。术语 log 表示自然对数。对数损失是对每个实例进行计算,然后对所有实例进行平均,以获得最终的对数损失值。
在校准的上下文中,对数损失可以用来评估预测概率与真实结果匹配得有多好。一个校准良好的模型将具有较低的对数损失,因为预测概率将更接近实际的类别标签。相反,一个校准不良的模型将具有较高的对数损失,这表明预测概率与真实结果之间存在差异。
需要注意的是,仅对数损失本身可能不足以评估校准,因为它还取决于分类精度。然而,当与其他指标结合使用时,如校准图,对数损失可以提供关于分类模型校准的有价值见解。在实践中,对数损失通常与 Brier 分数一起使用来评估模型的校准。当这两个指标在两个模型的相对校准上达成一致时,这比仅依赖单个校准指标(如对数损失或 Brier 损失)提供了更强的证据。通过考虑这两个指标,可以更全面地评估模型的校准。
回想一下之前提到的降雨预测示例。
要计算此例的对数损失,我们将使用这个公式:
对数损失 = − (y * log(p) + (1 − y) * log(1 − p))
在这里,y 是真实的类别标签(0 或 1),而 p 是预测的正类概率(降雨)。
让我们计算每一天的对数损失:
-
第 1 天:(1 * log(0.8) + (1 - 1) * log(1 - 0.8)) = 0.223
-
第 2 天:(0 * log(0.8) + (1 - 0) * log(1 - 0.8)) = 1.609
-
第 3 天:(1 * log(0.6) + (1 - 1) * log(1 - 0.6)) = 0.511
-
第 4 天:(1 * log(0.7) + (1 - 1) * log(1 - 0.7)) = 0.357
-
第 5 天:(1 * log(0.9) + (1 - 1) * log(1 - 0.9)) = 0.105
-
第 6 天:(0 * log(0.7) + (1 - 0) * log(1 - 0.7)) = 1.204
-
第 7 天:(1 * log(0.6) + (1 - 1) * log(1 - 0.6)) = 0.511
-
第 8 天:(1 * log(0.5) + (1 - 1) * log(1 - 0.5)) = 0.693
-
第 9 天:(0 * log(0.6) + (1 - 0) * log(1 - 0.6)) = 0.916
-
第 10 天:(0 * log(0.4) + (1 - 0) * log(1 - 0.4)) = 0.511
现在,我们可以计算 10 天内的平均对数损失:
平均对数损失 = (0.223 + 1.609 + 0.511 + 0.357 + 0.105 + 1.204 + 0.511 + 0.693 + 0.916 + 0.511) / 10 ≈ 0.664
此降雨预测示例的平均对数损失约为 0.664。
一个自然而然的问题:在统计学习、机器学习和深度学习中,哪些是校准良好的,哪些不是?
作为一般准则,重要的是要记住,大多数机器学习模型在某种程度上都存在校准不当,严重程度不同。然而,逻辑回归有其局限性,可能只适用于某些应用,因为其建模能力相对简单。
一个关于校准的经典研究是论文 Predicting Good Probabilities With Supervised Learning (2005): www.cs.cornell.edu/~alexn/papers/calibration.icml05.crc.rev3.pdf,该论文研究了各种监督分类算法的校准特性。研究发现,最大边缘,如支持向量机和提升树,产生了校准不当的类别得分,并且倾向于将预测值推向 0 和 1,而其他方法,如朴素贝叶斯,则将预测值推向相反方向。
虽然最初认为简单的神经网络会产生校准预测,但这种结论后来被重新评估。在一篇题为《传统神经网络是否校准良好?》的更近期的论文中(ieeexplore.ieee.org/document/8851962),作者们表明,单个多层感知器以及多层感知器的集成,经常显示出校准不良。
概率预测器的效率
效率是一个用于评估概率预测器的性能指标。它衡量预测区间或区域有多精确或信息量有多大。换句话说,效率表明预测的概率分布有多紧密或狭窄。更小的区间或区域被认为是更高效的,因为它们传达了关于预测结果的更多确定性。
当有效性关注于确保错误率得到控制时,效率则评估预测的有用性和精确度。一个高效的预测器提供了关于可能结果的更具体信息,而一个效率较低的预测器则生成更宽的区间或区域,导致信息不够精确。
在有效性和效率之间存在固有的权衡。一致性预测器可以通过输出包含所有可能结果的非常宽的预测集来始终实现完美的有效性。然而,这缺乏效率,因为预测过于保守且不精确。
另一方面,一个模型可以输出非常狭窄、精确的预测,但可能会因为错误预测超过允许的阈值而未能满足有效性标准。这源于过度自信和不可靠的概率估计。
理想情况下,一致性预测器会找到一个最佳平衡点;预测尽可能紧密,同时仍然满足有效性保证。这确保了准确性和精确性,而不会过于保守或超过错误率阈值。
在一致性预测中,效率通常通过评估一致性预测器生成的预测区间或区域的大小来衡量。更小的区间或区域被认为是更高效的,因为它们提供了关于可能结果的更精确信息。以下是一些在一致性预测中衡量效率的常见方法:
-
预测区间长度:对于回归问题,可以通过找到每个区间的上下限之间的差异,然后对所有实例的平均这些差异来计算预测区间的平均长度。更小的平均长度表明更高的效率。
-
预测集大小:对于分类问题,可以评估预测集的大小。较小的预测集包含较少的类别标签,被认为是更高效的。一种衡量方法是计算所有实例的预测集的平均大小。较低的平均集大小表明更好的效率。
-
覆盖率概率:覆盖率概率衡量了真实结果落在预测区间或区域内的比例。虽然它主要用于评估一致性预测器的有效性,但它也可以提供关于效率的见解。具有紧密区间或区域的预测器将具有更高的覆盖率概率,这表明更好的效率。
-
P 值直方图:在一致性预测中,为每个实例和类别标签计算 p 值。检查 p 值的分布可以提供关于效率的见解。p 值的均匀分布表明预测器是有效的,但并不一定高效,而更集中的分布(例如,p 值接近 0 或 1)则意味着更高的效率。
在前面的章节中,我们已经看到一致性预测如何通过构建带有保证错误率的预测区间(用于回归)或预测集(用于分类)来保证预测集的自动有效性,该错误率由用户定义的置信水平确定。一致性预测背后的关键思想是利用过去数据和给定机器学习模型的观察行为来估计其预测的不确定性。
让我们回顾一下归纳一致性预测的阶段,它包括两个主要阶段:校准阶段和预测阶段。以下是其工作原理的概述:
-
校准阶段:在这个阶段,机器学习模型在数据集上训练,并为数据集中的每个实例计算非一致性度量。非一致性度量量化了实例相对于其余数据的不寻常性或异常性。
-
预测阶段:当需要预测新实例时,使用与校准阶段相同的非一致性度量函数计算非一致性度量。然后,将实例的非一致性得分与校准实例的非一致性得分进行比较。为每个可能的输出计算 p 值,反映具有高于或等于新实例非一致性得分的校准实例的比例。p 值可以解释为实例属于每个类别(用于分类)或落在某个范围(用于回归)的可能性度量。
-
预测区间或集合:基于计算出的 p 值和用户定义的置信水平,构建预测区间(用于回归)或预测集合(用于分类)。这些区间或集合保证以等于所选置信水平的概率包含真实结果。例如,如果置信水平设置为 0.95,则真实结果将有 95%的时间落在预测区间或集合内。
通过确保预测区间或集合以所需的概率包含真实结果,一致性预测为预测提供了自动的有效性。值得注意的是,虽然一致性预测保证了有效性,但它并不一定保证效率,这取决于预测区间或集合的精度。
在第四章中,我们将通过实际例子了解和学习不同类型的一致性预测。
摘要
在本章中,我们深入探讨了概率预测模型中的有效性和效率的概念,基于前几章奠定的基础。我们研究了有效性和效率的定义,并了解了可以用来评估和比较不同模型有效性和效率的各种指标。
在下一章中,我们将学习不同类型的一致性预测,并探讨量化不确定性的各种方法。
第五章:正规预测器的类型
本章描述了不同类型的正规预测器家族,探讨了量化不确定性的各种方法。通过实际例子,我们提供了对这些技术及其如何应用于现实世界情况的中间水平理解。
下面是公司如何使用正规预测的例子。
在一场名为 GTC 2023 的知名 AI 开发者大会上(www.nvidia.com/gtc/),NVIDIA 的首席科学家兼研究高级副总裁比尔·达利(Bill Dally)分享了对 NVIDIA 研发主要关注点之一的见解,即正规预测(www.hpcwire.com/2023/03/28/whats-stirring-in-nvidias-rd-lab-chief-scientist-bill-dally-provides-a-peek/)。
传统自动驾驶车辆机器学习模型输出单个分类(例如,道路上是否有行人)和检测到的对象的定位估计。然而,NVIDIA 希望产生一组带有概率的潜在输出;例如,一个物体可能是行人(80%概率)或骑自行车者(20%概率),位于 20 +/- 1 米的某个位置。
这使得车辆的规划者能够保证考虑到多种可能结果的安全行动。正规预测不仅提供最可能标签和位置,还提供一系列可能的选项,例如“80%置信度的行人位于 19-21 米处”。
NVIDIA 使用非一致性函数来计算概率,这些概率衡量每个潜在标签和位置相对于训练数据的奇异或不同程度。这生成一个多模态预测分布,反映了不确定性。
正规预测为 NVIDIA 的车辆提供了一种可靠的方式来量化不确定性,并考虑环境的多重解释。通过规划所有可能的结局,而不仅仅是单一的最可能结局,正规预测提高了鲁棒性和安全性。
在机器学习的领域,量化不确定性和提供可靠的预测具有重要意义。正规预测是一种创新技术,它允许我们构建预测集(在分类中)和预测区间(在回归中),为我们预测提供信心度量的指标。
本章旨在提供对不同类型正规预测器和它们量化不确定性的各自方法的更深入理解。通过实际例子,我们将展示这些技术如何应用于各种机器学习任务。
在本章中,我们将探讨以下主题:
-
经典和归纳正规预测器的基础
-
检查正规预测器的算法描述
-
数学公式和实际例子
-
正规预测器的优缺点
-
选择最适合特定问题域的最合适一致预测器的指南
让我们从经典一致预测开始。
理解经典预测器
在深入探讨一致预测的复杂性之前,让我们简要回顾一下前几章的关键概念。一致预测是一个框架,它允许我们在控制错误率的同时为我们的预测创建置信区域。
这种方法在需要不确定性度量的情况下特别有益,例如在医学诊断、自动驾驶汽车或金融风险管理中。该框架包括两种主要类型的一致预测器:经典和归纳。
经典传输归纳一致预测(TCP)是一致预测的原始形式,由一致预测的发明者开发。它构成了理解一致预测一般原则的基础。经典一致预测是为了构建符合指定置信水平的预测区域而开发的。经典一致预测的关键方面是其无分布性质,这意味着它不对数据分布做出任何假设。因此,它可以应用于任何机器学习算法,使其具有算法无关性。
与广泛使用的归纳一致预测相比,经典 TCP 不需要单独的校准集,从而更有效地利用整个数据集。
因此,对于较小的数据集,它可以生成更准确的预测。这种方法允许统计、机器学习和深度学习模型充分利用所有可用数据,可能导致更有效(更窄)的预测集和区间。
让我们讨论一下经典 TCP 如何在分类问题中使用。
将 TCP 应用于分类问题
在分类任务中,我们不仅寻求分配标签,而且希望这样做既自信又准确。这正是经典 TCP(传输归纳一致预测)的亮点所在。当我们深入研究其在分类中的应用时,我们将介绍其独特的方法和相对于传统技术的优势。准备好探索了吗?让我们深入了解分类中 TCP 的微妙之处!
在前几章中,我们讨论了一致预测框架的核心概念,即对数据集中的每个对象分配一个非一致性度量(或奇异度)。这个度量被用来对数据集中的对象进行排序。随后,在预测一个新对象时,创建一个包含与数据集中对象特定比例值相关的预测区域,这个比例由它们的奇异度得分确定。这个比例对应于预测所需的置信水平。
与更受欢迎的归纳一致性预测方法相比,后者依赖于校准集根据对象的非一致性分数对对象进行排序,经典 TCP 则结合使用整个数据集和新对象的特征来建立预测区域。
虽然这种方法在计算上可能很昂贵,但它允许你充分利用整个数据集来捕捉数据分布的变化,从而提供更准确的预测区域。
然而,经典一致性预测也有一些局限性。例如,对于大型数据集或实时应用来说,它可能不可行,因为它需要为每个新的预测重新训练底层点预测模型。
经典一致性预测是一个涉及多个关键步骤的过程。在此,我们概述这些步骤,以提供对程序的清晰理解:
-
数据集准备:将数据集划分为训练集和测试集。训练集用于训练机器学习模型,而测试集用于评估一致性预测器的性能。
-
模型训练:使用训练数据集训练底层机器学习模型。这个点预测模型将为新对象生成点预测。
-
非一致性度量计算:定义一个非一致性(奇异度)度量,该度量量化了对象与数据集中其他对象的不同程度。对于训练数据集中的每个对象,使用训练好的模型计算其非一致性分数。
-
新对象非一致性分数:当引入一个新对象(没有其标签)时,使用相同的非一致性度量以及训练好的点预测模型来计算其非一致性分数。
-
排序:根据计算出的非一致性分数,对所有对象进行排序,包括训练数据集中的对象和新对象。
-
预测区域:确定预测所需的置信水平。识别与该置信水平相对应的排序集中对象的占比。形成一个包含这些对象相关值的预测集。
让我们通过一个实际例子来阐明这些概念,这个例子使用了我们在前几章讨论的拉格朗日损失非一致性度量。提醒一下,拉格朗日损失(也称为逆概率或 LAC 损失)是一种非一致性度量,计算为1-P(y|x),其中P(y|x)代表底层模型为实际类别产生的类别分数。
拉格朗日损失非一致性度量直观地衡量了理想分类器为正确类别(理想情况下应为 1)生成的概率分数与分类器模型产生的分类分数之间的差异。它量化了模型的预测与完美分类之间的距离,非一致性分数越大,理想预测与实际预测之间的差异就越显著。
为了计算逆概率(铰链)非一致性得分,考虑一个例子,其中你的分类器生成两个得分:class_0 = 0.6 和 class_1 = 0.4,实际标签 y=1。为了确定非一致性得分,从真实类别的概率(在这种情况下,1 减去 0.4)中减去。
得到的逆概率(铰链)非一致性得分为 0.6。
当底层机器学习分类模型表现更好时,铰链(逆概率)得分更低。这种性能受多种因素的影响,例如数据集的大小和复杂性、所采用的机器学习模型类型以及模型构建的质量。换句话说,使用适合给定数据集的适当机器学习技术构建的良好模型通常会生成较低的铰链得分,表明更好的预测。
训练过程是 TCP 与归纳一致性预测(ICP)之间的关键区别。在 ICP 中,底层分类器仅在训练集上训练一次,一致性预测模型的校准发生在校准数据集上。
相比之下,在 TCP 中,通过将每个测试点添加到训练集中两次来训练分类器,每次分配潜在的标签 0 和 1。对于测试集中的每个点,重复此过程。因此,底层分类器模型被训练了2 x m次,其中 m 是测试集中的点数。对于大型数据集,这可能会变得计算成本高昂,对于此类数据集,使用 ICP 可能是一个更合适的选择。
然而,对于中等和较小的数据集,计算成本通常是可管理的。为了获得潜在的更好点预测和更窄的概率区间,您可以考虑 TCP,通过训练分类器模型2 x m次来实现更好的预测区间。许多算法,如逻辑回归,都快速且适合这种方法。
训练 TCP 的整体方法保持基本不变。TCP 算法过程如下:
-
在整个训练集上训练底层分类器。
-
将每个测试点及其所有可能的类别标签逐个添加到训练集中。
-
对于每个添加的带有假设标签的测试点,重新训练分类器,并根据假设标签计算测试点的非一致性得分。
-
计算每个假设标签的 p 值,比较测试点的非一致性得分与训练集中点的得分。
-
对于每个测试点和每个假设的标签,如果其 p 值大于或等于所选显著性水平,则将假设的标签包含在预测集中。
我们将使用德国信贷数据集(www.openml.org/d/31)来举例说明 TCP 方法,这是一个经典的描述良好和不良信用风险的数据库,基于贷款期限、信用历史、就业、财产、年龄、住房等特征。
在本书的 GitHub 仓库中,你可以找到一个描述 TCP 如何工作的笔记本(github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_05_TCP.ipynb),你可以通过它来理解 TCP 在实践中的关键概念。

图 5.1 – 德国信贷数据集
为了清晰起见,让我们检查第一个测试点,其原始索引为30,现在已被添加到训练集的末尾。我们将使用我们创建的这个扩展训练集来训练经典的归纳一致性预测器。这个新数据集是通过笔记本中的代码创建的,它包含了原始训练集中的所有点和单个测试点。
现在我们有一个特征集来训练两个分类模型:一个假设测试点的标签为 0,另一个假设标签为 1。我们使用任何分类器(在这种情况下,来自 scikit-learn 的逻辑回归)训练两个模型,并使用描述的流程计算非一致性分数。

图 5.2 – 非一致性分数分布
从非一致性分数的分布中,我们可以观察到对于标签 0(由绿色垂直线表示)的非一致性分数相对典型(更符合训练集)。相比之下,潜在标签 1(由红色垂直线表示)的非一致性分数位于低密度概率区域。
这表明测试对象更有可能被分配标签 0,而标签 1 则不太可能。然而,一致性预测是一个健壮的数学机器学习框架,因此我们必须对这个决策进行量化和统计检验。这就是 p 值发挥作用的地方。
让我们花点时间回顾一下我们之前在第三章中探讨的传统计算 p 值的过程,使用 Vovk 的书籍《随机世界中的算法学习》中的公式。
p 值可以按照以下方式计算:
p = (|z i : α i ≥ : α T| + 1) / (n + 1)
在这里,新测试点的非一致性分数与训练集中的点的非一致性分数进行比较。本质上,非一致性分数量化了新测试对象与训练数据集中先前遇到的物体相比的“奇特”或新颖程度。
根据公式,我们需要做的是检查(对于每个测试点和标签 0 和 1 的每个潜在值)在添加测试点后的训练数据集中有多少对象的非一致性值大于或等于测试点的非一致性得分。
然后,我们将它除以训练点的数量(n+1)(+1 是为了我们添加到训练集中的测试点)。结果,我们为每个测试点获得两个 p 值:一个用于类别 0,一个用于类别 1。
一致性预测的核心概念是利用每个测试点的非一致性值来评估其与训练集的匹配程度。通过基于这种评估计算 p 值,我们可以进行稳健的统计测试,以确定每个潜在标签值是否应该包含在预测集中。
假设我们有一个假设的标签(要么是 0 要么是 1)。如果训练集中有足够的实例,其非一致性值等于或大于测试点的非一致性值,那么我们推断这个假设的标签与观察到的数据匹配得很好。因此,我们将这个标签纳入我们的预测集。相反,如果假设的标签与观察到的数据不匹配,我们则不将其纳入预测集。
从本质上讲,这个程序反映了统计假设检验的原则。对于每个假设的标签值,我们建立了一个零假设,即如果其关联的 p 值超过预先定义的显著性水平,则标签可以是预测集的一部分。如果 p 值低于这个阈值,我们则拒绝零假设。这意味着提出的标签不足以匹配训练数据中发现的模式,导致我们将其排除在我们的预测集之外。
例如,假设我们为第一个测试对象计算了两个 p 值:
-
假设对于标签 0,p 值是 0.55。由于 p 值大于显著性水平(0.05),我们将假设的标签(在这种情况下是 0)纳入这个测试点的预测集中。
-
现在假设对于标签 1,p 值是 0.002。由于 p 值小于显著性水平(0.05),我们不能将假设的标签(在这种情况下是 1)纳入这个测试点的预测集中。
-
因此,这个点的最终预测集是 0。
在 TCP 的背景下,二分类和多分类之间的关键区别在于每个测试点考虑的潜在标签数量。在二分类场景中,只有两个标签存在(0 和 1)。相比之下,多分类涉及更多的类别(例如,C1、C2、C3、...)。
与二进制分类的主要区别在于,我们将不得不为每个可能的类标签重复此过程,随着需要为每个测试点和每个潜在标签重新训练分类器,计算复杂性会增加。然而,获取预测集的整体方法保持不变。
在深入研究分类中 TCP 的细微差别之后,让我们转换我们的焦点。接下来,我们将探讨在回归环境中应用 TCP 的复杂性。这种方法提供了独特的挑战和好处,让我们深入探讨!
将 TCP 应用于回归问题
TCP 也可以应用于回归问题。回归中 TCP 的过程与用于分类的过程类似,但在计算非一致性得分和预测区间方面有一些差异。以下是回归问题中 TCP 的算法描述:
-
在整个训练集上训练基础回归模型。
-
对于每个测试点,创建一个潜在目标值的网格。该网格的粒度取决于所需的精度和问题的性质。
-
对于网格上的每个测试点和每个潜在的目标值,将测试点及其相关目标值附加到训练集中。
-
对于每个附加的测试点及其假设的目标值,重新训练回归模型并计算给定假设目标值的非一致性得分。非一致性得分可以计算为预测值与附加点的真实值之间的绝对差异,或者您可以使用其他误差度量,如均方误差(MSE)来计算它。
-
通过比较测试点在每个潜在目标值网格上的非一致性得分与训练集中点的得分,为每个假设的目标值计算 p 值。
-
对于每个测试点,如果其 p 值大于或等于所选的显著性水平,则将其假设的目标值包含在预测区间中。
回归问题的预测集将是一个区间,而不是分类中的离散标签集合。与分类的主要区别在于,您将不得不对网格中的每个潜在目标值重复此过程,这可能会增加计算复杂性。然而,获取预测区间的整体方法保持不变。
我们通过总结 TCP 的优点和局限性来结束关于 TCP 的部分。
优点
TCP 相对于其他不确定性量化方法具有几个优点:
-
无分布假设:归纳一致性预测器不对数据的分布做出任何假设,这使得它们适用于各种类型的数据
-
有效性:它们提供具有保证覆盖概率的预测区间,从而允许对不确定性进行可靠的度量
-
适应性:符合预测器可以应用于各种机器学习模型,使它们具有多功能性和易于适应不同环境
-
更好的预测区间:与归纳一致预测器相比,传递一致预测器通常产生更精确的预测区间,因为它们充分利用数据集来训练底层点预测模型
但也有一些局限性:
-
计算成本:TCP 需要对每个测试点和每个潜在类别标签(在分类中)或网格回归中的每个潜在目标值重新训练模型,这使得它计算成本高昂,尤其是在大数据集中
-
不适用于在线学习:由于计算成本,传递一致预测器不适合在线学习场景,在这些场景中,模型必须持续更新
-
复杂性:实现传递一致预测器可能比传统机器学习模型更复杂,这可能会成为广泛采用的一个障碍
传递一致预测器在提供可靠、无分布预测区间方面具有几个优点。然而,它们的计算成本和可扩展性限制应予以考虑,尤其是在大规模或在线学习应用中。
在我们探索 TCP 的基础上,现在是时候将我们的注意力转向另一个有趣的变体:归纳一致预测器。与它的经典对应物在关键方面有所不同,这种方法带来了一套全新的策略和好处。准备好深入了解归纳一致预测器的机制和优点了吗?让我们开始这段启发性的旅程!
理解归纳一致预测器
ICP 是一种符合预测的变体,它在经典符合预测的相同假设下提供有效的预测区域,并且具有计算效率提高的额外好处,这在处理大数据集时特别有用。
ICPs 在机器学习领域提供了一个高效且有效的解决方案。它们提供了一种符合预测的形式,适用于更大的数据集,非常适合涉及大量数据量的现实世界应用。在模型构建过程中,ICPs 将数据集分为训练集和校准集。训练集用于开发模型,而校准集有助于计算非一致性分数。这个两步过程优化了计算并提供了精确的预测区域。

图 5.3 – 归纳一致预测
预测模型,如神经网络或决策树,首先在合适的训练集上训练。然后,使用训练好的模型计算校准集中每个示例的非一致性。非一致性度量是一个实值函数,描述了一个示例与数据集其他部分相矛盾的程度。然后,使用校准集的非一致性分数来确定新示例预测区域的大小。
归纳方法在计算上提供了显著的优势,尤其是在处理大数据集时。通过仅创建一次预测模型,ICP 减少了算法的时间复杂度,与需要为每个新的预测重新训练模型的 TCP 不同。然而,需要注意的是,ICP 假设数据是可交换的,这意味着数据的顺序不携带任何信息。
在应用方面,归纳一致性预测器可以用于分类(二分类和多分类)和回归任务。该方法提供了一种灵活且高效的方式来提供与预测相关的不确定性的度量,这在许多实际应用中是一个有价值的特性。
ICP 包含几个步骤,其中大部分集中在非一致性分数的计算上。以下是算法的粗略概述以及相关的数学公式:
-
数据分区:将初始数据集 D 划分为合适的训练集 D_train 和校准集 D_cal。
-
模型训练:在 D_train 上训练预测模型 M。该模型用于对新实例进行预测。模型类型(例如,SVM、决策树、线性回归等)取决于具体问题。
-
非一致性度量计算:使用训练好的模型 M 对校准集 D_cal 中的实例进行预测。对于 D_cal 中的每个实例 (x_i, y_i),计算一个非一致性分数 α_i,表示实例的奇特性或异常性。非一致性度量 α 通常与问题相关。例如,分类任务可能是铰链损失 1 - p_yi,其中 p_yi 是根据模型 M 预测的正确类别 y_i 的概率。对于回归,它可能是绝对误差 |y_i - y_hat_i|,其中 y_hat_i 是模型对 x_i 的预测。
-
|{i: α_i ≥ α_x}|表示校准集中非一致性分数大于或等于 α_x 的实例数量。这个 p 值表示我们期望通过偶然观察到至少与 α_x 一样大的非一致性分数的频率。 -
预测输出:使用计算出的 p 值,为新测试点 x 创建一个预测集Γ(x)。对于分类,预测集包含所有 p 值至少为所选显著性水平ε的类别 y:Γ(x) = {y: p_y ≥ ε}。对于回归,通常输出一个区间预测(y_lower, y_upper),其中 y_lower 和 y_upper 分别是 p 值至少与所选显著性水平一样大的最低和最高值。
请注意,这是一个对算法和数学公式的概述性描述。具体细节可能根据使用的具体形式 ICP 和要解决的问题的类型(分类、回归等)而有所不同。
随着我们解开了传统和归纳方法复杂性和功能,现在至关重要的是要辨别如何为特定情况选择最佳方法。让我们在接下来的部分,选择合适的保形预测器中,探讨将指导你选择最适合你特定需求的保形预测器的因素和指南。
选择合适的保形预测器
无论是传统的还是归纳的保形预测器,都为构建可靠的机器学习模型提供了有价值的途径。然而,它们各自都有独特的优势和劣势。
传统的保形预测器高度适应性强,不对数据分布做任何假设。然而,它们通常计算成本较高,需要为每个新的预测重新训练模型。
相反,归纳保形预测器在计算上更高效,因为它们只需要对模型进行一次训练。
选择合适的保形预测器在很大程度上取决于手头问题的具体要求。以下是一些可能需要考虑的因素:
-
计算资源:如果计算资源或时间是一个问题,由于它们的计算成本较低,归纳保形预测器可能更适合。
-
数据量:对于较小的数据集,传统的保形预测器可能更合适,而对于较大的数据集,由于计算效率高,归纳保形预测器通常是首选。
-
数据质量:如果数据质量高,归纳保形预测器可能是一个不错的选择。
-
实时需求:如果模型需要做出实时预测,由于它们的单次训练过程,归纳保形预测器可能更适合。
这里有一些现实生活中的场景,说明了何时可能会选择传统的或归纳的保形预测器。
传统的保形预测器
在数据有限的情况下进行医疗诊断:
-
场景:一家医院使用机器学习来诊断罕见疾病,但只有有限的过往患者数据集。
-
推理:鉴于数据集较小且准确预测至关重要,经典 TCP(传输控制协议)更受欢迎。其适应性和无分布特性可能导致更准确的预测,尽管这可能需要每个预测更多的计算能力。
归纳符合预测
电子商务推荐系统:
-
场景:一个大型电子商务平台希望根据用户的浏览习惯向数百万用户提供实时产品推荐。
-
推理:由于规模巨大,系统无法为每个推荐重新训练模型。ICP(集成符合预测)的一次性训练过程,结合其在大型数据集上的计算效率,使其成为合适的选择。
为了有效地选择合适的符合预测类型,深入了解经典和归纳符合预测、它们的工作原理以及它们的优缺点至关重要。此外,了解问题域的性质和需求,如数据的特定特征、可用的计算资源、对实时预测的需求以及模型可解释性的重要性,可以显著帮助做出明智的选择。始终记住,最好的符合预测是能满足您特定问题域需求的那一个。
摘要
本章探讨了符合预测的迷人世界,包括其类型和独特特征。我们触及的关键概念和技能包括覆盖符合预测的基础原理及其在机器学习中的应用。它还突出了经典转导符合预测和归纳符合预测之间的差异。我们还介绍了如何根据问题的具体要求有效地选择合适的符合预测类型。最后,还包括了符合预测在二分类、多分类和回归中的实际应用。
本章还提供了经典和归纳符合预测的详细算法描述和数学公式,增加了我们的理论理解。为了深化我们的学习,我们还采取了动手方法,查看 Python 中的实际示例。
对于那些想进一步探索符合预测的人来说,存在几个可以考虑的途径。可以追求对符合预测数学基础的更深入研究,以及将符合预测实现到更复杂的机器学习模型中。
探索符合预测的高级版本,如 Mondrian 符合预测,或了解如何将符合预测与其他机器学习技术(如神经网络和集成学习)集成,也是进一步研究的令人兴奋的领域。
在结束之前,我们希望这一章已经为正则预测的原则和应用提供了坚实的基础。进入下一章,我们将更深入地探讨正则预测在分类问题中的应用。一如既往,继续探索,继续学习,并享受这段旅程!
第三部分:正则预测的应用
在这部分,我们将提供更多关于正则预测在分类问题中的详细信息。它将介绍校准概念,并说明正则预测与其他校准方法相比的优势,解释它如何量化回归中的不确定性以产生良好的校准预测区间。这部分还将解释正则预测如何为点预测模型产生预测区间,通过使用开源库展示应用,并详细说明正则预测在自然语言处理中的最新创新。最后,这部分将解释如何将正则预测应用于产生自然语言处理中最先进的确定性量化,并通过使用开源库展示应用。
本节包含以下章节:
-
第六章,正则预测在分类中的应用
-
第七章,正则预测在回归中的应用
-
第八章,正则预测在时间序列和预测中的应用
-
第九章,正则预测在计算机视觉中的应用
-
第十章,正则预测在自然语言处理中的应用
第六章:符合预测的分类
本章将更深入地探讨分类问题的符合预测。我们将探讨分类器校准的概念,并在介绍符合预测中的专用技术 Venn-ABERS 预测器之前,展示符合预测与其他校准方法的比较。此外,我们还将概述可用于实现分类器校准的符合预测的开源工具。
在本章中,我们将涵盖以下主题:
-
分类器校准
-
评估校准性能
-
分类器校准的各种方法
-
符合预测的分类器校准
-
用于分类问题中的符合预测的开源工具
分类器校准
大多数统计、机器学习和深度学习模型输出预测的类别标签,模型通常根据其准确性进行评估。
准确性是评估机器学习分类模型性能的常用指标。它量化了正确识别的实例与数据集中总数之比。换句话说,准确性告诉我们模型预测与数据真实标签一致的程度。
准确性得分衡量模型预测与真实观察标签匹配的频率。它是所有预测中正确预测的比例。0 到 1 之间的准确性得分量化了模型预测与真实数据相比的准确性。接近 1 的较高准确性得分表示模型整体表现非常准确,大多数预测都是正确的。接近 0 的较低准确性表示性能较差,与真实标签相比,模型的大多数预测都是错误的。
准确性越接近 1,模型的表现越好。越接近 0,模型在预测数据中的真实标签方面的表现越差。
准确性是一个简单直观的指标,易于理解和解释。然而,它可能并不总是最合适的指标,尤其是在处理不平衡数据集时。在不平衡数据集中,不同类别的实例数量差异很大,仅凭准确性可能具有误导性。在不平衡数据集中,一个始终预测多数类的分类器可以根据类别分布获得高准确性,即使它没有识别出少数类。
在这些情况下,查看其他评估指标,如精确度、召回率、F1 分数或 ROC-AUC,对于全面了解模型的有效性至关重要。
根据具体问题和要求,其他指标和考虑因素,如假阳性和假阴性的成本,可能更为相关。因此,使用多个评估指标评估模型性能并考虑分类模型将应用到的上下文是至关重要的。
单纯的准确性可能不足,尤其是在关键应用中,原因有以下几点:
-
不平衡数据集:在数据集不平衡的情况下,准确性可能会误导。如果大多数类别主导数据集,那么仅预测大多数类别的模型可以达到高准确性,但无法有效地捕捉少数类别。在正确识别罕见事件或检测异常至关重要的关键应用中,这可能会成为问题。
-
错误成本:在许多实际应用中,假阳性和假阴性的成本可能差异很大。准确性将所有错误视为同等,并且不考虑误分类的后果。例如,在医疗诊断中,一个假阴性(未能检测到疾病)可能比一个假阳性(错误地检测到疾病)要严重得多。在这种情况下,仅准确性并不能提供关于模型性能的充分信息,即对决策和结果的实际影响。
-
概率估计:准确性不考虑模型预测的置信度或不确定性。评估模型提供良好校准的概率估计的能力是至关重要的。校准是指预测概率与事件的真实概率之间的对齐。一个校准不良的模型可能会提供过度自信或不可靠的概率估计,这可能导致错误的决策或对风险的误解。
-
决策阈值:准确性不考虑用于分类的决策阈值。不同的决策阈值会导致精确度和召回率之间的不同权衡。根据应用,某些误分类错误可能比其他错误更可容忍。仅评估准确性并不能提供关于模型在不同决策阈值下性能的见解。
让我们来了解分类器校准的概念。
理解分类器校准的概念
在前面的章节中,我们定义并讨论了分类器校准的概念。
分类器校准包括调整分类模型的预测概率,以便它们更好地反映每个类的真实可能性。目标是使预测更加校准。
一个校准良好的分类器是指预测概率与经验概率相匹配的分类器。例如,如果模型在 100 个示例中预测“类别 A”的概率为 60%,那么在 100 个预测中,类别 A 应该大约出现 60 次。
更正式地说,一个校准良好的分类器满足以下公式:
P(实际类别为 c | 预测 c 的概率为 p) ≈ p
这意味着当模型以概率 p 预测类别 c 时,类别 c 的观察频率应该接近 p。
校准调整确保预测概率与实际数据中的相对频率相一致。预测被校准到经验证据上,因此预测概率为0.7对应于基于数据的 70%的可能性。这种校准对于概率估计的有意义和可靠性至关重要。
例如,考虑一个二元分类器,它预测一封电子邮件是否为垃圾邮件。对于每封电子邮件,它可能会预测一个概率,比如说0.8,这意味着它认为这封电子邮件有 80%的可能性是垃圾邮件。如果分类器校准良好,那么在所有被分配0.8垃圾邮件概率的电子邮件中,大约 80%应该是垃圾邮件。
没有校准,分类器的输出概率可能不会对应于预测类别的真实可能性,这可能会对决策造成问题。校准方法调整这些概率以更好地反映现实。目标是使分类器的输出概率尽可能接近真实概率。
模型校准至关重要,原因如下:
-
可靠的概率估计:校准分类器为预测类别提供准确和可靠的概率估计。概率估计反映了模型对其预测的信心,可以解释为特定类别正确的可能性。在许多实际应用中,如医疗诊断、风险评估或欺诈检测,拥有良好的概率估计对于做出明智的决策和评估与预测相关的不确定性水平至关重要。
-
可靠的风险评估:在许多领域,准确的风险评估至关重要。校准分类器提供校准良好的概率估计,反映了事件的真正可能性。这允许更准确和可靠的风险评估,使决策者能够更有效地分配资源、优先处理行动或估计某些事件的影响。例如,在信用评分中,校准分类器可以提供准确的违约概率估计,有助于更好的风险管理。
-
决策阈值确定:在分类任务中,决策通常是通过在预测概率上设置一个阈值来做出的。这个阈值决定了精确度和召回率之间的权衡,或者说,是假阳性与假阴性之间的权衡。校准后的分类器通过将概率估计与期望的权衡相一致,考虑到不同类型错误的具体成本或后果,有助于选择合适的决策阈值。这确保了决策与应用的目标和要求相一致。
-
可解释性和信任:校准增强了模型预测的可解释性。校准后的概率估计可以用来理解模型对其预测的信心水平。这种透明度有助于与用户、利益相关者和监管机构建立信任,特别是在决策至关重要且必须得到证明的领域。通过提供良好的校准概率估计,模型的预测可以更好地被理解和验证,从而增强对其可靠性的信心。
-
提高公平性:校准后的分类器可以促进决策过程中的公平性。通过提供良好的校准概率估计,它们可以帮助识别和减轻可能源于底层训练数据或模型假设的偏差。这允许做出更公平、更公正的预测,确保不同群体得到一致的对待,且没有不合理的偏见。
评估模型校准对于确保模型的预测与数据中的潜在不确定性相一致至关重要。这种评估有助于做出明智的决策,了解模型的局限性,并管理与误分类或错误的概率估计相关的风险。
传统上,许多分类器,如逻辑回归或支持向量机,基于其内部模型生成概率估计。然而,这些概率估计并不总是准确或校准良好的,导致对预测过度自信或缺乏信心。例如,分类器可能将接近 1.0 或 0.0 的概率分配给某些示例,而它应该分配接近 0.7 或 0.3 的概率,分别。
为了解决这个问题,已经提出了各种技术来校准分类器并提高其概率估计的可靠性。这些技术旨在将原始概率得分映射到更准确和校准后的概率。目标是确保,平均而言,预测的概率与观察到的预测事件的频率或可能性相匹配。
评估校准性能
评估分类器的校准性能对于评估其概率估计的可靠性和准确性至关重要。校准评估使我们能够确定预测概率与预测事件的真实概率或似然度之间的匹配程度。以下是评估分类器校准性能的一些常用技术:
-
校准图:校准图通过视觉方式评估分类器的预测概率与真实类频率的匹配程度。x轴显示每个类的预测概率,而y轴显示这些预测的经验观察频率。
对于一个校准良好的模型,校准曲线应与对角线紧密匹配,表示预测概率与实际概率之间存在 1:1 的关系。偏离对角线表明存在误校准,即预测与经验证据不一致。
校准图提供了一种直观的方法来识别分类器在不同概率范围内对其估计的过度自信或不足自信。曲线越接近对角线,预测概率的校准就越好。显著的偏差表明需要对模型的输出进行重新校准,以确保其可靠性:

图 6.1 – 校准图
-
校准误差:校准误差衡量预测概率与预测事件的实际概率之间的平均差异。它由估计概率与观察概率之间的平均绝对偏差确定。较低的校准误差值表示校准性能更好。
-
校准指标:可以使用多个指标来评估分类器的校准性能。常用的指标包括期望校准误差(ECE)、对数损失和 Brier 分数。ECE 通过将预测概率划分为区间并计算每个区间内平均预测概率与平均经验概率之间的差异来衡量校准误差。Brier 分数评估预测概率的整体准确性,考虑了概率估计的校准和解算(锐度)。Brier 分数是评估概率预测校准的常用评分规则。它衡量预测概率与实际结果之间的平均平方差异。
对于一组N个预测,Brier 分数计算为 BS = 1 * N ∑ t=1 N (f_t − o_t)²,其中ft,i是时间t对事件i的预测概率,ot,i是时间t事件i的实际结果(0 或 1)。
将误差平方赋予大错误更大的权重。然后对所有预测取平均平方误差。
较低的 Brier 分数表示校准更好,对于完美的概率预报员,最小值为 0。它惩罚不准确以及过度/不足自信的预测。
-
交叉验证:交叉验证是一种估计校准性能的技术。它通过将数据集划分为多个折叠,在一个折叠上训练模型,同时在剩余的折叠上评估校准来实现。这有助于评估不同数据子集的校准性能,并提供更稳健的评估。
在评估校准性能时,将结果与适当的基线进行比较是很重要的。一个校准良好的分类器应该优于随机或未校准的概率估计。
分类器校准的各种方法
在探讨一致性预测如何提供校准概率之前,我们首先将讨论一些常见的非一致性校准技术及其优缺点。这些包括直方图分箱、Platt 缩放和等调回归。
需要注意的是,以下方法不属于一致性预测框架的一部分。我们介绍它们是为了建立对校准的直觉,并突出一些传统校准方法中的挑战。这个背景将激发对一致性预测视角的需求及其好处,以便我们获得可靠的概率估计。
我们将要探索的校准技术,包括直方图分箱、Platt 缩放和等调回归,代表了调整分类器置信值值广泛使用的方法。然而,正如我们将讨论的,它们在模型灵活性、计算成本和泛化方面存在某些局限性。
通过首先理解这些现有的校准方法和它们的缺点,我们将能够更好地理解一致性预测固有的校准属性的价值。这个背景在介绍一致性预测作为有吸引力的现代解决方案之前,为校准问题提供了背景。
直方图分箱
直方图分箱是一种在分类器校准中常用的技术,用于提高概率估计的校准性能。它涉及将预测概率划分为箱或区间,并根据每个箱内预测事件的经验频率或观察比例,将它们映射到更准确和可靠的概率。直方图分箱的目标是将预测概率与事件的真正概率对齐,从而得到校准更好的分类器。
直方图分箱的过程可以概括如下:
-
分区:预测概率被划分为预定义的多个箱或区间。箱的数量可以根据数据集和所需的校准粒度而变化。
-
箱子分配:数据集中的每个实例根据其预测概率分配到相应的箱子中。例如,如果我们有五个等宽间隔的箱子(例如,0-0.2,0.2-0.4,0.4-0.6,0.6-0.8,和0.8-1.0),一个预测概率为 0.45 的实例将被分配到第三个箱子。
-
0.7。 -
映射到校准概率:然后根据正例的实证比例,将每个箱子内的预测概率映射或调整为更准确和校准良好的概率。此映射可以使用各种技术执行,例如等调回归或 Platt 校准。
-
整体校准:一旦映射应用于所有箱子,通过结合所有箱子的概率,获得校准概率。结果是校准概率集,更好地与事件的真正概率或似然性对齐。
这里是使用直方图分箱进行分类器校准的一些潜在缺点:
-
不灵活性:直方图分箱将预测空间划分为固定间隔。它缺乏建模复杂、非线性误校准模式的灵活性。
-
数据未充分利用:硬分箱会丢弃每个箱子内的信息。校准映射仅使用箱子平均值而不是整个分布。
-
对分箱方案的敏感性:校准质量取决于所选的具体分箱阈值,这些阈值可能是任意的。最优分箱通常事先未知。
-
不连续性:相邻箱子可能具有非常不同的调整,导致校准映射中的突然不连续性。这可能会引入伪影。
-
外推困难:分箱校准仅基于训练数据分布。它可能无法很好地外推到稀疏或无覆盖的未见数据。
-
维度诅咒:直方图在处理高维特征空间时扩展性不佳。数据在每个箱子内变得过于稀疏。
-
模型表达能力有限:直方图只能表示简单、低阶的校准关系。它们无法建模复杂的误校准模式。
直方图分箱易于实现,但提供的校准映射不够灵活,不连续。通常需要更复杂的密集建模和平滑处理以获得最佳的校准质量。
Platt 校准
Platt 校准,有时被称为 Platt 方法或 Sigmoid 校准,是一种后处理方法,用于细化二元分类模型的输出概率。它由 John C. Platt 于 1999 年提出,用于将支持向量机分类器的原始输出分数转换为校准良好的概率。
Platt 缩放法的目的是调整分类器产生的预测分数或 logits,使其更准确地反映真实概率的估计。这是通过在分类器的分数上拟合逻辑回归模型,同时使用标记验证集或保留集来实现的。逻辑回归模型被训练以将原始分数映射到校准概率。
Platt 缩放法涉及到的步骤如下:
-
收集一个与用于训练分类器的训练数据不同的标记验证集或保留集。
-
使用分类器为验证集中的实例生成原始输出分数或 logits。
-
在验证集上拟合逻辑回归模型,将原始分数视为自变量,将真实类别标签视为因变量。
-
使用标准技术(如最大似然估计或梯度下降)训练逻辑回归模型以估计模型参数。
-
一旦训练了逻辑回归模型,它可以用作校准函数。给定一个新实例,分类器产生的原始分数被输入到逻辑回归模型中,该模型将其转换为校准概率估计。
逻辑回归模型本质上通过估计截距和斜率参数来学习从原始分数到校准概率的转换。这种转换由 Sigmoid 函数表示,它将分数映射到0到1之间的概率。
Platt 缩放法旨在通过调整预测概率以匹配事件的真正概率或似然性来达到更好的校准。
重要的是要注意,Platt 缩放法假设原始分数与真实概率之间的关系可以通过逻辑函数建模。如果底层关系更复杂,其他校准方法(如一致性预测)可能更合适。
虽然 Platt 缩放法可以是一种有效的校准分类器概率的技术,但重要的是要了解其局限性和潜在缺点:
-
对单独验证集的要求:Platt 缩放法需要一个与训练数据不同的标记验证集或保留集。这意味着可能需要额外的数据进行校准,这在获取标记数据困难或成本高昂的情况下可能是一个限制。
-
对逻辑关系的假设:Platt 缩放法假设原始分数与真实概率之间的关系可以通过逻辑函数准确建模。如果底层关系更复杂或不同,逻辑回归模型可能无法充分捕捉真实的校准映射。
-
对极端分数敏感:Platt 缩放可能对验证集中的极端分数或异常值敏感。异常值可能不成比例地影响校准函数,导致潜在的过拟合或次优校准。
-
对不同校准形状的灵活性不足:Platt 缩放中使用的逻辑回归模型被限制为拟合一个 S 形函数,这可能不适合所有校准形状。如果所需的校准形状与 S 形曲线有显著偏差,Platt 缩放可能无法实现最佳校准。
-
对多类问题的适用性有限:Platt 缩放主要设计用于二元分类问题。将其扩展到多类分类可能具有挑战性,因为它需要调整校准映射以处理多个类别及其相应的概率。
-
极端概率中的潜在过度自信:Platt 缩放可能会在极端预测概率中引入过度自信。接近边界(接近 0 或 1)的校准概率可能比应有的更极端,导致在这些区域产生过度自信的预测。
-
依赖于验证集的质量:Platt 缩放的有效性取决于验证集的质量和代表性。如果验证集未能准确捕捉目标变量的真实分布,则得到的校准可能不是最优的。
考虑这些缺点并评估 Platt 缩放是否适合特定应用非常重要,或者根据问题的具体特征和数据集,基于一致性预测等方法可能更适合。
等调回归
等调回归是一种非参数回归技术,用于校准和单调性建模。它通常用于调整分类器的输出分数或预测概率,以提高其校准。等调回归旨在找到一个单调函数,将原始分数映射到校准概率,同时保留分数的顺序。
等调回归的主要目标是确定一个非递减函数,该函数可以减少预测概率与目标概率或实际发生之间的平方差异之和。通过将分段线性或分段常数函数拟合到数据中,等调回归确保预测概率是单调递增或非递减的。
等调回归的步骤如下:
-
收集一个与训练数据分开的标记验证集或保留集。
-
使用分类器生成验证集中实例的原始输出分数或概率。
-
根据原始分数对验证集中的实例进行排序。
-
将等调回归函数初始化为恒等函数,其中初始预测概率等于原始分数。
-
通过调整预测概率以最小化预测概率与目标概率之间的平方差,迭代更新等调回归函数。这种调整受非递减概率的约束。
-
重复更新过程,直到收敛或达到停止标准:

图 6.2 – 等调回归
一旦训练好等调回归模型,就可以用它将新实例的原始分数映射到校准概率。该模型确保预测概率单调递增,并与事件的真正概率或似然性更好地对齐。
虽然等调回归是校准分类器概率的有价值技术,但考虑其局限性和潜在缺点是很重要的:
-
潜在的过拟合:如果校准函数过于复杂或校准数据集很小,等调回归可能会过拟合。正则化技术,如使用分段线性函数中的有限段数,可以帮助防止过拟合。
-
复杂性和计算成本:等调回归可能资源密集,尤其是在处理大量数据集或导航高维特征时。随着数据点和唯一分数或概率数量的增加,等调回归的复杂性也会增加。在使用等调回归进行大量任务时,权衡计算限制至关重要。
-
对异常值的敏感性:等调回归可能对数据中的异常值敏感。异常值可能对估计的校准函数有重大影响,可能导致校准不佳。可能需要仔细的数据预处理或异常值检测技术来减轻这一问题。
-
复杂校准形状的灵活性有限:等调回归假设分数与概率之间存在单调关系,这限制了校准函数为分段常数或分段线性。这限制了模型捕捉更复杂或非线性校准形状的能力。如果所需的校准形状与单调性有显著偏差,等调回归可能无法提供最佳拟合。
-
需要足够的数据:等调回归需要足够数量的标记数据来准确估计校准函数。如果校准数据集很小或不平衡,估计可能不佳。确保校准数据集具有代表性且大小适当对于可靠的校准结果很重要。
-
处理多类问题的困难:等调回归本质上是为二元分类问题设计的,因此将其扩展到多类问题并不简单。将等调回归调整为处理多个类别及其相应的概率需要仔细考虑和修改算法。
-
缺乏概率解释:与使用逻辑回归显式建模概率的 Platt scaling 不同,等调回归不提供校准分数的概率解释。它仅专注于确保单调性,可能无法直接估计校准良好的概率。
在决定等调回归是否是最合适的校准方法时,评估这些局限性并考虑手头问题的特征是很重要的。
比较不同校准技术(如一致性预测和 Platt scaling)的优缺点,可以帮助确定在特定应用中实现校准良好的概率的最佳方法。
用于分类器校准的一致性预测
一致性预测是一个强大的概率预测框架,它提供了有效和校准良好的预测集和预测区间。它提供了一种原则性的方法来量化和控制与预测相关的不确定性。
我们已经看到,如归纳一致性预测(ICP)和转导一致性预测(TCP)等一致性预测方法旨在生成具有准确覆盖概率的集合。为了回顾,一致性预测通过比较每个潜在标签的 p 值与选定的显著性水平来计算 p 值并构建预测集。
与 Platt scaling、直方图分箱和等调回归等专注于校准预测概率或分数的方法不同,一致性预测通过提供包含与预测相关的不确定性的预测集,采取更全面的方法,并通过提供有效的置信度或显著性度量来增强预测的可靠性和可解释性。
Venn-ABERS 一致性预测
经典方法如 Platt scaling 最初是作为校准分类器的参数解决方案开发的。然而,这些方法正变得有些过时,由于它们的简单假设,存在局限性,导致概率校准不佳。
Platt 缩放假设分数和概率之间存在逻辑关系,这在实际场景中可能不足以充分捕捉实际的校准形状。值得注意的是,Platt 在 1999 年的原始论文中并没有明确讨论这种方法的潜在假设。然而,最近的研究(参见 Beta 校准:对二元分类器的逻辑校准的一种有根据且易于实施的改进:https://proceedings.mlr.press/v54/kull17a.html)揭示了这些假设本质上等同于假设正态性和同方差性,这对于现实世界的数据集来说是过于严格的假设。现实数据集通常表现出更复杂和多样化的模式,这些模式无法通过此类假设准确捕捉。因此,仅依靠 Platt 缩放及其潜在假设可能会导致校准不佳和校准概率不佳。
同质性回归作为一种方法,假设分数和概率之间存在单调关系。然而,这种假设可能无法捕捉所有情况下校准曲线的复杂本质。此外,同质性回归依赖于测试数据集上完美排序(ROC AUC 为 1)的假设,这在现实世界的数据集中很少能够实现。此外,已有研究表明,当应用于较小的数据集时,同质性回归可能会过拟合。
单调关系的假设限制了同质性回归的灵活性,使其难以模拟可能表现出非单调模式的更复杂的校准曲线。此外,测试数据集上完美排序(ROC AUC 为 1)的要求通常是不切实际的,因为数据集通常涉及固有的噪声和不确定性。这种假设在实践中可能导致校准结果不佳。
此外,当处理较小的数据集时,同质性回归的过拟合问题变得更加突出。当数据集的大小有限时,同质性回归可能会过度调整到噪声或训练数据的特定特征,从而导致泛化性能不佳。
由于它们的简单假设,Platt 缩放和同质性回归可能无法实现最佳校准,并且可能无法提供良好的校准概率。这些方法可能难以捕捉非线性或更复杂的校准模式,限制它们在某些应用中的有效性。
为了解决经典校准器(如 Platt 缩放和同质性回归)的局限性,符合预测的创造者 Vladimir Vovk、Ivan Petej 和 Valentina Fedorova 开发了一种名为 Venn-ABERS 的强大解决方案。Venn-ABERS 是一种符合预测方法,无论数据分布、数据集大小或潜在分类模型如何,都能提供有效性的数学保证。
这项工作在 NeurIPS 论文《带有和没有有效性保证的大规模概率预测器》中有详细描述(papers.nips.cc/paper_files/paper/2015/hash/a9a1d5317a33ae8cef33961c34144f84-Abstract.html)。为了更数学化的理解,请观看相关的演示,带有和没有有效性保证的大规模概率预测,在www.youtube.com/watch?v=ksrUJdb2tA8。
Venn-ABERS 这个名字来源于 Venn 预测器,另一类共形预测器,以及为经典论文《具有不完整信息的抽样经验分布函数》(M. Ayer, H.D. Brunk, G.M. Ewing, W.T. Reid, 和 E. Silverman:projecteuclid.org/journals/annals-of-mathematical-statistics/volume-26/issue-4/An-Empirical-Distribution-Function-for-Sampling-with-Incomplete-Information/10.1214/aoms/1177728423.full)做出贡献的作者的首字母缩写。
那么,Venn-ABERS 预测器是如何工作的呢?Venn-ABERS 不是一次性构建等调回归,而是通过假设每个测试对象都可以具有标签 0 和标签 1,进行两次等调回归的拟合。这意味着每个测试对象被添加到校准集中两次,一次是标签 0,一次是标签 1。然后拟合两个独立的等调回归,为每个测试对象得到两个概率,p0和p1。
重要的是要注意,p0(下限)和p1(上限)都代表对象属于类别 1 的概率。这些概率为类别 1 的概率创建了一个预测区间,并提供了数学保证,实际概率落在这个区间内。
因此,Venn-ABERS 完美地解决了这个问题,无需对得分分布(如 Platt 缩放)做出假设,也不会出现过度拟合的问题。
Venn-ABERS 的预测是一个多预测器,区间(p0, p1)的宽度包含了关于分类置信度的宝贵信息。在较大的数据集中,p0和p1通常非常接近。然而,对于较小且更具挑战性的数据集,p0和p1可能会分离,这表明某些对象由于数据分布、数据不足或底层分类器的性能等因素而难以分类。
重要的是,在关键情况下,Venn-ABERS 预测器不仅输出准确且校准良好的概率,而且通过扩大(p0, p1)区间发出“警报”。这个警报表明决策过程应考虑增加的不确定性。
对于实际决策目的,可以使用公式p = p1 / (1 - p0 + p1)将概率合并成一个单一值。这个类1的合并概率p可以用于决策任务,如贷款发放或确定是否在自动驾驶汽车中禁用自动驾驶。包含p后,决策过程可以成功完成。
比较校准方法
考虑到校准方法的范围,你可能想知道它们是如何相互比较的。我们已经看到,像 Platt 缩放和等调回归这样的经典方法依赖于限制性假设,并且与符合预测的 Venn-ABERS 方法不同,它们没有有效性保证。一个有趣的问题也是,不同方法在一系列数据集上的性能如何进行实证比较。
这样一项研究已经完成,其结果总结在论文《scikit-learn 中的概率预测》Probabilistic Prediction in scikit-learn (www.diva-portal.org/smash/get/diva2:1603345/FULLTEXT01.pdf)中。在这篇论文中,进行了一项大规模的实验研究,以调查 scikit-learn 模型的开箱即用校准情况。此外,该研究还探讨了诸如 Platt 缩放、等调回归和 Venn-ABERs 之类的校准技术是否能够改善校准。
研究结果表明,在评估的七个算法(逻辑回归、随机森林、AdaBoost、梯度提升、kNN、朴素贝叶斯和决策树)中,唯一获得良好校准预测的模型是逻辑回归。校准增强了所有模型,尤其是决策树、提升树(如 XGBoost、LightGBM 和 CatBoost)以及朴素贝叶斯。这强调了专业人士的明确建议:获得相对良好的校准预测的是逻辑回归。
此外,该研究揭示了一个值得注意的发现,即校准不当的模型往往表现出高度的过度自信。令人惊讶的是,即使是逻辑回归,尽管与其他模型相比程度较轻,但在其预测中也显示出系统性的乐观。
换句话说,这些校准不当的模型往往赋予其预测更高的概率或信心,高于实际结果所证明的。这种过度自信可能导致决策失误或对预测可靠性的错误信任。
认识到,尽管逻辑回归在与其他模型相比表现出更好的校准,但它仍然表现出一定程度的系统性乐观。这突出了彻底评估和校准模型的重要性,即使是那些被认为是校准良好的模型,以确保准确和可靠的概率预测。
当从校准技术的校准效益角度审视时,通常观察到其有效性顺序为 Venn-ABERS,其次是 Platt 缩放和等调回归。
Venn-ABERS 往往在校准方面显示出最显著的改进,在实现良好校准的预测方面提供了显著的好处。在一致性预测框架内使用它,可以可靠地估计不确定性并提高校准性能。
总结来说,对校准技术的比较显示,Venn-ABERS 往往能带来最显著的好处,其次是 Platt 缩放和等调回归。根据手头问题的具体要求选择适当的技术非常重要,需要考虑的因素包括校准曲线的复杂性和期望的校准改进水平。
研究的发现强调,校准不当的模型往往表现出过度自信,即使是比其他模型更校准的逻辑回归,也可能表现出系统性的乐观。这突出了评估和增强模型校准的必要性,以避免不必要的自信,并基于准确的概率预测做出明智的决策。研究进一步指出,未校准的模型通常也表现出过度自信。这包括逻辑回归,虽然系统性的乐观程度较低,但仍然存在。
用于分类问题中的校准预测的开源工具
在深入研究分类问题中的一致性预测的复杂性时,已经很明显,合适的工具可以显著提高我们的实施效率。认识到这一点,开源社区通过提供针对此目的定制的各种工具做出了显著的贡献。在本节中,我们将探讨一些突出的开源校准预测工具,这些工具可以无缝集成到你的项目中,并提升你的预测能力。
Nonconformist
nonconformist(github.com/donlnz/nonconformist)是一个经典的校准预测包,可用于分类问题中的校准预测。
让我们通过nonconformist来展示如何创建一个 ICP。你可以在这里找到包含相关代码的 Jupyter 笔记本:github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_06.ipynb:
-
你可以在这里找到
nonconformist的文档:http://donlnz.github.io/nonconformist/index.html。首先,我们将使用标准功能安装nonconformist——即pip install:!pip install nonconformist -
我们可以按照以下方式导入相关模块:
from nonconformist.base import ClassifierAdapterfrom nonconformist.cp import IcpClassifierfrom nonconformist.nc import NcFactoryfrom nonconformist.nc import ClassifierNc,InverseProbabilityErrFunc, andMarginErrFunc specify the nonconformity measure using NcFactory.create_nc在这个案例中,我们创建了一个具有公差度量指标的 ICP;我们已在之前的章节中讨论了这一点。此 ICP 使用逻辑回归作为基础分类器:
icp=IcpClassifier(ClassifierNc(ClassifierAdapter (LogisticRegression()), MarginErrFunc())) -
然后,我们必须使用适当的训练集来拟合 ICP,并使用校准集来校准它:
icp.fit(X_train, y_train)icp.calibrate(X_calib, y_calib) -
使用训练好的模型,我们可以在校准集和测试集上获得预测的类别得分:
y_pred_calib = model.predict(X_calib)y_pred_score_calib = model.predict_proba(X_calib)y_pred_test = model.predict(X_test)y_pred_score_test = model.predict_proba(X_test)
在笔记本中,我们使用了一个与葡萄牙银行机构的直接营销活动相关的银行营销数据集(archive.ics.uci.edu/dataset/222/bank+marketing)。此数据集包含以下特征:
-
age(数值) -
job: 职业类型(分类:行政、未知、失业、管理、家政、企业家、学生、蓝领、自雇、退休、技术人员或服务行业) -
marital: 婚姻状况(分类:已婚、离婚或单身;注意,离婚表示离婚或丧偶) -
education(分类:未知、中学、小学或大学) -
default: 是否有信用违约?(二进制:是或否) -
balance: 平均年度余额,以欧元为单位(数值) -
housing: 是否有住房贷款?(二进制:是或否) -
loan: 是否有个人贷款?(二进制:是或否)
以下特征与当前活动的最后联系相关:
-
contact: 联系沟通类型(分类:未知、电话和手机) -
day: 月份最后联系日(数值) -
month: 年度最后联系月份(分类:jan、feb、mar、...、nov、dec) -
duration: 最后联系持续时间,以秒为单位(数值)
其他属性如下:
-
campaign: 在此活动中为此客户进行的联系次数(数值;这包括最后联系) -
pdays: 客户上次被联系后经过的天数(数值;-1表示客户之前未被联系) -
previous: 在此活动之前为此客户进行的联系次数(数值) -
poutcome: 上一次营销活动的结果(分类:未知、其他、失败或成功)
输出变量(期望的目标)是 y – 客户是否订阅了定期存款?(二进制:是、否。)
目标是预测 Class 目标变量,以指示营销活动是否成功,即客户是否因营销活动而订阅了定期存款。数据集略微不平衡,大约有 12%的客户因营销活动而订阅了定期存款。
我们将使用 OpenML API 来访问和读取数据集。如前几章所述,ICP 需要一个单独的校准集,该集不应用于训练底层的机器学习分类器。在下面的代码中,我们创建了三个数据集 – 用于分类器的适当训练数据集,用于使用 ICP 校准分类器的校准数据集,以及 用于评估性能的测试数据集。数据集包含 45,211 个实例;我们必须将其拆分,以便每个训练集和校准集都有 1,000 个实例:
X_train_calib, X_test, y_train_calib, y_test = train_test_split(X, y, test_size=1000, random_state=42, stratify=y)
X_train, X_calib, y_train, y_calib = train_test_split(X_train_calib, y_train_calib, test_size=1000, random_state=42, stratify=y_train_calib)
现在,我们可以使用逻辑回归构建底层分类器,并在测试集上计算准确率和 ROC AUC:
-
首先,让我们使用标准的 scikit-learn 功能训练逻辑回归:
model = LogisticRegression()model.fit(X_train, y_train) -
接下来,我们必须使用训练好的逻辑回归分类器模型来预测校准集和测试集上的类别标签和类别得分:
y_pred_calib = model.predict(X_calib)y_pred_score_calib = model.predict_proba(X_calib)y_pred_test = model.predict(X_test)y_pred_score_test = model.predict_proba(X_test) -
现在,在测试集上计算分类准确率和 ROC AUC:
print('Classification accuracy on the test: {}'.format(accuracy_score(y_test, y_pred_test)))print('ROC AUC on the test set: {}'.format(roc_auc_score(y_test, y_pred_score_test[:,1])))
到目前为止,我们只使用了标准的分类功能。现在,让我们使用 nonconformist 构建 ICP:
-
首先,我们必须使用
nonconformist的包装器创建 ICP 分类器:icp = IcpClassifier(ClassifierNc(ClassifierAdapter (LogisticRegression()),MarginErrFunc()))这段代码片段构建了一个使用逻辑回归作为底层机器学习模型的 ICP。以下是发生的事情的分解:
-
`LogisticRegression()`: 这是 Python 中 scikit-learn 库的一个用于二元分类任务的分类器。它预测属于特定类别的实例的类别得分。 -
`ClassifierAdapter(LogisticRegression())`: 这将逻辑回归模型包装起来,使其与非一致性评分器兼容。适配器确保底层分类器的方 法与非一致性评分器的期望相一致。 -
`ClassifierNc(ClassifierAdapter(LogisticRegression()))`: 这里,创建了一个非一致性评分器。在一致性预测的上下文中,非一致性评分器用于衡量一个实例根据训练数据偏离正常程度的大小。在这种情况下,ClassifierNc使用ClassifierAdapter创建了一个基于逻辑回归分类器的非一致性评分器。 -
`MarginErrFunc()`: 这是我们在前几章中讨论的非一致性度量。在nonconformist中,边缘误差被定义为 0.5 − ˆ P(y i ∣ x) − max y!=y i ˆ P(y ∣ x) _____________ 2 . -
``
```pyIcpClassifier(ClassifierNc(ClassifierAdapter(LogisticRegression())), MarginErrFunc())`: Finally, an ICP is created. An ICP is a type of conformal predictor that separates the calibration set from the training set, thereby providing valid predictions even under distribution shift. It uses the defined nonconformity scorer (based on the logistic regression classifier) and the margin error function to make predictions. -
Then, we must train the ICP classifier on the proper training set and calibrate it on the calibration set:
icp.fit(X_train, y_train) ```pyicp.calibrate(X_calib, y_calib)
-
Now that we have trained the conformal predictor, we can compute predictions on the test set using the specified significance level:
# 为测试集生成预测,置信度为 95% ```pyprediction = icp.predict(X_test.values, significance=0.05)
注意 nonconformist 使用经典的一致性预测并输出预测集。
nonconformist 是一个基于 scikit-learn 构建的 Python 库,专注于实现分类任务的一致性预测方法。它提供了一套全面的工具和算法,用于生成预测区间、估计不确定性和增强分类模型中的校准。以下是 nonconformist 库的主要功能和能力概述:
-
nonconformist提供了专门为分类设计的一致性预测算法。这些算法包括以下内容:-
归纳一致性分类器(ICC):这基于训练集构建非一致性度量和一个预测区域
-
传递性一致性分类器(TCC):这将在预测区域的构建中将测试集纳入其中
-
Venn 预测器:这通过嵌套 Venn 区域生成预测区间,以控制假阳性的数量
-
随机森林一致性预测器:这利用随机森林模型作为一致性预测的底层分类器
-
-
nonconformist与 scikit-learn 无缝集成,使用户能够利用 scikit-learn 丰富的分类器集合。它提供了一个包装类,允许在一致性预测框架中使用 scikit-learn 分类器。 -
nonconformist还提供了评估校准质量的工具,例如可靠性图。 -
nonconformist提供评估指标来评估一致性预测模型的性能。这些指标包括准确率、错误率、p 值和效率度量,使得对不同模型进行彻底的评估和比较成为可能。 -
交叉验证支持:该库提供了对使用一致性预测模型进行交叉验证的支持。这使得模型能够在数据集的不同折叠中进行稳健的评估和验证。
nonconformist 是将一致性预测技术应用于分类问题的强大工具。凭借其广泛的算法、与 scikit-learn 的兼容性、校准和不确定性估计能力、评估指标以及交叉验证支持,nonconformist 为实现和评估分类任务中的一致性预测模型提供了一个全面的框架。它是研究人员和实践者将一致性预测纳入其分类项目的宝贵资源。
摘要
在本章中,我们开始了一次针对分类任务的共形预测的启发式探索。我们首先强调了校准在分类领域的重要性,强调了它在确保模型预测的可靠性和可信度方面的作用。在我们的旅程中,我们了解了各种校准方法,包括共形预测的各种方法。我们观察到,共形预测独特地解决了校准的挑战,为传统方法提供了理论和实践上的优势。
我们还深入探讨了 Venn-ABERS 预测器的微妙领域,揭示了它们在校准过程中的作用和影响。
最后,我们强调了开源社区在这一领域的宝贵贡献。我们突出了如nonconformist库等工具,这些工具对于热衷于在他们的分类挑战中实施共形预测的从业者来说是必不可少的资源。
随着本章的结束,很明显,校准,尤其是共形预测,在增强分类模型的鲁棒性和可靠性方面发挥着关键作用。凭借我们手头的工具和知识,我们已充分准备,以更大的信心和精确度应对分类问题。
在下一章中,我们将介绍回归问题的共形预测。
第七章:回归问题的共形预测
在本章中,我们将介绍回归问题的共形预测。
回归是机器学习的基础,使我们能够从给定数据中预测连续结果。然而,与许多预测任务一样,预测永远不会没有不确定性。传统的回归技术给我们一个点估计,但无法衡量不确定性。这就是共形预测力量的体现,它扩展了我们的回归模型,以产生良好校准的预测区间。
本章深入探讨了专门针对回归问题的共形预测。通过理解和欣赏量化不确定性的重要性,我们将探讨共形预测如何增强回归,不仅提供点预测,还提供整个区间,甚至分布,其中实际结果可能以预指定的置信度出现。这在许多现实场景中非常有价值,尤其是在基于预测做出决策且风险很高,仅仅“大致正确”还不够的情况下。
本章将涵盖以下主题:
-
回归问题的不确定性量化
-
产生预测区间的各种方法
-
回归问题的共形预测
-
使用共形预测构建预测区间和预测分布
回归问题的不确定性量化
完成本章学习后,无论何时预测任何连续变量,你都将能够为你的预测添加一层稳健性和可靠性。理解和量化这种不确定性对于以下几个原因至关重要:
-
模型可解释性和可信度:不确定性量化帮助我们理解我们模型预测的可靠性。通过提供一系列可能的输出,我们可以建立对我们模型预测的信任,并更有效地解释它们。
-
决策制定:在回归分析的许多实际应用中,决策者必须依赖点估计之外的东西。他们通常需要知道实际值可能落在某个概率范围内的范围。这个范围,或预测区间,提供了关于预测不确定性的关键信息,有助于风险管理。
-
模型改进:不确定性可以突出模型可能从额外数据或特征工程中受益的领域。高不确定性可能表明模型需要帮助捕捉潜在关系,这表明需要修订模型或添加更多数据。
-
异常值检测:不确定性量化还可以帮助我们识别数据中的异常值或异常情况。与高预测不确定性相关的观测值可能是异常值或表明在模型训练期间未捕获的新情况。
因此,不确定性量化是回归问题的一个基本组成部分。它提供了一个更全面的预测性能图景,允许更好的风险管理,并提高模型的信任度和可解释性。本章将讨论的回归的符合性预测,是一种在回归问题中有效量化不确定性的方法。
理解回归模型中不确定性的类型和来源
回归模型中的不确定性可能来自几个来源,并以不同的方式表现出来。广义上,这些不确定性可以分为两大类——随机性和认知性:
-
随机不确定性:这种类型的不确定性通常被称为“内在的”、“不可减少的”或“随机的”不确定性。它源于数据本身的固有变异性,这通常超出了我们的控制范围。即使我们收集更多数据或改进测量,这种不确定性也不会消失。随机不确定性反映了我们的样本群体中的随机性、变异性或异质性。
-
认知不确定性:也称为“可减少的”或“系统性的”不确定性,这种类型源于对研究中的系统或过程的了解不足。这可能是由于数据不足、测量误差或对潜在数据分布或模型结构的错误假设。与随机不确定性不同,认知不确定性可以通过更多的信息或数据来减少。
这些不确定性的主要来源如下:
-
数据不确定性:这包括测量误差、缺失值和数据中的变异性。数据可能在不同的条件下或来源下收集,这会给数据集增加更多的不确定性。
-
模型不确定性:这源于模型无法精确捕捉预测变量和结果之间的适当关系。每个模型都做出某些假设(例如,线性、独立性、正态性等),任何对这些假设的违反都会引入不确定性。
-
参数不确定性:每个回归模型都涉及估计参数(例如,系数)。这些估计总是存在一些不确定性,这可能会对预测的整体不确定性做出贡献。
-
结构不确定性:这指的是由于选择特定模型形式而产生的不确定性。不同的模型结构或类型(例如,线性回归、多项式回归等)可能会导致不同的解释和预测。
-
残差不确定性:这来自模型的残差或误差。它代表了观察到的结果与模型预测的结果之间的差异。
在回归模型的情况下,识别这些不确定性的类型和来源可以帮助更准确地解释模型的预测。它可以指导模型精炼和验证的过程。
预测区间的概念
预测区间是与回归预测相关的区间估计,表示实际结果可能落在这个范围内的概率。虽然点预测给出一个最可能的结果值,但预测区间提供了一个范围,提供了关于该预测不确定性的更清晰图景。
我们为什么需要预测区间?
让我们来看看:
-
量化不确定性:采用预测区间的首要原因是量化我们预测的不确定性。无论模型多么复杂,每个预测都伴随着固有的变异性。通过使用预测区间,我们可以有效地传达这种变异性。
-
风险管理:在各个行业中,特别是在金融、医疗保健和工程领域,了解潜在结果的范围对于风险评估和缓解至关重要。预测区间有助于决策者权衡他们行动的潜在风险和收益。
-
模型透明度:提供区间而不是仅仅的点估计可以增强模型的透明度。利益相关者不仅可以了解模型预测的内容,还可以了解模型对该预测的信心程度。
-
指导决策:当决策者了解最坏和最好的情况时,他们可以更加果断地采取行动。例如,了解销售预测中预测销售的上下限可以帮助分配资源。
在各种情境中理解预测区间的必要性为深入讨论其本质铺平了道路,尤其是在与置信区间比较时。
它与置信区间有何不同?
这种区别至关重要。置信区间涉及基于样本统计量的关于总体参数的不确定性。例如,我们可能会使用置信区间来估计基于样本均值的总体均值。另一方面,预测区间是关于预测单个未来观察值并量化该单个预测的不确定性的。
预测区间的组成部分
预测区间通常具有以下组成部分:
-
下限:预测范围内的最小值。
-
上限:预期范围内的最大值。
-
覆盖概率:实际结果落在预测区间内的概率。常用的概率是 90%、95%和 99%。
产生预测区间有各种方法。在回归模型中量化不确定性对于理解预测的可靠性至关重要。以下是一些最常用的技术:
-
置信区间和预测区间:这些是量化不确定性的基本技术。置信区间提供了一个范围,其中我们期望在给定的置信水平下,真实的回归参数将落在其中。另一方面,预测区间提供了一个范围,用于预测新的观测值,它结合了均值函数估计的不确定性和新观测值的随机性。
-
重采样方法:如自助法和交叉验证等技术可以提供模型不确定性的经验估计。例如,自助法涉及从数据集中有放回地重复采样并重新计算回归估计,以获得估计的经验分布。
-
贝叶斯方法:贝叶斯回归分析提供了一个概率框架来量化不确定性。贝叶斯回归不是给出单点估计,而是给出模型参数的后验分布,这可以用来构建预测区间。
-
同构预测:同构预测是一种较新的方法,它衡量机器学习算法做出的预测的确定性。它构建预测区域,在有限样本中达到有效的覆盖范围,而不对数据分布做出假设。
-
分位数回归:与标准回归技术不同,后者根据预测变量的特定值来建模响应变量的条件均值,分位数回归模型的是条件中位数或其他分位数。它可以提供对可能结果及其相关概率的更全面视角。
-
蒙特卡洛方法:蒙特卡洛方法是一类使用随机采样来获得数值结果的计算算法。在不确定性量化方面,蒙特卡洛方法可以用来传播输入变量到响应变量的不确定性。
-
敏感性分析:敏感性分析是一种技术,用于确定在给定的一组假设下,独立变量的不同值将如何影响特定的依赖变量。这种技术是在依赖于一个或多个输入变量的特定边界内使用的。
理解预测区间的内在价值和重要性对于辨别帮助我们生成它们的方方法和工具至关重要。虽然传统统计方法有其优点,但数据驱动行业的动态格局需要更适应性和可靠的技巧。基于算法随机性和有效性的同构预测提供了一种诱人的方法。随着我们过渡到下一部分,我们将探讨同构预测如何适应回归问题,确保我们的预测区间既准确又具有理论上的合理性。让我们深入探讨,揭示回归背景下同构预测的复杂性。
回归问题的符合预测
在前几章中,我们探讨了符合预测提供的众多优势。以下是一些包括:
-
有效性和校准:符合预测无论数据集的大小如何,都保持其有效性和校准。这使得它成为不同数据集大小预测的稳健方法。
-
无分布特性:符合预测的一个重要优点是其无分布特性。它不对底层数据分布做出具体假设,使其成为许多预测问题的灵活和多功能工具。
-
与各种预测器的兼容性:符合预测可以无缝地与任何点预测器集成,无论其性质如何。这一特性增强了其适应性,扩大了其在不同领域的应用范围。
-
非侵入性:符合预测框架是非侵入性的,这意味着它不会干扰或改变原始预测模型。相反,它是一个额外的层,量化不确定性,提供对模型预测的整体视角。
在回归分析中,一个至关重要的关注点是各种不确定性量化方法的有效性和校准。这些品质在生成预测区间时尤为重要,因为这些区间预期提供与指定置信水平相匹配的覆盖范围,这有时可能具有挑战性。
在由 Nicolas Dewolf、Bernard De Baets 和 Willem Waegeman 撰写的综合研究论文《回归问题的有效预测区间》中(arxiv.org/abs/2107.00363),作者们探讨了四种旨在回归场景中估计预测区间的广泛方法类别——贝叶斯方法、集成方法、直接估计方法和符合预测方法:
-
贝叶斯方法:这个类别包括使用贝叶斯定理来预测区间后验概率的技术。这些方法可以通过对整个输出分布进行建模来提供稳健的预测区间。
-
集成方法:如随机森林或袋装等集成方法可以通过利用集成中各个模型的变异性来生成预测区间。
-
直接估计方法:这些技术涉及直接计算预测区间。它们通常需要对底层数据或误差分布做出特定的假设。
-
符合预测方法:符合预测因其无分布特性和能够在各种场景下提供有效预测区间而脱颖而出。
本研究的作者强调,人类对人工智能系统的采用与这些系统能够提供的可靠性密切相关。这里的可靠性不仅指产生准确的点预测,还包括系统准确评估和传达其不确定性水平的能力。因此,这些系统应该擅长突出其知识领域和局限性,特别是需要澄清的方面。
在现实世界的应用中,将不确定性或“他们不知道的事情”转换为更关键,因为预测往往驱动着重要的决策。因此,不确定性量化有助于做出明智和风险意识的决定,有助于人工智能系统的更广泛接受和信任。
校准是指预测区间的实际覆盖范围与其名义覆盖水平相匹配的程度。换句话说,如果预测区间以预期的频率包含响应变量的真实值,则该预测区间是良好校准的。校准是必不可少的,因为它确保预测区间既不太窄也不太宽,并且提供关于预测不确定性的准确信息。在本研究中,作者使用保形预测作为一般的校准程序,以确保预测区间得到良好校准。
除了保形预测之外的方法可能会遭受校准问题,因为它们可能对误差分布或模型参数的分布做出假设,而这些假设在实际情况中并不成立。例如,贝叶斯方法可能假设误差是具有固定方差的正态分布,这可能并不成立。另一方面,集成方法可能没有考虑集成中各个模型预测之间的相关性。数据中的异常值或其他噪声源也可能影响直接估计方法。此外,一些区间估计器最多只能是渐近有效的;由于这仅对无限大的数据集有保证,因此无法保证它适用于最终大小为实数的数据集,尤其是对于中等大小和更小的数据集。
这些问题可能导致校准不良的预测区间,这意味着它们没有提供关于预测不确定性的准确信息。
相反,保形预测是一种非参数方法,它不对误差分布或模型参数的分布做出任何假设。相反,它使用数据来构建预测区间,这些区间保证能够很好地校准,无论误差的潜在分布如何。
下表总结了在回归设置中构建预测区间的四种方法类别的特征:
| 方法 | 边缘有效性 | 可扩展性 | 领域知识 | 验证集 |
|---|---|---|---|---|
| 贝叶斯方法 | 否 | 仅在近似推理下可扩展 | 是 | 否 |
| 集成方法 | 否 | 是(当使用可扩展模型时) | 否 | 否 |
| 直接区间估计 | 否 | 是 | 否 | 是 |
| 一致性预测 | 是 | 是(对于 ICP) | 否 | 是 |
表 7.1 – 不确定性量化方法的总结
对于每种方法类别,该表指出了该方法是否具有边缘有效性(意味着它不需要关于误差分布或模型参数的任何假设),是否可扩展(意味着它可以应用于大型数据集),是否需要领域知识(意味着它需要特定问题域的知识),以及是否需要验证集(意味着它需要一个单独的数据集来评估该方法的表现)。
该表显示了以下内容:
-
贝叶斯方法没有边缘有效性,仅在近似推理下可扩展,需要领域知识,并且不需要验证集
-
集成方法没有边缘有效性,可扩展,不需要领域知识,并且不需要验证集
-
直接区间估计方法没有边缘有效性,可扩展,不需要领域知识,并需要一个验证集
-
一致性预测具有边缘有效性,可扩展,不需要领域知识,并且需要验证集(在归纳一致性预测(ICP)版本中)
对回归问题的几种预测区间估计器进行了回顾和比较,如下所示:
-
贝叶斯方法:高斯过程和近似高斯过程
-
集成方法:Dropout 集成、深度集成和均值-方差估计器
-
直接区间估计方法:神经网络分位数回归
-
一致性预测:神经网络和随机森林
这种比较基于两个主要属性——覆盖度和预测区间的平均宽度。
在校准之前,预测区间估计器的性能在不同基准数据集之间差异显著,性能从一个数据集到另一个数据集之间有大幅波动。这是由于某些方法类别的内在假设被违反所致。例如,某些方法可能在正态分布误差的数据集上表现良好,但在强偏斜误差的数据集上表现不佳。同样,某些方法可能在噪声水平低的数据集上表现良好,但在噪声水平高的数据集上表现不佳。
论文还发现,构建预测区间的不同方法的性能取决于几个因素,例如数据集的大小、模型的复杂性和数据的偏斜程度。
例如,该论文发现贝叶斯方法在小数据集上往往表现更好,而集成方法在大数据集上往往表现良好。论文还发现,均值-方差估计器,作为一种集成方法,可能对正态性假设敏感,并在强偏斜数据集上可能表现不佳。
最后,论文发现直接区间估计方法,如神经网络分位数回归,可能计算成本高昂,并且可能需要许多训练样本才能达到良好的性能。
符合性预测框架被用于事后校准,发现所有方法在校准后都达到了预期的覆盖率,在某些情况下,校准后的模型甚至产生了更小的平均宽度区间。
作者说明了如何将符合性预测用作一种通用校准程序,用于那些在没有校准步骤的情况下提供较差结果的方法,并表明它可以在广泛的数据库上提高这些方法的性能,使符合性预测成为回归设置中构建预测区间的有希望框架。特别是,论文表明符合性预测可以用作一种通用校准程序,用于那些在没有校准步骤的情况下提供较差结果的方法。论文还发现,符合性预测在构建预测区间方面与其他方法相比具有几个显著优势。例如,符合性预测具有边缘有效性,这意味着它不需要对误差分布或模型参数的任何假设。此外,符合性预测是可扩展的,这意味着它可以应用于大数据集。最后,符合性预测不需要领域知识,这意味着它不需要了解特定的问题领域。
符合性预测是量化机器学习预测不确定性的强大框架。其原理可以应用于涉及不确定性量化的各种类型的问题,包括回归,其中涉及预测一个连续的输出变量。
当应用于回归问题时,符合性预测提供预测区间而不是点预测。这些预测区间为目标变量提供一系列可能的值,并指定一个置信水平。例如,95%的预测区间表示我们可以有 95%的信心,目标变量的真实值位于这个范围内。
符合性预测在回归场景中最引人注目的特征是其有效性,这指的是如果我们声称 95%的置信水平,那么真实值确实会在预测区间内 95%的时间。重要的是,这种有效性对于未见过的测试数据、任何样本大小(不仅仅是大型或无限样本)以及任何潜在的点回归模型都是保证的。
此外,回归的一致性预测是非参数的,这意味着它不对基础数据分布做出任何特定的假设。这使得它在不同的回归问题和数据集上具有广泛的应用性。
要实现回归的一致性预测,我们需要一个非一致性度量,它量化了每个观测值偏离正常值多少。回归中常见的选项包括绝对残差。一旦我们有了非一致性得分,我们就可以根据校准集的非一致性得分的顺序生成预测区间。
一致性预测的不同变体可以用于回归,例如归纳(完整)一致性预测、ICP,它比经典的 TCP 更高效,还有 jackknife+和交叉一致性方法,它们提供了更高的精度和稳健性。
总体而言,一致性预测为回归问题中的不确定性量化提供了一种灵活、稳健和可靠的方法,提供了有效且校准良好的预测区间。
使用一致性预测构建预测区间和预测分布
ICP 是原始归纳一致性预测框架的一种计算高效的变体。像一致性预测家族中的所有其他模型一样,ICP 在基础点预测模型和数据分布方面是模型无关的,并为任何大小的最终样本提供自动的有效性保证。
与原始的一致性预测变体(归纳一致性预测)相比,ICP 的关键优势在于 ICP 只需要对基础回归模型进行一次训练,从而在校准和预测阶段实现高效的计算。由于与基础模型训练相比,一致性层只需要很少的计算开销,因此 ICP 在计算效率上非常高。
ICP 过程涉及将数据集分成合适的训练集和校准集。训练集用于创建初始点预测模型,而校准集则用于计算一致性得分并产生未见点的预测区间。
ICP 自动保证有效性,并确保预测区间包含实际测试点,并具有指定的选择覆盖度。
ICP 的效率和灵活性使其成为各种应用中不确定性估计的热门选择。
我们将使用位于 https://github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_07.ipynb 的笔记本来说明如何使用 ICP:

图 7.1 – RandomForestRegressor 在测试集上的预测
让我们利用RandomForestRegressor作为核心预测模型来生成预测区间,并使用 ICP 将基础机器学习模型做出的点预测转换为良好校准的预测区间:
-
模型训练:通过使用适当的训练数据集训练所选模型来启动这个过程:
model = RandomForestRegressor(n_jobs=-1)model.fit(X_proper_train, y_proper_train)y_pred_calib = model.predict(X_calib) -
进行预测:利用训练好的模型在校准集和测试集上生成预测:
y_pred_calib = model.predict(X_calib)y_pred_test = model.predict(X_test) -
非一致性度量计算:对于校准集中的每个观测值,计算非一致性度量:
y_calib_error = np.abs(y_calib - y_pred_calib) -
量数计算:使用为最终样本校正设计的公式确定非一致性度量值的量数。该公式包括最终样本校正因子:
q_yhat_calib = np.quantile(y_calib_error,np.ceil((n_calib+1)*(1-alpha))/n_calib) -
建立预测区间:使用上一步计算的量数,为测试集建立预测区间。这些区间应基于底层模型做出的点预测:
y_hat_test_lower = y_pred_test - q_yhat_caliby_hat_test_upper = y_pred_test + q_yhat_calib
我们可以在一个包含点估计、实际值和 ICP 生成的预测区间的图表上展示预测结果:

图 7.2 – 实际值与预测值及预测区间
我们可以确认在 ICP 中,预测区间的宽度保持恒定(如设计所示)。
ICP 回归提供了几个优点和一些缺点。让我们考虑这些。
我们首先介绍其优势:
-
模型无关性:ICP 可以应用于任何现有的回归模型。这意味着它是一种灵活的方法,可以用来增强各种回归模型。
-
效率:ICP 只需要对底层回归模型进行一次训练,在校准和预测阶段计算效率高。这使得它在计算上比原始的归纳一致性预测框架更高效,后者需要对每个新的预测重新训练模型。
-
有效性:ICP 自带自动有效性保证。如果数据分布是可交换的(即数据点的顺序不重要),那么 ICP 生成的预测区间将具有所需的覆盖概率。
-
无分布假设:ICP 对数据的分布没有任何假设。这意味着即使数据不遵循任何已知的统计分布,也可以应用它。
现在,让我们谈谈其缺点:
-
性能依赖性:ICP 的有效性高度依赖于底层回归模型的表现。如果底层模型没有很好地拟合数据,ICP 生成的预测区间可能会太宽。
-
可交换性假设:ICP 的有效性保证依赖于可交换性的假设,这在许多现实场景中可能不成立(例如,处理时间序列数据时)。
-
适应性不足:与我们在本章后面将要介绍的如一致性量化回归(CQR)和 jackknife+ 方法等其他一致性预测方法不同,ICP 并非本质上具有适应性。它不会动态调整以适应数据的复杂度或结构。例如,它不会自然地在模型更自信的数据区域产生更窄的区间,在模型不太自信的数据区域产生更宽的区间。
在接下来的章节中,我们将深入探讨最流行的一致性预测模型之一——CQR。这是一种将一致性预测的鲁棒性与量化回归的精度相结合的复杂技术。这种融合促进了可靠预测区间的生成,并确保这些区间以最佳方式调整以高概率包含真实值。通过利用一致性预测和量化回归的优势,CQR 成为了构建良好校准预测区间的强大工具,从而增强了预测模型的可解释性和可信度。随着我们进入这一节,我们将揭示 CQR 的机制,阐明其优势,并展示其在现实世界预测场景中的应用。
CQR 的力学
在上一节中,我们观察到 ICP 生成的是宽度均匀的预测区间。因此,它不会对异方差数据进行自适应调整,其中响应变量的变异性在不同数据区域并不恒定。
在许多情况下,不仅确保最终样本中的有效覆盖至关重要,而且生成输入空间中每个点的最简洁预测区间也是有益的。这有助于保持这些区间的信息量。当处理异方差数据时,模型应能够调整预测区间的长度以匹配特征空间中每个点的局部变异性。
CQR(由 Yaniv Romano、Evan Patterson 和 Emmanuel Candes 开发,并在论文《一致性量化回归》中发表arxiv.org/abs/1905.03222)是最受欢迎和最广泛采用的一致性预测模型之一。它专门设计用来解决适应性需求,通过采用量化回归作为基础回归模型。
罗杰·科恩克开发了分位数回归——一种统计方法,它根据一组特征估计响应变量的条件分位数。与经典回归不同,经典回归侧重于估计条件均值,而分位数回归通过估计指定的分位数,提供了预测变量和响应变量之间关系的更完整图景。分位数回归通过允许分位数调整到数据的局部变异性,提供了适应性。这在数据异方差时尤为重要,意味着响应变量的方差在预测变量的范围内变化。然而,与符合预测框架中的模型不同,分位数回归没有自动的有效性保证。
通过将分位数回归的概念与符合预测框架相结合,CQR 继承了符合预测在有限样本中的分布自由有效性保证,以及分位数回归的统计效率和适应性。
将符合预测与分位数回归相结合以创建 CQR,与现有方法相比提供了几个优势:
-
符合预测是一种构建预测区间的方法,在有限样本中实现有效的覆盖,而不做分布假设。这意味着 CQR 产生的预测区间保证以一定的概率包含真实响应值,无论数据的潜在分布如何。
-
分位数回归提供了一种灵活且高效的方法来估计响应变量的条件分位数,这使得 CQR 能够根据数据的局部变异性调整预测区间的长度。这种适应性在数据异方差时尤为重要,意味着响应变量的方差在预测变量的范围内变化。通过在预测空间中的每个查询点估计条件分位数,CQR 可以构建比经典回归方法获得的预测区间更短、更具有信息量的区间。
-
根据论文《符合化分位数回归》中发布的结果,CQR 倾向于产生比 ICP 更短的区间,并且具有适应性。这是因为 CQR 可以使用分位数回归调整预测区间的长度,以适应数据的局部变异性。
我们现在将描述 CRQ 的机制,从经典分位数回归开始。
分位数回归
分位数回归是一种统计方法,它根据一组预测变量(特征)估计响应变量的条件分位数。与经典回归不同,经典回归侧重于估计条件均值,而分位数回归通过估计整个条件分布,提供了预测变量和响应变量之间关系的更完整图景。
从高层次来看,分位数回归最小化一个损失函数,该函数衡量观察到的响应值与预测分位数之间的差异。在分位数回归中使用的损失函数通常是指示球损失,这是一个分段线性函数,在指定的分位数水平上对残差赋予更大的权重:

图 7.3 – 指示球损失函数的可视化,其中 y=y_hat
在底层,分位数回归可以使用各种算法实现,包括线性分位数回归、神经网络、分位数随机森林和梯度提升方法。
估计分位数回归中的不确定性的一个常见策略是计算测试数据集中每个 X 值的下分位数(q_lo)和上分位数(q_hi),然后输出[q_lo, q_hi]作为预测区间。虽然这种方法有时可以表现良好并适应异方差性,但它并不保证实现所需的覆盖范围。如果没有对最终样本的这种保证,使用此类策略的结果可能会灾难性,尤其是在医疗保健、金融和自动驾驶等关键应用中。这一点由论文中的实验结果得到证实,这些结果表明神经网络产生的预测区间可能会显著低估实际值。
存在多种方法可以提供分位数回归的渐近一致结果,包括对于相关方法如分位数随机森林。然而,这些方法中没有任何一种在最终样本中提供有效性保证。
CQR
在前面的章节中,我们讨论了符合预测(无论是其传递形式还是归纳形式)如何在最终样本中提供有效性保证。虽然符合预测的两种变体都可以应用于分位数回归,但由于 ICP(局部一致性预测)的广泛应用,我们将仅关注 CQR(条件分位数回归)中 ICP 的应用。
下面的图来自arxiv.org/abs/1905.03222,展示了标准 ICP 模型(称为分割符合性)产生的预测区间、其局部自适应变体和 CQR 之间的比较:

图 7.4 – 在具有异常值的模拟异方差数据上的预测区间 – (a) 标准分割符合性方法,(b) 其局部自适应变体,和(c) CQR。区间长度作为 X 的函数在(d)中显示。目标覆盖率为 90%
异方差数据集,包含异常值,通过三种不同的方法建模,所有方法都实现了用户指定的 90% 覆盖率。正如我们在讨论 ICP 时所讨论的,ICP(分割符合性)生成恒定宽度的预测区间,表明其非自适应性质。ICP 的局部加权变体显示出部分自适应。然而,CQR 是完全自适应的,并且显著地产生了平均长度最短的预测区间。
让我们描述 CQR 所涉及到的步骤:
-
将数据分为适当的训练集和校准集。适当的训练集用于拟合分位数回归模型,而校准集用于构建预测区间。
-
使用任何分位数回归算法(如随机森林或深度神经网络)将分位数回归模型拟合到适当的训练集。这一步涉及估计给定预测变量的响应变量的条件分位数。
-
计算符合性分数,该分数量化了从分位数回归得到的预测区间[
q_lo,q_hi]所犯的错误,通过使用 E i : = max{ ˆ q α lo(X i) − Y i, Y i − ˆ q α hi(X i)}来计算非符合性分数。非符合性分数可以这样解释——如果实际标签 y 落在区间的下限以下,非符合性分数对应于 y 到下限的距离。相反,如果 y 超过上限,非符合性分数是 y 到上限的距离。然而,如果实际标签 y 在区间内,非符合性分数被认为是负数,并对应于 y 到最近边界的距离。 -
通过使用 E i 的经验分位数来计算每个测试点的预测区间。
预测区间公式的最后一步如下:
C(X n+1) = [ ˆ q α lo(X n+1) − Q 1−α(E, ℐ 2), ˆ q α hi(X n+1) + Q 1−α(E, ℐ 2)]
在这里,Q 1−α(E, ℐ 2) : = (1 − α)(1 + 1 / |ℐ 2|) 是 E i 的经验分位数,ℐ 2 是校准集,而 |ℐ 2| 只是一个数学符号,表示校准集中的元素数量。
这里的符合性预测思想与我们之前在 ICP 中所做的是相似的——我们简单地使用校准集来计算某种形式的非符合性度量,然后使用非符合性度量的分位数来产生围绕训练的点预测模型预测点的预测区间。唯一的区别是,我们不是调整回归模型产生的点预测,而是调整由基础统计、机器学习或深度学习模型产生的分位数。否则,考虑到我们已描述的非符合性度量定义,分位数计算的思想和机制与 ICP 相同。
论文中的关键结果是,如果数据可交换,那么由分割(归纳)CQR 算法构建的预测区间满足有效性属性——也就是说,ℙ{Y n+1 ∈ C(X n+1)} ≥ 1 − α。
这就像在所有其他一致性预测模型中一样,意味着给定用户指定的置信水平 1 − α,实际值y落在构建的预测区间内的概率保证超过 1 − α。所以,如果指定的用户置信度为 90%,实际点保证有 90%的时间落在预测区间内。
另一个额外的好处是,如果非一致性得分 E i 几乎肯定不同,那么覆盖度也有界,即ℙ{Y n+1 ∈ C(X n+1)} ≤ 1 − α + 1 _ |ℐ 2| + 1,其中|ℐ 2|是校准数据集的大小。例如,对于校准数据集中的 500 个点,覆盖度保证在 90%和~90.2%之间。
总结来说,CQR 与 ICP 相比,往往产生更短的区间。这是因为 CQR 使用分位数回归调整预测区间的长度以适应数据的局部变化,这在数据异方差时尤为重要。
总体而言,CQR 中将一致性预测和分位数回归相结合提供了一个强大且灵活的框架,用于构建既无分布依赖又适应异方差的预测区间。
Jackknife+
现在我们将描述另一种广泛使用的回归一致性预测方法,称为 Jackknife+。Jackknife+技术的描述与开创性论文《使用 Jackknife+进行预测推理》中概述的细节紧密一致,在该论文中首次介绍了这种方法。
我们的目标是将回归函数拟合到训练数据上,该数据由特征对(X**i, Y**i)组成。我们的目标是给定新的特征向量 Xn+1=x,预测输出 Yn+1,并为这个测试点生成相应的置信区间。我们要求该区间包含在指定的目标覆盖度下真实的 Yn+1——也就是说,1 − α : ℙ{Y n+1 ∈ C(X n+1)} ≥ 1 − α。
一个简单的解决方案可能是使用在训练数据上拟合的底层回归器的残差,|Y i − ˆ μ (X i)|,并计算残差的分位数来估计新测试点的预测区间宽度,如下所示:
ˆ μ (X n+1) ± ( |Y 1 − ˆ μ (X 1)|的(1 − α)分位数, … , |Y n − ˆ μ (X n)|)
然而,在实践中,这种方法将低估不确定性,因为训练集上的残差通常小于未见过的测试数据上的残差。
为了避免过拟合,统计学家开发了一种称为“刀切法”的稳健技术。这种方法最初是为了减少偏差和估计方差而设计的。它通过迭代地从数据集中省略一个观测值并重新计算模型来工作。这为评估模型对单个数据点的稳定性和弹性提供了一个经验方法:

图 7.5 – 刀切预测方法的示意图
刀切回归
每次执行刀切回归时,它都会将模型拟合到所有数据点,除了由(Xi, Yi)指定的那个。这个过程使得刀切回归可以估计出单个数据点留下的残差,表示为|Y i − ˆ μ −i(X i)|。通过将这些单个数据点留下的残差视为非一致性分数,我们可以估计出 1 − α分位数,并形成类似于 ICP 的预测区间。从概念上讲,这种方法有望实现所需的覆盖范围,因为它有效地解决了过拟合的问题。这是因为残差|Y i − ˆ μ −i(X i)|是在样本外的方式下计算的,因此提供了对模型性能的更现实评估。
然而,刀切程序并没有普遍的理论保证,在某些情况下可能具有较差的覆盖特性,尤其是当数据高度偏斜或具有重尾时。尽管在刀切回归算法的渐近设置或稳定性假设下有统计结果,但很明显,在刀切估计量不稳定的情况下,刀切方法可能导致预测覆盖范围的损失。
在某些情况下,刀切方法甚至可以有零覆盖,这意味着真实值不包含在估计的预测区间内。此外,刀切方法可能计算量很大,因为它需要在减少的数据集上多次拟合模型。
这些挑战促使人们创造了一种改进的变体,称为刀切+。这种方法不仅旨在加强原始刀切方法的覆盖特性和计算效率,而且与符合预测方法家族保持一致。因此,刀切+从符合预测框架的所有稳健特性中受益。它保证了即使在任何大小的最终样本中也能保证有效性,表现出无分布的特性,并且足够灵活,可以应用于任何回归模型。
构建预测区间时,jackknife 方法和 jackknife+方法之间的主要区别在于,jackknife+方法在测试点使用留一法预测来解释拟合回归函数的变异性,以及除了 jackknife 方法使用的留一法残差分位数外。这种改进使得 jackknife+方法能够为任何将训练点对称对待的算法提供严格的覆盖保证,无论数据点的分布如何。相比之下,原始的 jackknife 方法在没有稳定性假设的情况下不提供理论保证,有时可能具有较差的覆盖特性。留一法预测捕捉了在目标点拟合模型预测的不确定性,使区间能够根据模型变异性进行调整。相比之下,原始的 jackknife 方法在没有稳定性假设的情况下不提供理论保证,有时可能具有较差的覆盖特性。
jackknife+方法与 Vovk 提出的交叉一致性预测有关,因为这两种方法都旨在构建提供严格覆盖保证的预测区间,无论数据点的分布如何,对于任何将训练点对称对待的算法。
然而,jackknife+方法与交叉一致性预测不同,因为它在测试点使用留一法预测来解释拟合回归函数的变异性以及交叉一致性预测中使用的留一法残差的分位数。
Jackknife+回归
回顾一下,ICP 在用户指定的 1 − α置信水平下提供有效性保证,并且由于它不需要重新训练基础回归模型,因此在计算上非常高效。然而,这些优势是以需要将数据分成单独的校准数据集为代价的。由于这减少了可用于训练基础回归器的数据量,可能会导致回归模型拟合度降低,从而预测区间变宽,尤其是在原始数据集较小的情况下。相反,如果校准集较小,可能会导致更高的变异性。
Jackknife+是对 jackknife 的一种改进。与 jackknife 类似,我们对数据集中的每个点n进行n次回归器的拟合:
ˆμ−i = 𝒜((X1, Y1), … , (Xi−1, Yi−1), (Xi+1, Yi+1), … , (Xn, Yn))
jackknife 方法和 jackknife+方法之间的主要区别在于,后者除了使用 jackknife 方法使用的留一法残差分位数外,还在测试点使用留一法预测。
Jackknife+方法生成的预测区间利用分位数来构建预测区间。然而,它不仅检查留一法预测错误的分位数,还考虑了回归模型对 X n+1 点预测产生的n个预测。这种方法有效地扩大了预测模型的范围,同时考虑了误差估计和个别预测:
ˆ C n,α Jackknife +(X n+1) = [ ˆ q n,α − { ˆ μ −i(X n+1) − R i LOO}, ˆ q n,α + { ˆ μ −i(X n+1) + R i LOO}]
将此公式与 Jackknife 的公式进行比较:
ˆ C n,α Jackknife (X n+1) = [ ˆ q n,α − { ˆ μ (X n+1) − R i LOO}, ˆ q n,α + { ˆ μ (X n+1) + R i LOO}]
Jackknife 和 Jackknife+之间的显著差异在于对 X n+1 测试点进行点预测的方式。虽然 Jackknife 模型只进行一次预测,但 Jackknife+模型进行n次预测,每次将模型拟合到n-1个数据点,同时每次排除一个点。
这种结构有效地适应了回归算法中可能的不稳定性,这是一个以前阻碍 Jackknife 实现理论有效性保证的问题。在回归模型对训练数据高度敏感的情况下,输出可能会显著变化。因此,Jackknife+提供了一个更加细致和灵活的预测模型,以适应数据可能的变化。
下图展示了 Jackknife 和 Jackknife+模型产生的预测区间的比较图:

图 7.6 – Jackknife 和 Jackknife+模型产生的预测区间
在回归算法稳定的情况下,两种模型的表现相当相似,提供的经验覆盖度大约等于 1 − α。然而,在回归模型不稳定且对训练数据敏感的情况下,以至于删除单个数据点可以显著改变 X n+1 处的预测值,两个模型的输出可能会显著偏离。
与缺乏理论有效性保证的 Jackknife 方法相反,Jackknife+模型即使在最坏的情况下也能保证至少 1-2\alpha 的覆盖度。此外,在大多数实际场景中,除非涉及不稳定的实例,否则预计 Jackknife+模型将提供 1-\alpha 的经验覆盖度,使其成为不确定性预测的稳健方法。
虽然 Jackknife 方法提供了一种计算非一致性分数的稳健方法,但它具有显著的计算开销,因为它需要为校准集中的每个实例重新训练模型。这就是 Jackknife+方法出现的地方。
jackknife+方法通过允许在不重新训练校准集中的每个实例的情况下计算非一致性分数,从而改进了 jackknife 方法。这是通过调整非一致性分数的计算来考虑每个示例对模型预测的影响来实现的。
首先,jackknife+方法在完整训练数据集上训练模型。然后,对于校准集中的每个实例,该方法计算一个调整后的预测,该预测近似于在训练模型时省略该实例所做出的预测。每个实例的非一致性分数是其实际值与调整后预测之间的绝对差。
Jackknife+方法的主要优点是计算效率,因为它不需要为校准集中的每个实例重新训练模型。
一致预测分布
一致预测分布(CPD)是一种创新方法,它将一致预测的原则应用于生成预测分布。这些分布提供了对预测不确定性的全面视图,不仅提供了区间估计,而且还提供了所有潜在结果的完整分布。
CPD 的概念首次在论文《基于一致预测的非参数预测分布*》(link.springer.com/article/10.1007/s10994-018-5755-8)中提出,作者为 Vladimir Vovk、Jieli Shen、Valery Manokhin 和 Min-ge Xie。在这篇论文中,作者将一致预测应用于在非参数假设下推导有效的预测分布。
在随后的论文《具有核的一致预测分布》(arxiv.org/abs/1710.08894)中,作者 Vladimir Vovk、Ilia Nouretdinov、Valery Manokhin 和 Alex Gammerman 回顾了统计学中预测分布的历史,并讨论了两个关键发展。第一个是将预测分布集成到机器学习中,第二个是将预测分布与核方法相结合。
在论文《交叉一致预测分布》(proceedings.mlr.press/v91/vovk18a.html)中,作者 Vladimir Vovk、Ilia Nouretdinov、Valery Manokhin 和 Alexander Gammerman 将 CPD 扩展到任何底层模型,无论是统计模型、机器学习模型还是深度学习模型。
归纳(分割)一致预测系统是一致预测系统的计算高效版本,在回归问题中为测试观察值的标签输出概率分布。这些系统提供了在决策中可能有用的额外信息。
交叉一致性预测系统是符合预测的一种新颖应用,它促进了自动决策。它们建立在分割一致性预测系统之上,虽然在原则上可能会失去其有效性,但在实践中通常满足有效性要求。因此,交叉一致性预测系统与传统的一致性预测器不同,它们是更高效的计算版本,可用于自动决策。
下一个图展示了单个测试实例的 CPD 预测过程:

图 7.7 – CPD
让我们在实践中应用这些概念;我们将使用笔记本 Conformal Prediction for Regression (github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_07.ipynb)。
我们将遵循 MAPIE 教程进行 CQR。该数据集的目标变量是加利福尼亚地区的房屋中位数价值。该数据集包括八个特征,包括房屋的年龄、社区的 median 收入、平均房间或卧室数量,甚至经纬度位置。总共有大约 20k 个观测值。我们计算了特征之间的相关性,以及特征与目标之间的相关性。从分析中可以看出,房价与社区 median 收入的相关性最为显著:

图 7.8 – 加利福尼亚房价 – 相关系数矩阵
我们还可以绘制房价的分布:

图 7.9 – 加利福尼亚房价 – 房价直方图
现在,我们可以训练和优化底层模型:
estimator = LGBMRegressor(objective='quantile', alpha=0.5, random_state=random_state)
params_distributions = dict(
num_leaves=randint(low=10, high=50),
max_depth=randint(low=3, high=20),
n_estimators=randint(low=50, high=300),
learning_rate=uniform()
)
optim_model = RandomizedSearchCV(
estimator,
param_distributions=params_distributions,
n_jobs=-1,
n_iter=100,
cv=KFold(n_splits=5, shuffle=True),
verbose=0
)
optim_model.fit(X_train, y_train)
estimator = optim_model.best_estimator_
使用多种方法产生概率预测,包括 CQR 和一种 jackknife 变体。
我们可以绘制使用不同方法产生的结果:

图 7.10 – 使用各种方法预测加利福尼亚房价
我们观察到,与其他保持固定区间宽度的方法相比,CQR 的预测区间具有更高的灵活性。具体来说,随着价格的上升,预测区间相应地扩大。为了证实这些观察结果,我们将检查这些区间内的条件覆盖和区间宽度,按分位数进行分段:

图 7.11 – 根据价格水平对分箱房价的预测区间覆盖
如我们所见,CQR 在调整较大价格方面更为熟练。其条件覆盖率与较高价格和较低价格下的目标覆盖率紧密一致,在其他方法超过必要覆盖率的地方。这种适应性可能会影响区间的宽度。
我们还可以按分箱绘制区间宽度:

图 7.12 – 根据房价水平通过分箱房价预测区间宽度
现在,我们可以使用相同的笔记本来查看 CPD 的实际应用:
-
我们将使用 Crepes 包来演示 CPD 的使用。有关 Crepes 包的快速入门指南,请参阅 https://github.com/henrikbostrom/crepes。我们将使用 Crepes 中的
WrapRegressor类包装标准的随机森林回归器,并以通常的方式将其拟合到适当的训练集:rf = WrapRegressor(RandomForestRegressor())rf.fit(X_prop_train, y_prop_train) -
然后,我们将使用校准集校准回归器:
rf.calibrate(X_cal, y_cal) -
符合性回归器现在已准备好生成测试集的预测区间,使用 99%的置信水平。输出将是一个 NumPy 数组。每一行对应一个测试实例,有两列表示每个预测区间的下限和上限:
rf.predict_int(X_test, confidence=0.99) -
我们可以指定我们希望修剪区间以省略不可能的值 – 在这个场景中,值低于 0。使用默认的置信水平(0.95),生成的输出区间将稍微更简洁:
rf.predict_int(X_test, y_min=0) -
我们将使用
crepes中的DifficultyEstimator()来使区间更适应。在这里,难度是通过校准集中每个对象的适当训练集中默认 k=25 最近邻的目标的标准差来估计的。首先,我们将获得校准集的难度估计:de = DifficultyEstimator()de.fit(X_prop_train, y=y_prop_train)sigmas_cal = de.apply(X_cal) -
这些现在可以用于校准,这将产生一个归一化的符合性回归器:
rf.calibrate(X_cal, y_cal, sigmas=sigmas_cal) -
我们还需要测试集的难度估计,我们将它作为输入提供给
predict_int:sigmas_test = de.apply(X_test)crepes_predictions = rf.predict_int(X_test, sigmas=sigmas_test, y_min=0)我们将得到以下输出:

图 7.13 – 实际值与预测值以及预测区间覆盖率的比较
Crepes 包中的 CPD(符合性预测系统)
CPD 产生累积分布函数(符合性预测分布)。这不仅允许我们创建预测区间,还使我们能够推导出特定目标值的百分位数、校准点预测和p值。让我们探索如何实现这一点。
所需的唯一修改是将cps=True传递给calibrate方法:
-
例如,我们可以通过向
calibrate方法提供bins和sigmas来建立归一化的 Mondrian 符合性预测系统。在这种情况下,我们将检查由分箱点预测形成的 Mondrian 类别:bins_cal, bin_thresholds = binning(rf.predict(X_cal), bins=5)rf.calibrate(X_cal, y_cal, sigmas=sigmas_cal, bins=bins_cal, cps=True) -
通过为测试对象提供
bins(和sigmas),我们可以通过使用predict_cps方法利用正则预测系统进行预测。此方法提供了对输出的灵活控制。在此实例中,我们寻求获得 95%置信水平的预测区间:bins_test = binning(rf.predict(X_test), bins=bin_thresholds)rf.predict_cps(X_test, sigmas=sigmas_test, bins=bins_test,lower_percentiles=2.5, higher_percentiles=97.5, y_min=0) -
我们可以通过设置
return_cpds=True来指示predict_cps方法返回每个测试实例的完整 CPD,这些 CPD 由阈值值界定。这些分布的结构根据正则预测系统的类型而有所不同。对于标准化和归一化的 CPS,输出是一个数组,每行对应一个测试实例,每列对应一个校准实例(残差)。相反,对于 Mondrian CPS,默认输出是一个向量,每个测试实例有一个 CPD,因为值数量可能在类别之间波动:cpds = rf.predict_cps(X_test, sigmas=sigmas_test, bins=bins_test, return_cpds=True) -
我们可以绘制测试集中随机对象的 CPD:

图 7.14 – 测试对象的 CPD
摘要
本章探讨了回归问题的不确定性量化,这是数据科学和机器学习的一个关键方面。它强调了不确定性的重要性以及有效处理不确定性的方法,以做出更可靠的预测和决策。
本章的一个重要部分是介绍可用于生成预测区间的各种方法。它系统地分解并解释了不同的方法,阐明了每种方法的工作原理及其优缺点。这种详细分析有助于理解这些方法背后的机制及其在现实世界回归问题中的实际应用。
此外,本章讨论了使用正则预测来构建预测区间和预测分布。我们提供了构建这些区间和分布的逐步指南。本章还提供了关于如何有效地利用正则预测在回归问题中实现更可靠和可信预测的实际见解和建议。
此外,我们还深入探讨了高级主题,如 CQR、jackknife+和 CPD。这些高级技术被详细分解和解释,帮助您掌握它们的复杂性和在处理回归问题中的实用性。
在本章中,实际演示至关重要,它提供了实际经验和见解。本章利用房价数据集来展示所讨论的模型和技术应用。MAPIE 和 Crepes 等库被应用于数据集,为您提供超越理论理解的实用知识和经验。
总结来说,本章提供了一本全面且实用的指南,涵盖了与不确定性量化、预测区间和回归问题的同构预测相关的各种主题。使用真实世界的数据集和库的实例说明进一步增强了学习体验,使本章成为任何希望深化对这些关键领域理解和加强技能的人的有价值资源。
第八章:时间序列和预测的一致性预测
在本章中,我们将探索时间序列和预测中的激动人心的一致性预测领域。一致性预测是生成点预测模型的预测区间(PIs)的强大工具,我们将向您展示如何使用开源库应用这项技术到您的数据中。本章将带您从理解时间序列中不确定性量化(UQ)的基础到预测中一致性预测背后的复杂机制进行一次旅行。
通过本章,您将牢固地理解生成 PIs 的各种方法,并将能够使用一致性预测构建您的 PIs。
在本章中,我们将涵盖以下主要主题:
-
时间序列和预测问题的 UQ
-
预测应用中 PI 的概念
-
生成 PIs 的各种方法
-
时间序列和预测的一致性预测
到本章结束时,您将能够将所讨论的概念和开源工具应用到您的行业应用中,提供具有明确不确定性界限的稳健预测。这些课程将提高您的预测能力,通过允许您向预测添加置信度度量,使您的模型更具优势。
时间序列和预测问题的 UQ
UQ 不仅仅是时间序列预测中的复杂补充;它是一个基本方面,为预测的本质提供了宝贵的见解。让我们看看为什么它很重要,以及其发展的简要历史。
UQ 的重要性
UQ 是时间序列预测的一个关键组成部分。虽然预测模型可能在平均意义上提供准确的预测,但理解这些预测的不确定性同样至关重要。有几个关键原因说明为什么正确量化不确定性对于实际时间序列预测至关重要:
-
风险评估:在许多领域,如金融、医疗保健和环境科学,预测与决策紧密相连。理解预测的不确定性有助于评估潜在风险,从而实现明智的决策。
-
模型置信度:UQ 提供了对每个模型预测的置信度的理解。这可能导致更精细的模型选择,并有助于识别模型可能表现不佳的领域。
-
资源优化:通过承认不确定性,资源可以更优化地分配。例如,了解供应链管理中需求预测的不确定性可能导致更好的库存管理。
-
合规性监管:在某些行业中,监管机构可能要求量化预测的不确定性,这强调了系统化 UQ 方法的重要性
在确立了不确定性量化(UQ)的关键作用后,我们现在转向其演变过程。
UQ 的历史
提供可靠的不确定性度量与时间序列预测并行的需求早已被认识到。几十年来,统计和计算方法的发展使得量化不确定性的更复杂方法成为可能。以下是一些重要的历史发展:
-
早期统计方法:时间序列中 UQ 的根源可以追溯到早期的统计模型。例如,PIs(预测区间)等技术被应用于为预测提供界限。
-
贝叶斯方法:贝叶斯方法为 UQ 带来了概率视角,允许进行更细致的不确定性描述。贝叶斯预测模型结合先验信念和似然函数来创建后验分布,全面地表示不确定性。
-
自助法和重采样:如自助法等技术使 UQ 无需强烈的参数假设,使其对更复杂的模型变得可访问。
我们所探讨的历史发展为我们理解时间序列分析中的 UQ 提供了关键的基础。现在,让我们更深入地探讨那些早期统计技术,看看它们是如何使量化预测不确定性的第一步成为可能的。
早期统计方法——时间序列中 UQ 的根源
UQ(不确定性量化)一直是统计分析的关键部分,其在时间序列预测中的作用也并无不同。统计建模的早期阶段为理解预测中的不确定性奠定了基础,并开发了各种技术来为预测提供界限。在这里,我们将探讨这些早期统计方法,并了解它们是如何为现代时间序列分析中的 UQ 理解铺平道路的。
时间序列预测中 UQ 的一个开创性贡献是置信区间的概念:
-
小样本的 t 分布:在处理小样本量时,t 分布提供了更准确的区间,考虑到由于数据有限而增加的不确定性。
-
自回归模型的区间估计:为时间序列模型如 ARIMA 开发了特定技术,其中可以推导出参数和预测的置信区间。
除了置信区间,还开发了预测界限来封装与未来观测相关的不确定性。这些界限考虑了模型参数的不确定性和未来误差的随机性:
-
预测误差方差:通过估计预测误差方差,可以在预测值周围创建界限。
-
预测误差分解:开发了将预测误差分解为各种组件的技术,从而为不确定性的来源提供了洞察。
虽然这些早期方法具有高度的影响力,但它们通常依赖于对潜在分布和模型结构的强烈假设。这些技术的参数性质使得它们在处理复杂、非线性时间序列数据时不够灵活:
-
非参数方法:认识到这些局限性导致了非参数方法的发展,这些方法不依赖于特定的分布假设
-
稳健的统计技术:还努力创造更稳健的统计方法,能够处理异常值和非恒定方差,扩展了早期 UQ 方法的范围
时间序列不确定性量化(UQ)的早期统计方法为该领域的后续进步奠定了基础。这些技术中嵌入的原则,如置信区间和预测界限,仍然是现代 UQ 方法的核心。它们代表了一种经过构建和改进的遗产,导致了当前理解时间序列预测中不确定性的各种方法。
现在,让我们深入探讨一些早期的统计技术,看看它们是如何使预测不确定性的量化迈出第一步的。
现代机器学习方法
前几节探讨了时间序列预测不确定性量化(UQ)的早期统计基础。虽然这些技术具有开创性,但它们在很大程度上依赖于参数假设和简单的模型结构。现代机器学习的兴起使得量化不确定性的方法更加灵活和稳健,克服了传统方法的一些局限性。让我们看看这个领域的关键创新:
-
现代机器学习方法:随着机器学习的兴起,开发了诸如 dropout 和集成方法等技术来量化不确定性。
-
符合预测:最近,符合预测已成为 UQ 的一个稳健框架。它提供了一种非参数方法,在温和的假设下保证有效的 PI。
UQ 对于时间序列预测至关重要。它丰富了预测的理解,促进了更好的决策,并符合监管要求。随着时间的推移,UQ 的演变导致了多样化的方法,每种方法在不同的环境中都增加了价值。
本章稍后将探讨的符合预测(conformal prediction)的最近出现代表了该领域的一个重要进步,提供了稳健且普遍适用的不确定性度量。
总结来说,灵活的机器学习技术的出现使得 UQ 有了新的稳健方法,克服了早期统计方法的局限性。这种演变为量化时间序列预测中的不确定性提供了一套多样化的工具箱。
接下来,我们将探讨 PI 背后的概念,这是传达预测不确定性的基础。
预测应用中 PI(预测区间)的概念
PIs 是预测中的关键工具,提供了一系列可能值,其中未来观测值很可能会发生。与只给出一个最佳估计值的点预测不同,PIs 传达了该估计值周围的不确定性。
本节探讨了 PIs 背后的基本概念及其在各个预测应用中的重要性。
定义和构建
PIs 围绕一个预测点构建,以表示未来观测值预期落在其中的范围,并具有给定的置信水平。例如,95%的 PI 意味着在 100 个未来观测值中,有 95 个预期将落在定义的范围内。
PIs 可以采取多种形式,具体取决于生成它们的方法。以下有两个关键的区别因素:
-
对称与不对称区间:PIs 可以是对称的,即边界与预测点等距,或者是不对称的,反映不同方向上的不同不确定性
-
参数方法与非参数方法:PIs 可以使用参数方法(例如,假设正态分布)或非参数方法创建,具体取决于数据分布的潜在假设
预测应用的重要性
PIs 在各个预测领域扮演着至关重要的角色,原因如下:
-
决策制定:PIs 使决策者能够评估风险和机遇——例如,它们允许投资者评估资产的波动性
-
模型评估:将实际观测值与 PIs 进行比较可以是模型诊断检查的一部分,有助于评估模型在捕捉不确定性方面的充分性
-
优化运营:在供应链管理中,PIs 可以通过反映需求预测的不确定性来帮助优化库存
-
传达不确定性:PIs 有效地向非技术利益相关者传达不确定性,促进更细致的讨论和规划
挑战和考虑因素
虽然非常有价值,但构建准确可靠的 PIs 并非没有挑战:
-
假设敏感性:PIs 可能对关于数据分布的潜在假设敏感,错误的假设可能导致误导性的区间。
-
覆盖范围与宽度权衡:实现正确的覆盖概率(95%)往往与希望获得狭窄区间的愿望相竞争。较宽的区间可能覆盖所需的观测值百分比,但可能需要提供更多信息。
-
计算复杂性:一些构建 PIs 的方法可能计算密集,尤其是在大型数据集或复杂模型中。
PIs 是预测应用中不确定性量化(UQ)的核心,提供了对前景的更全面视角。它们支持战略决策,使模型评估成为可能,并促进对不确定性的有效沟通。理解 PIs 的概念和实践对于任何使用预测模型的人来说都是必不可少的,它提供了一种导航和利用预测未来结果固有不确定性的手段。
虽然 PIs 提供了无价的见解,但构建准确且信息丰富的区间并不总是那么简单,正如我们所看到的。然而,几十年的研究产生了各种技术来应对这些挑战。
生成 PIs 的各种方法
PIs 是预测中的基本工具,使从业者能够了解未来观测值可能落在的范围。已经开发出各种方法来生成这些区间,每种方法都有其优点、应用和挑战。本节将探讨创建 PIs 最突出的技术。
参数方法
参数方法对预测误差的分布做出具体假设以推导 PIs。这一类别中的一些标准技术如下:
-
正态分布假设:通过假设预测误差遵循正态分布,我们可以根据正态分布的标准误差和临界值计算对称的 PIs。
-
时间序列模型:例如 ARIMA 和指数平滑等模型可以通过对潜在随机过程建模并使用估计的参数来生成预测区间(PIs)。
-
广义线性模型(GLMs):GLMs 将线性模型扩展到非正态分布,从而允许更灵活地构建 PIs。GLMs 将线性回归扩展到除了正态分布以外的响应变量。GLMs 使我们能够对具有非正态响应的数据进行建模,例如二元、计数或分类结果。与线性模型一样,GLMs 通过链接函数和线性预测器将均值响应与解释变量相关联。然而,响应分布可以是非正态的,通过指数族对数似然函数进行处理。以下是 GLMs 的一些常见示例:
-
二元分类的逻辑回归(logit 链接,二项分布)
-
泊松回归用于计数数据(log 链接,泊松分布)
-
多项式回归用于分类响应(logit 链接,多项分布)
-
GLMs 估计每个特征的系数,就像普通线性回归一样。然而,通过扩展响应分布和链接函数,它们可以模拟回归式预测所需的非正态过程,目标是非连续的。
它们的灵活性使 GLMs 在构建比标准线性回归更广泛的问题的 PIs 时非常有用。这些区间包含了建模的响应分布。
非参数方法
非参数方法旨在构建 PI,而不对预测误差的分布做出严格假设。这一类别中的一些基本技术如下:
-
自助法:自助法涉及对观测数据进行重采样并估计预测的分布,从而可以推导出 PI
-
分位数回归:这种方法直接对响应变量的分位数进行建模,使得在无需特定分布假设的情况下构建 PI 成为可能
-
经验分位数:使用历史和经验分位数,我们可以构建无需参数假设的 PI
贝叶斯方法
贝叶斯统计框架通过明确建模不同来源的不确定性,提供了一种生成 PI 的概率方法。贝叶斯 PI 构建的两个关键技术如下:
-
贝叶斯预测模型:贝叶斯模型提供了一个概率框架,该框架捕捉了参数和预测中的不确定性,允许从后验分布中直接计算 PI
-
蒙特卡洛马尔可夫链(MCMC)采样:MCMC 采样可以用来模拟贝叶斯模型的后验分布,从而能够构建 PI
机器学习方法
现代机器学习模型的灵活性为以数据驱动的方式生成 PI 提供了新的机会。通过利用针对这些高度复杂和非线性模型量身定制的技巧,可以在不严格假设分布的情况下获得有效的 PI。让我们来看看一些机器学习方法:
-
集成方法:如随机森林和梯度提升机等技术可以通过使用单个集成成员的预测分布来创建 PI
-
神经网络分位数回归:神经网络可以被训练来预测特定的分位数,这构成了 PI 的基础
-
dropout 作为贝叶斯近似:在深度学习中,dropout 可以近似贝叶斯推理,从而允许进行不确定性量化(UQ)和 PI 构建
一致性预测
作为一种非参数、无分布框架,一致性预测可以与各种建模方法相结合以生成 PI。本章主要讨论使用一致性预测方法为时间序列预测模型生成 PI。
生成预测区间(PIs)是一个多方面的过程,针对不同的数据类型、模型和需求,有多种方法。从传统的统计方法到前沿的机器学习技术以及一致性预测,PI 构建领域丰富多彩。了解这些方法使从业者能够为他们的预测应用选择最合适的方法,在准确性、可解释性、计算效率和其他考虑因素之间取得平衡。无论是严格遵循参数假设还是探索灵活的非参数技术,这些方法都能为预测中固有的不确定性提供有价值的见解。
符合预测,一个用于生成点预测模型 PI 的稳健框架,已被广泛应用于时间序列和预测应用中。许多研究记录了各种符合预测模型在时间序列预测中的演变和流行。
时间序列和预测的符合预测
为时间序列预测创建可靠的 PI 一直是一个长期而复杂的挑战,直到符合预测的出现才得以解决。
这个问题在 2018 年 M4 预测竞赛中被强调,该竞赛要求参与者提供 PI 和点估计。
在题为《M4 竞赛中预测区间的结合》的研究论文中(www.sciencedirect.com/science/article/abs/pii/S0169207019301141),达登商学院的 Yael Grushka-Cockayne 和哈佛商学院的 Victor Richmond R. Jose 仔细审查了 20 个区间提交。他们评估了预测的校准和精度,并衡量了它们在不同时间跨度上的表现。他们的分析得出结论,提交的预测在准确估计不确定性方面是无效的。
集成批量 PI(EnbPIs)
由乔治亚理工学院的研究员陈旭和谢耀撰写的《动态时间序列的符合预测区间》(proceedings.mlr.press/v139/xu21h/xu21h.pdf),是第一篇将符合预测应用于时间序列预测的论文,并在 2021 年的著名会议 ICML 上展出。
EnbPI 是目前时间序列预测中符合预测最流行的实现之一。它已被实现于流行的开源符合预测库,如 MAPIE、Amazon Fortuna 和 PUNCC。
该研究介绍了一种为动态时间序列数据创建不受任何特定分布限制的 PI 的技术。EnbPI 方法包括一个自举集成估计器来制定顺序 PI。与需要数据可交换性的经典符合预测方法不同,EnbPI 不需要数据可交换性,并且专门为时间序列构建。
数据可交换性假设表明,数据集中观测值出现的顺序并不重要。然而,这个假设并不适用于时间序列,其中数据点的顺序至关重要。EnbPI 不依赖于数据可交换性,因此非常适合时间序列分析。
EnbPI 生成的 PI 在强混合随机误差的温和假设下,对于广泛的回归函数和时间序列具有有限样本、近似有效的边缘覆盖。此外,EnbPI 计算效率高,通过不需要数据拆分或训练多个集成估计器来避免过拟合。它还可以按顺序生成任意数量的 PI,非常适合广泛的回归函数。
时间序列数据是动态的,通常是非平稳的,这意味着统计属性会随时间变化。虽然存在各种用于预测时间序列的回归函数,例如使用提升树或神经网络结构的函数,但这些现有方法通常需要帮助构建准确的 PIs。通常,它们只能通过在时间序列的潜在分布上施加限制性假设来创建可靠的区间,这可能只有时是适当或可行的。
下面是构建 EnbPI 预测器的步骤简化版:
-
选择 bootstrap 集成估计器:任何 bootstrap 集成估计器都可以与 EnbPI 一起使用。
-
训练集成估计器:基础预测模型在从原始训练数据中抽取的不同 bootstrap 样本上多次训练,以生成集成。每个 bootstrap 样本是通过从训练集中有放回地采样创建的。这导致了一个具有略微不同训练数据的模型集成。
-
计算残差:对于 t = 1,…,T 中的每个点,使用未使用点t进行训练的集成估计器计算残差。目的是使用样本外误差作为非一致性度量,以指示预测的方差。所有这些样本外误差都被编译成一个单一的数组。
-
生成预测:集成估计器为测试数据生成点预测。
-
构建 PIs:PIs 是通过使用集成估计器的预测和选定的显著性水平构建的。像许多其他一致性预测方法一样,可以将指定置信水平的分位数应用于在步骤 3中创建的样本外误差分布。然后,使用训练的集成估计器生成的聚合点预测应用分位数值来创建 PIs。
为了展示 EnbPI 的实际应用,我们将使用 Amazon Fortuna (aws-fortuna.readthedocs.io/en/latest/index.html) 并遵循其示例,使用 EnbPI 进行时间序列回归,一种一致性预测方法 (aws-fortuna.readthedocs.io/en/latest/examples/enbpi_ts_regression.html)。您可以在本书的 GitHub 仓库中找到 Jupyter 笔记本,Chapter_08_EnbPI_ipynb.ipynb:github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_08_EnbPI.ipynb。让我们开始吧:
-
首先,我们将使用
pip install安装 Amazon Fortuna:!pip install aws-fortuna -
我们将使用 scikit-learn 上可用的
Bike sharing demand数据集:from sklearn.datasets import fetch_openmlbike_sharing = fetch_openml("Bike_Sharing_Demand", version=2, as_frame=True, parser="pandas") -
让我们检查数据集标题:

图 8.1 – 自行车共享需求数据集
数据集包含有关共享单车租赁的信息,包括温度、湿度和风速等附加信息。问题要求预测以租用自行车数量表示的共享单车需求。
- 我们可以按星期几和小时分组计算需求,并使用以下图表展示结果:

图 8.2 – 一周内平均每小时自行车需求
EnbPI 需要数据预取样 – 也就是说,对时间序列进行带替换的随机子集采样,并为每个样本训练一个模型。
- 我们可以测试
DataFrameBootstrapper类,并查看预取样数据样本的示例。例如,第一个预取样样本看起来是这样的:

图 8.3 – 预取样样本的示例
- 我们可以检查这个预取样样本中的重复项 – 由于预取样是带替换的,正如预期的那样,我们可以看到在预取样过程中一些对象被重复了:

图 8.4 – 预取样样本中的重复对象
-
我们现在可以为每个预取样样本训练模型。为了评估一致 PI,我们可以计算覆盖概率,这衡量了落在生成的区间内的测试观察值的百分比,并检查包含点预测的区间比例。
-
最终,我们评估了一致区间的维度,在这个没有在线反馈的场景中,EnbPI 假设所有区间都是均匀的。
包含实际目标的区间百分比是
0.95,而一致区间的尺寸是0.4446。
使用 EnbPI,我们根据用户定义的 0.95 置信度创建了 PI。与大多数其他 UQ 方法不同,这些方法往往无法满足用户指定的置信水平,一致预测满足用户要求。它始终生成与用户定义的置信水平一致的 PI。
让我们绘制预测图:

图 8.5 – 使用 EnbPI 的预测
EnbPI 模型擅长避免过拟合,确保计算效率,并且可以扩展以顺序产生多个 PI。在实践中,EnbPI 模型根据用户定义的置信水平创建 PI,确保其预测的可靠性。我们提供了使用 Amazon Fortuna 和来自 scikit-learn 的共享单车需求数据集的实用示例,展示了模型准确评估预测区间覆盖概率(PICP)和一致区间大小的能力。
NeuralProphet
NeuralProphet 是一个基于 PyTorch 的预测框架,它将传统方法的可解释性与深度学习模型的可扩展性相结合。它使用标准的深度学习技术进行训练,并为各种预测应用提供准确且可解释的结果。
该框架通过自回归和协变量模块引入局部上下文,这些模块可以设置为经典线性回归或神经网络。这使得 NeuralProphet 能够处理短期预测,同时捕捉变量之间的复杂非线性关系。自回归模块模型化目标变量对其过去值的依赖性,而协变量模块解决其对其他已知变量的依赖性。
NeuralProphet 被设计成用户友好,为初学者提供可靠的默认值和自动超参数,同时允许经验丰富的用户通过可选的模型定制输入领域知识。作为 Facebook Prophet 的继任者,它保留了基础组件,但提高了精度和可扩展性。
NeuralProphet 的基本模型组件包括趋势、季节性、节假日、自回归和协变量模块。这些加性组件可以通过趋势进行缩放以产生乘性效应。每个模块都有其输入和建模过程,但所有模块都必须产生 h 个输出,其中 h 是一次预测到未来的步数。
NeuralProphet 将符合预测技术纳入其预测工作流程,具体采用归纳(分割)符合预测(ICP)方法。关键步骤如下:
-
NeuralProphet使用这些数据来创建一个初始的预测区间(PI)。 -
NeuralProphet通过比较实际的目标变量值与预测输出,评估其预测的准确性。 -
NeuralProphet测量其预测中的不确定性。这是一个关键步骤,因为理解这种方差对于生成精确的预测区间是至关重要的。 -
NeuralProphet公式化最终的预测区间。此区间提供了一个范围,其中实际的未来值预计将在此范围内,具有预定义的置信水平。
NeuralProphet 将符合预测方法集成到其预测工作流程中,特别是采用 ICP 策略。这种方法能够为模型预测创建统计上稳健的不确定性集或区间,增强其可靠性和置信度。
让我们看看 NeuralProphet 在符合预测框架内用于建立预测区间的两种方法:
-
NeuralProphet为每个实例提供一个单独的输出,作为点估计,基于 50%分位数回归计算。NeuralProphet对象需要至少一个上分位数和下分位数对作为参数来创建置信区间。例如,对于实际值有 90%的概率落在估计区间内,置信水平设置为 0.9,定义两个分位数在 0.05 和 0.95,对应于预测分布的第 5 个和第 95 个分位数。 -
NeuralProphet模型,可以使用conformal_predict方法来生成符合性预测。NeuralProphet使用两种不确定性量化(UQ)的变体——朴素符合性预测和符合性分位数回归(CQR),我们在第七章中讨论过。
为了展示NeuralProphet如何使用符合性预测创建置信区间,我们将遵循 https://github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_08_NeuralProphet.ipynb 中的笔记本,该笔记本基于NeuralProphet教程中的 UQ(neuralprophet.com/how-to-guides/feature-guides/uncertainty_quantification.html)。
该数据集使用旧金山医院电力负荷数据集的电力负荷数据(github.com/ourownstory/neuralprophet-data)。
让我们看看数据集的标题:

图 8.6 – 旧金山医院负荷数据集
NeuralProphet需要以特定格式提供数据,其中包含名为ds的时间列和名为y的时间序列值。
让我们创建一个NeuralProphet对象,指定 0 到 1 之间的数据分割比率:
m = NeuralProphet()
train_df, test_df = m.split_df(df, freq="H", valid_p=1.0 / 16)
默认情况下,NeuralProphet的预测提供单一输出:每个实例的点估计。此估计是从 50%分位数回归中得出的。NeuralProphet对象需要至少一个上分位数和下分位数对作为其参数以建立置信区间。然而,在NeuralProphet模型中,我们可以根据需要定义多个分位数。
例如,假设我们想要使用 90%置信区间来预测医院的电力负荷。我们希望 90%的实际值落在生成的区间内。
我们可以训练一个分位数回归模型来预测三个分位数——第 5 个、第 50 个和第 95 个分位数。第 5 个和第 95 个分位数将提供 90%置信区间的下限和上限。第 50 个分位数将提供中位数预测点:
confidence_lv = 0.9
quantile_list = [round(((1 - confidence_lv) / 2), 2), round((confidence_lv + (1 - confidence_lv) / 2), 2)]
qr_model = NeuralProphet(quantiles=quantile_list)
qr_model.set_plotting_backend("plotly-static")
分位数回归在NeuralProphet中用于生成置信区间。它使用一个称为 pinball loss(也称为分位数损失)的专用损失函数来训练模型。
与简单的误差最小化不同,弹珠损失函数根据分位数不对称地加权误差。对于像 90%这样的上分位数,低估比高估受到更重的惩罚。对于像 10%这样的下分位数,情况正好相反。
这与分位数的内在含义相匹配 – 90%表示我们预计 90%的实际值将低于预测值。因此,实际值超过预测值的误差违反了这一点。
通过在训练过程中最小化不对称的弹珠损失,模型学习到反映实际值根据数据落在上方或下方的适当概率的分位数线。然后上下分位数形成预测区间。
现在,我们可以拟合模型并创建一个包含结果的 DataFrame,预测 30 个周期:
metrics = qr_model.fit(df, freq="H")
future = qr_model.make_future_dataframe(df, periods=30, n_historic_predictions=100)
forecast = qr_model.predict(df=future)
我们可以使用图表来可视化分位数回归的预测区间。实线表示中位数预测,而阴影区域表示下分位数线和上分位数线之间的区间。这代表在指定的置信水平下预期包含实际值的范围:

图 8.7 – 使用分位数回归预测医院电力负荷
总结来说,分位数回归允许 NeuralProphet 通过训练模型来预测作为区间边界的分位数来生成预测区间(PI)。弹珠损失函数使得基于分位数的不确定性量化(UQ)成为可能。
分位数回归依赖于建模假设,并需要指定感兴趣的分位数。接下来,我们将探讨 NeuralProphet 如何使用符合预测技术产生无分布的预测区间(PI)。
NeuralProphet 中的符合预测
NeuralProphet 采用拆分符合预测方法。这种方法需要保留一个或校准集。为了执行拆分符合预测,数据集必须分为三个集合:训练集、校准集和测试集。使用训练数据集训练的模型建立初始 PI。然后通过比较校准集的目标变量与预测值来评估不确定性。这种量化的不确定性随后被纳入预测值的两端,形成最终的符合预测区间。
在 NeuralProphet 中,您可以选择基于绝对残差的朴素方法或 CQR 进行符合预测。
使用数据拆分函数添加一个校准集:
train_df, cal_df = m.split_df(train_df, freq="H", valid_p=1.0 / 11)
您可以构建任何您认为合适的 NeuralProphet 模型作为基础模型。符合预测中的校准过程将随后添加到基础模型中,以量化最终估计中的不确定性。我们感兴趣的是了解符合预测如何影响不同的模型。
在我们的例子中,我们将比较简单分位数回归和复杂四层自回归模型在我们的图示中的符合预测结果。
我们将指定 72 小时作为滞后时间,并创建一个简单的分位数回归模型作为基础模型 1。我们还将创建一个四层自回归模型作为基础模型 2:
n_lags = 3 * 24
cp_model1 = NeuralProphet(quantiles=quantile_list)
cp_model1.set_plotting_backend("plotly-static")
cp_model2 = NeuralProphet(
yearly_seasonality=False,
weekly_seasonality=False,
daily_seasonality=False,
n_lags=n_lags,
ar_layers=[32, 32, 32, 32],
learning_rate=0.003,
quantiles=quantile_list,
)
cp_model2.set_plotting_backend("plotly-static")
在配置模型后,我们必须使用训练集拟合模型。假设您已经将训练数据集进一步分为训练集和验证集。在这种情况下,您可以将两个数据集连接为一个数据集进行训练,或者将训练集和验证集作为两个单独的参数分配。
将配置的 NeuralProphet 模型中的训练子集输入。然后,通过将 H 分配给 freq 参数来配置每小时频率:
set_random_seed(0)
metrics1 = cp_model1.fit(train_df, freq="H")
set_random_seed(0)
metrics2 = cp_model2.fit(train_df, freq="H")
让我们使用拟合的基础模型来预测测试数据集的点预测和分位数回归 PI:
forecast1 = cp_model1.predict(test_df)[n_lags:]
forecast2 = cp_model2.predict(test_df)[n_lags:]
选项 1 – 天真一致性预测
在训练基础模型后,我们可以使用天真模块进行校准过程。步骤如下:
-
预测校准集中实例的输出值。
-
通过比较校准集中每个观测值的实际值和预测值来计算绝对残差。
-
将所有残差按升序排序。
-
使用所需置信水平找到绝对残差分布的分位数。
-
使用绝对残差的分布的分位数来制作最终的 PIs。
返回到我们的例子,我们需要在预训练模型之上表示校准集的参数值和一致性预测的显著性水平(α):
Method = ""aïve"
alpha–= 1 - confidence_lv
我们现在可以使用预训练模型启用一致性预测。
naïve_forecast1 = cp_model1.conformal_predict(
test_df,
calibration_df=cal_df,
alpha=alpha,
method=method,
plotting_backend="plotly-static",
show_all_PI=naïvee,
)
naive_forecast2 = cp_model2.conformal_predict(
test_df,
calibration_df=cal_df,
alpha=alpha,
method=method,
plotting_backend""plotly-static",
show_all_PI=True,
)
NeuralProphet 可以绘制单侧区间宽度与所选置信水平的关系图:

图 8.8 – 单侧区间宽度与置信水平的关系
此图展示了 PI 的宽度如何随着不同的置信水平(1-α)而变化。
选项 2 – CQR
CQR 在 CQR 模块中按以下方式运行:
-
非一致性分数是校准数据集中的数据点与其最近的预测分位数之间的差异。这些分数提供了对数据与现有分位数回归模型拟合程度的洞察。位于分位数回归区间内的数据点产生负的非一致性分数,而位于区间外的数据点产生正分数。
-
非一致性分数随后按顺序组织。
-
α 值被确定,使得大于 α 的分数中的一部分与错误率相匹配。
-
α 量调整回归模型的分位数。
根据α的值,CQR 模型可以有两种解释方式。
当单侧 PI 宽度调整值为正时,CQR 超出 QR 间隔。这表明 CQR 认为 QR 间隔过于自信。
另一方面,如果调整值为负,CQR 会缩小 QR 间隔,这表明 QR 间隔可能过于谨慎。
我们可以使用以下代码运行 CQR 选项:
method = "cqr"
cqr_forecast1 = cp_model1.conformal_predict(
test_df, calibration_df=cal_df, alpha=alpha, method=method, plotting_backend="plotly-static"
)
cqr_forecast2 = cp_model2.conformal_predict(
test_df, calibration_df=cal_df, alpha=alpha, method=method, plotting_backend="plotly-static"
)
再次,我们可以绘制 PI 来检查这种 CQR 方法如何影响结果:

图 8.9 – 使用分位数回归预测医院电力负荷(CQR 选项)
我们可以看到,NeuralProphet使用cqr选项进行一致性预测,已经产生了优秀的 PI。
现在,让我们学习如何通过比较我们使用的各种不确定性量化方法来评估性能并获得一些见解。
我们使用区间宽度和误覆盖率作为性能指标:
-
interval_width: 这是平均 PI,或q_hat,乘以二,因为它是不变的或非自适应的;这也被称为效率指标 -
miscoverage_rate: 这是在 OOS 测试集上的实际误覆盖错误率;这也被称为有效性指标
让我们评估我们之前训练的模型。根据笔记本中的结果,我们得出以下结论:
-
分位数回归无法提供所需的覆盖范围
-
基础模型越复杂,其准确性就越高,因此 CP 区间的区间宽度就越低
-
对于默认模型,CQR 输出的 PI 宽度比朴素方法窄
使用 Nixtla 进行一致性预测
我们将使用位于 https://github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_08_NixtlaStatsforecast.ipynb 的笔记本来说明如何使用一致性预测为流行的统计和计量经济学模型创建 PI。
我们将使用 M4 竞赛的小时数据集:
-
首先,让我们安装 Nixtla 的
statsforecast:!pip install git+https://github.com/Nixtla/statsforecast.git -
然后,我们必须导入必要的模块,包括特别是 Nixtla 的模块:
from statsforecast.models import SeasonalExponentialSmoothing, ADIDA, and ARIMAfrom statsforecast.utils import ConformalIntervalsimport matplotlib.pyplot as pltfrom statsforecast.models import (AutoETS,HistoricAverage,Naive,RandomWalkWithDrift,SeasonalNaive) -
接下来,我们必须加载训练和测试数据集:
train = pd.read_csv('https://auto-arima-results.s3.amazonaws.com/M4-Hourly.csv')test = pd.read_csv('https://auto-arima-results.s3.amazonaws.com/M4-Hourly-test.csv' -
让我们看看数据集的结构。类似于
NeuralProphet,statsforecast要求列以特定的方式命名:

图 8.10 – M4 竞赛的小时数据集
-
我们现在可以训练模型了;我们将只使用数据集的前八个序列来减少总计算时间:
n_series = 8uids = train['unique_id'].unique()[:n_series]train = train.query('unique_id in @uids')test = test.query('unique_id in @uids') StatsForecast.plot(train, test, plot_random = False)我们将得到以下输出:

图 8.11 – M4 竞赛的小时序列
-
让我们创建一个模型和实例化参数的列表。为了使用这些模型,我们需要从
statsforecast.models导入它们,然后实例化它们。鉴于我们处理的是小时数据,我们需要在需要此参数的模型中设置seasonal_length=24:models = [AutoETS(season_length=24),HistoricAverage(),Naive(),RandomWalkWithDrift(),SeasonalNaive(season_length=24)]要实例化一个新的
StatsForecast对象,我们需要以下参数:-
df: 包含训练数据的 DataFrame。 -
models: 在上一步定义的模型列表。 -
freq: 一个表示数据频率的字符串。请参阅 pandas 的可用频率。 -
n_jobs:一个表示并行处理中使用的作业数量的整数。使用-1选择所有核心:sf = StatsForecast(df=train,models=models,freq='H',n_jobs=-1)
-
-
现在,我们已经准备好生成点预测和预测区间。为此,我们将使用预测方法,该方法接受两个参数:
-
h:一个表示预测范围的整数。在这种情况下,我们将预测接下来的 48 小时。 -
level:一个包含预测区间置信水平的浮点数列表。例如,level=[95]意味着值范围应该包含实际未来值,概率为 95%:levels = [80, 90, 95, 99] # confidence levels of the prediction intervalsforecasts = sf.forecast(h=48, level=levels)forecasts = forecasts.reset_index()forecasts.head()
-
-
现在,我们可以绘制预测区间:
sf.plot(train, test, plot_random = False, models=['SeasonalNaive'], level=levels)下面是这个的图表:

图 8.12 – 使用季节性朴素基准预测每小时序列
多分位数损失和统计模型可以提供预测区间(PIs)。然而,问题是这些(预测区间)未校准,这意味着实际观测值落在区间内的频率与其置信水平不一致。例如,一个校准的 95%预测区间应该在实际重复抽样中有 95%的时间包含实际值。另一方面,一个未校准的 95%预测区间可能只有 80%或 99%的时间包含真实值。在前一种情况下,区间太窄,低估了不确定性;而在后一种情况下,区间太宽,高估了不确定性。
统计方法也经常假设正态性。在这里,我们使用一致性预测校准了统计模型生成的预测区间。一致性预测区间使用交叉验证在点预测模型上生成区间。不需要先验概率,输出是校准良好的。不需要额外的训练,模型被视为黑盒。这种方法与任何模型兼容。Statsforecast现在支持所有可用模型的一致性预测。
StatsForecast可以高效地对不同的时间序列训练多个模型。这些模型可以生成概率预测,产生点预测和预测区间。在这个例子中,我们将使用SimpleExponentialSmoothing和 ADIDA(一个间歇性需求模型),这些模型本身不提供预测区间。因此,使用一致性预测生成预测区间是有意义的。我们还将展示如何使用 ARIMA 提供不假设正态性的预测区间。
要使用这些模型,我们首先需要从statsforecast.models导入它们,然后需要实例化它们,如下所示:
intervals = ConformalIntervals(h=24, n_windows=2)
models = [
SeasonalExponentialSmoothing(season_length=24,alpha=0.1, prediction_intervals=intervals),
ADIDA(prediction_intervals=intervals),
ARIMA(order=(24,0,12), season_length=24, prediction_intervals=intervals),
]
sf = StatsForecast(
df=train,
models=models,
freq='H',
)
levels = [80, 90] # confidence levels of the prediction intervals
forecasts = sf.forecast(h=24, level=levels)
让我们绘制使用一致性预测生成的 ARIMA 预测区间:

图 8.13 – 使用一致性预测生成的 ARIMA 预测区间
本节探讨了在几个流行的开源库中实现一致性预测用于时间序列预测的方法。
Amazon Fortuna 通过其 EnbPI 模块提供了共形预测功能。这使我们能够通过将任何集成模型与自助重采样包装起来来生成非参数 PI。我们看到了 EnbPI 如何利用集成来近似预测分布而不做假设。
Nixtla,一个用于时间序列建模的开源库,包括用于预测任务的共形预测函数。我们考察了其 CP 模块如何将任何底层模型转换为添加共形 PI。Nixtla 还支持在线共形预测以适应区间。
最后,NeuralProphet 本地集成了共形预测和分位数回归来量化不确定性。我们考察了其 ICP 方法,该方法使用校准集来细化初始区间。这在不依赖分布假设的情况下生成了有效的预测区域。
通过整合共形预测,这些库使得鲁棒且易于访问的不确定性量化(UQ)在 Python 中的时间序列预测者中变得可用。实现方式的多样性展示了共形预测作为一个模型无关框架的灵活性,它可以应用于任何预测方法。
摘要
本章教给你如何将共形预测应用于时间序列预测。共形预测是构建点预测模型预测区间(PIs)的一种强大技术。
本章还提供了如何利用开源平台来运用这一方法的见解。
我们从探索时间序列中的不确定性量化开始,深入探讨了预测区间的重要性,并展示了生成它们的各种策略。
共形预测的概念及其在预测场景中的应用是本章的核心。到这一点,你已经拥有了将这些方法应用于现实世界设置的知识,这将为你的预测模型提供精确的不确定性界限。将置信度度量添加到预测中确保了预测的准确性和可靠性。
对于时间序列的共形预测有了扎实的理解之后,我们现在将聚焦于另一个关键应用领域——计算机视觉。
第九章:计算机视觉中的一致性预测
在当今快节奏的世界里,计算机视觉已经超越了仅仅图像识别的范畴,成为众多现实应用中的基本基石。从在繁忙街道上导航的自动驾驶汽车到能够检测疾病早期迹象的医疗成像系统,对可靠且准确的计算机视觉模型的需求从未如此之高。然而,随着这些系统和它们应用的日益复杂,迫切需要一种能力来量化与它们预测相关的不确定性。
介绍一致性预测,这是一个开创性的框架,提供了一种稳健的方法来封装机器学习模型中固有的不确定性。虽然传统的计算机视觉模型通常只产生一个预测,但一致性预测的真正力量在于其提供一系列可能的输出,每个输出都附带一个置信水平。这为从业者提供了一个更明智、更细致的模型预测视角,使得在关键应用中部署更安全、更可靠的模型成为可能。
本章深入探讨了一致性预测与计算机视觉的结合。我们首先阐明在计算机视觉中量化不确定性的必要性,强调其在包括自动驾驶和医疗诊断在内的现实场景中的重要性。随着我们进一步探索,我们将揭示现代深度学习模型的阿喀琉斯之踵:它们产生 错误的预测的倾向。
到旅程结束时,你将获得实际操作经验,构建融入一致性预测能力的最先进的计算机视觉分类器。我们将介绍并引导你通过计算机视觉应用中最佳的开放源代码一致性预测库,确保你拥有开始这段旅程所需的所有工具。
在本章中,我们将涵盖以下主要主题:
-
计算机视觉中的不确定性量化
-
为什么深度学习会产生错误的预测
-
计算机视觉问题中量化不确定性的各种方法
-
计算机视觉中的一致性预测
-
使用一致性预测构建计算机视觉分类器
计算机视觉中的不确定性量化
作为一个领域,计算机视觉通过自动化曾经仅限于人类视觉和认知的复杂任务,已经改变了众多行业。计算机视觉模型已成为现代技术不可或缺的一部分,无论是检测道路上的行人,识别医学扫描中的潜在肿瘤,还是分析卫星图像进行环境研究。然而,随着对这些模型的依赖性增加,理解和量化与它们预测相关的不确定性的需求也在增长。
为什么不确定性很重要?
在深入探讨机制之前,了解为什么我们需要不确定性量化(UQ)本身是至关重要的。以下是一些原因:
-
安全和可靠性:在关键应用中,如医学成像或自动驾驶,错误的预测可能带来严重的后果。了解预测的置信水平可以帮助决策,例如是否信任模型的预测或寻求人工干预。
-
模型改进:不确定性测量可以提供关于模型可能不足的领域的见解,有助于指导数据收集和训练改进。
-
可信度:知道一个系统承认其局限性,并能向最终用户和利益相关者提供置信区间或不确定性度量,使其更加可信。
在计算机视觉的世界中导航,不可避免地会遇到可能影响模型预测准确性的不确定性。但不确定性的来源是什么,它们可以被管理吗?让我们深入了解计算机视觉中的两种主要类型的不确定性。
计算机视觉中的不确定性类型
计算机视觉中的不确定性可以大致分为两类:
-
随机不确定性:这种不确定性源于数据中的固有噪声。例如,低光照图像、模糊图像或从不同角度拍摄的图像引入了模型可能难以处理的变异性。随机不确定性通常是不可减少的,这意味着无论模型变得多好,由于观察中的固有噪声,这种不确定性始终存在。
-
认知不确定性:这种不确定性源于模型本身。它可能是由于训练数据不完整、模型架构选择或优化过程造成的。只要有足够的数据或模型设计的改进,认知不确定性是可以降低的。
在计算机视觉领域,仅仅得到一个预测是不够的。尽管我们的模型很先进,但它们有时可能会过于自信,这可能导致错误的决策。我们如何衡量这些预测的可靠性?这就引入了不确定性量化(Uncertainty Quantification,UQ)的世界。
不确定性量化
现代计算机视觉模型,尤其是深度学习架构,产生的预测往往过于自信。这种误校准可能是误导性的,尤其是在关键应用中。因此,需要的不仅仅是产生预测,还要伴随一个置信度或不确定性的度量。
已经提出了各种方法来量化不确定性,从提供模型参数分布的贝叶斯神经网络,到依赖于不同模型预测变异性集成的集成方法。
然而,正如我们将在后续章节中看到的,符合预测为计算机视觉应用量身定制的不确定性量化提供了一种新颖而严谨的视角。
计算机视觉的不确定性量化并非理论练习,而是构建可靠、安全和值得信赖模型的关键方面。随着计算机视觉系统继续渗透到各个领域,理解和考虑其固有的不确定性将至关重要。
为什么深度学习会产生错误的预测?
ImageNet 大规模视觉识别挑战赛(ILSVRC)是一个年度竞赛,研究团队在给定的数据集上评估他们的算法,旨在推动计算机视觉的边界。2012 年是该领域的分水岭,标志着深度学习在计算机视觉领域的主导地位发生了重大转变(www.image-net.org/challenges/LSVRC/2012/)。
在深度学习出现之前,计算机视觉主要依赖于手工设计的特征和传统的机器学习技术。例如尺度不变特征变换(SIFT)、方向梯度直方图(HOG)和加速鲁棒特征(SURF)等算法常用于从图像中提取特征。然后,这些特征会被输入到机器学习分类器,如支持向量机(SVM)进行预测。虽然这些方法取得了一定的成功,但在可扩展性和在更复杂的数据集上的性能方面存在重大局限性。
2012 年,由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 开发的一个名为 AlexNet 的深度卷积神经网络(en.wikipedia.org/wiki/AlexNet),被提交到 ILSVRC 竞赛中。它实现了 15.3%的顶级错误率,比第二名低 10.8 个百分点,这是一个显著的进步,是性能的逐步提升和质的飞跃。
为什么 AlexNet 具有革命性?
-
深度架构:与当时其他网络相比,AlexNet 的深度要大得多。它有五个卷积层,后面跟着三个全连接层。这种深度使得它能够从 ImageNet 数据集中学习更复杂和层次化的特征。
-
GPU 训练:该团队利用图形处理单元(GPU)来训练网络,这使得处理 ImageNet 数据集中的大量数据并高效训练深度架构成为可能。
-
ReLU 激活:与传统的 tanh 或 sigmoid 激活函数不同,AlexNet 采用了修正线性单元(ReLU)激活。这一选择有助于解决梯度消失问题,使得训练更深层的网络成为可能。
-
Dropout:为了防止过拟合,AlexNet 引入了 dropout 技术,在训练过程中随机丢弃神经元子集,迫使网络学习冗余表示。
2012 年的黎明标志着计算机视觉领域的一个变革时刻。在 ImageNet 竞赛中 AlexNet 前所未有的成就的推动下,整个行业转向了深度学习,特别是卷积 神经网络(CNNs)。随着我们穿越这场革命的余波,我们将见证研究的指数级增长、广泛的行业采用以及对更多数据和计算能力的不懈追求。
2012 年后 – 深度学习的兴起
2012 年的 ImageNet 竞赛,以 AlexNet 的胜利为标志,成为了计算机视觉领域的一个转折点。这次胜利凸显了深度学习的巨大潜力,特别是卷积神经网络(CNNs)。因此,以下情况发生了:
-
研究热潮:2012 年后,对计算机视觉深度学习的研究爆炸式增长。AlexNet 的变体和改进,如 VGG、GoogLeNet 和 ResNet,迅速开发出来,进一步推动了边界。
-
行业采用:科技巨头和初创公司开始大量投资深度学习研究和应用,从面部识别系统到增强现实。
-
数据集和计算资源:深度学习成功推动了更大数据集的创建和更强大计算基础设施的竞赛,进一步加速了创新周期。
2012 年的 ImageNet 竞赛是一个转折点,预示着计算机视觉深度学习时代的到来。AlexNet 的原则和突破为今天我们所看到的从自动驾驶汽车到实时视频分析等后续进步奠定了基础。
深度学习的“校准危机”——2017 年的转折点
自 2012 年 ImageNet 竞赛以来的辉煌上升之后,深度学习在许多领域经历了快速发展和广泛应用。社区连续五年专注于开发架构、优化技术和应用。然而,在这场创新的风暴中,一个重大的担忧却被很大程度上忽视了:深度学习系统产生的预测结果的不准确校准。
在实际应用中,自动化系统驱动决策时,分类网络仅仅提供准确结果是不够的。这些系统在医疗保健到金融等各个关键领域发挥着至关重要的作用,任何误判都可能产生重大后果。因此,这些分类网络不仅需要提供精确的结果,还需要具备自我意识,以标记预测中潜在的不确定性或错误。
例如,在医疗诊断工具中,除了正确识别疾病外,系统还应指出其对诊断的置信水平。如果医疗专业人员不确定,可以采取适当的预防措施,例如寻求额外的测试或专家意见。
再举一个例子:一辆配备神经网络以识别道路上行人和各种障碍物的自动驾驶汽车。在这种情况下,汽车的系统不仅需要识别人或障碍物,而且必须准确且实时地做到这一点。任何延迟或误识别都可能导致潜在的危险情况。
此外,这不仅仅是关于检测障碍,还包括理解检测的确定性水平。想象一下这样的场景:自动驾驶汽车的检测网络难以自信地确定前方是否有障碍。如果汽车的系统对物体不确定——可能是由于照明条件差或视线受阻——它应该被编程为更多地依赖来自其其他传感器的数据,例如激光雷达或雷达,以决定是否需要制动,并谨慎行驶,减速或甚至停车。这种精确检测和自我意识其确定性水平的双重要求确保了更安全的导航和决策,尤其是在动态和不可预测的道路环境中。如果您想了解更多关于这个主题的细节,请参阅文章《自动驾驶的风险敏感决策》(uu.diva-portal.org/smash/get/diva2:1698692/FULLTEXT01.pdf)。
准确的置信度估计在增强模型可解释性方面发挥着关键作用。人类天生理解并能够与概率建立联系,这使得它成为衡量预测的一个直观指标。
当模型提供良好的校准置信水平时,它为用户提供了额外的信息层,增强了其可信度。这对于神经网络尤为重要,因为它们的决策过程可能复杂且难以解读。此外,可靠的概率评估可以集成到更广泛的概率模型中,进一步扩大其效用和应用范围。
这种准确性和内省的结合确保了自动化决策系统值得信赖且可靠,有助于增强其在关键应用中的集成信心。
校准误差指的是模型对其预测的置信度与实际预测准确度之间的差异。例如,如果一个模型声称对一组预测有 90%的置信度,人们预期大约 90%的预测是正确的。然而,尽管深度学习模型具有较高的准确率,但它们往往需要赶上其表达的置信度和实际正确性。
快进到今天,尽管与十年前相比,当代神经网络在准确性方面取得了显著进步,但值得注意的是,它们不再保持校准。
直到 2017 年,这个问题的重要性才被带到人工智能社区的关注焦点。一篇关键论文,《现代神经网络的校准》(Guo, 2017),(proceedings.mlr.press/v70/guo17a.html) 发现深度神经网络校准不佳,突显了深度学习系统中固有的校准难题。
这项研究不仅强调了这些系统的严重误校准,而且还揭示了惊人的发现:一些被誉为突破性的最先进技术,如 dropout、权重衰减和批量归一化,反而加剧了误校准问题。
这篇开创性的论文起到了警钟的作用。它促使社区进行反思,敦促研究人员质疑并重新审视他们所倡导的技术。这篇论文是对问题的批判和探索及纠正的邀请。它清晰的表达和深刻的洞察力使它成为该领域任何人的必读之作。
虽然 2012 年 ImageNet 竞赛之后的几年以快速进步和无拘无束的乐观为特征,但 2017 年的论文却是一个清算的时刻。它强调了科学中反思的重要性以及不断改进、重新校准和必要时重新思考我们方法的持续需求,以确保我们构建的人工智能系统是准确且可靠校准的。
置信度校准是预测表示实际结果的概率估计的问题。在许多应用中,这对于分类模型至关重要,因为良好的置信度估计可以为建立与用户的信任提供有价值的信息。良好的概率估计可用于模型可解释性,因为人类对概率有自然的认知直觉。
论文《现代神经网络的校准》的作者发现,模型容量增加和缺乏正则化与深度神经网络中观察到的误校准现象密切相关。在过去几年中,模型容量大幅增加,网络拥有数百或数千层,每层有数百个卷积滤波器。最近的研究表明,非常深或宽的模型可以比较小的模型更好地泛化,同时展现出轻松拟合训练集的能力。然而,这种增加的容量可能导致过拟合和误校准。
关于浅层经典神经网络,论文《现代神经网络的校准》提出,传统的(或浅层的)神经网络校准良好。这种信念源于 Niculescu-Mizil 和 R. Caruana 于 2005 年发表的一篇高度引用的论文,题为《使用监督学习预测良好的概率》(www.cs.cornell.edu/~alexn/papers/calibration.icml05.crc.rev3.pdf)。这篇论文在著名的 ICML 会议上发表,自发表以来已有超过 1,570 次引用。其中得出的一个结论是,浅层(经典)神经网络“校准良好”。
然而,关于浅层神经网络校准的结论后来被颠覆了。在一篇 2020 年的研究中,题为《传统神经网络是否校准良好?》(ieeexplore.ieee.org/document/8851962),作者们驳斥了浅层神经网络校准良好的广泛观点。他们的发现显示,传统的浅层网络校准不良,其集成也表现出同样的问题。幸运的是,研究人员还强调,使用我们在前几章中了解到的 Venn-ABERS 一致性预测方法可以显著提高这些网络的校准。
现代深度学习计算机视觉模型的过度自信
为计算机视觉设计的许多深度学习模型主要利用基于卷积的架构。这些架构推动了该领域的发展,实现了前所未有的预测准确性。然而,存在一个意想不到的副作用:这些模型经常产生 过度自信的预测:
-
准确性 versus 质量:深度学习对准确性的不懈追求导致了能够以非凡的精确度正确分类图像的模型。然而,准确性只是模型性能的一个方面。预测质量,包括预测的可靠性和校准等方面,同样至关重要。
-
过度自信问题:尽管这些模型实现了更高的准确率,但它们在预测中往往过于自信。这意味着当它们犯错时,会以很高的信心做出预测,表明它们坚信错误的预测。
-
在关键应用中的影响:这种过度自信带来了相当大的风险,尤其是在风险较高的领域。以医疗保健为例:一个分析医学扫描的计算机视觉系统如果做出误诊,并且有很高的信心,可能会导致医疗专业人员采取错误的治疗措施。同样,在自动驾驶汽车中,对道路场景过度自信的误解可能导致危险的操作。
从本质上讲,随着深度学习社区推动准确性的边界,也必须解决这些模型的校准问题。确保它们不仅做出准确的预测,而且适当地衡量这些预测的信心是至关重要的,尤其是在这些模型被用于生命攸关的应用时。
计算机视觉问题中量化不确定性的各种方法
在计算机视觉中量化不确定性对于确保基于视觉的系统可靠性和安全性至关重要,尤其是在部署在关键应用中时。多年来,已经开发出各种方法来处理和量化这种不确定性。以下是一些最显著的方法:
-
贝叶斯神经网络(BNNs):这些神经网络将权重视为概率分布而不是固定值。通过这样做,它们可以为它们的预测提供不确定性度量。在推理期间,通过不同的权重样本进行多次正向传递,产生一个捕获模型不确定性的输出分布。
-
蒙特卡洛 dropout:蒙特卡洛 dropout 涉及在推理期间执行 dropout。通过多次运行具有 dropout 的网络并平均结果,可以得到一个输出分布,可以用来衡量不确定性。
-
集成方法:集成方法涉及训练多个模型并汇总它们的预测。模型之间预测的方差可以用作不确定性的代理。这种方法在计算上很昂贵,但通常会导致更稳健的不确定性估计。
-
深度高斯过程:深度高斯过程将深度学习与高斯过程相结合,提供了一种非参数估计不确定性的方法。它们提供了一种丰富的方式来捕捉复杂的不确定性,但对于大数据集来说可能在计算上具有挑战性。
-
一致性预测:一致性预测为预测提供了一组可能的输出,每个输出都有一个置信水平。这种基于集合的预测方法旨在保证覆盖范围,这意味着实际结果将以等于置信水平的概率落在预测集合中。
-
校准技术:虽然不是直接测量不确定性,但校准技术,如 Platt 缩放或温度缩放,确保预测的置信度得分反映了正确性的真实可能性。一个校准良好的模型的预测概率更具可解释性,可以用作不确定性的度量。
一致性预测在不确定性量化中的优越性
量化不确定性是构建稳健和可靠的机器学习模型的基础。多年来,已经出现了几种方法,每种方法都有其优点。然而,一致性预测脱颖而出,成为一个特别有吸引力的框架。让我们来解释一下原因:
-
无分布框架:一致性预测最显著的特点之一是它不对数据的分布做出任何假设。许多不确定性量化方法基于某些概率假设或依赖于特定的数据分布才能有效运作。相比之下,一致性预测对这些考虑因素保持无偏见,使其具有通用性和广泛适用于各种数据集。
-
理论保证:一致性预测为它的预测提供了稳健的理论保证。具体来说,它为预测提供了一组潜在的结果,并且每个结果都与一个置信水平相关联。该框架确保实际结果将以与置信水平相对应的概率落在预测集合内。这是一种强大的保证,尤其是在理解预测界限至关重要的关键应用中。
-
模型独立性:一致性预测的另一个显著优势是其与底层模型的独立性。无论您是在使用简单的线性回归、复杂的深度学习架构还是任何其他模型,一致性预测都可以无缝应用。这种灵活性确保了实践者在寻求量化不确定性时对模型的选择是开放的。
-
与数据集大小可扩展性:一致性预测对数据集的大小不敏感。无论是处理具有有限条目的小型数据集还是处理包含数百万数据点的庞大数据集,该框架都保持有效和可靠。这种可扩展性在数据可以从稀缺到极其丰富现代应用中特别有益。
虽然存在许多不确定性量化方法,但由于其无分布的特性、稳健的理论基础、模型独立性和可扩展性,一致性预测成为了一种领先的方法。对于寻求一种稳健且可靠的方法来评估其机器学习模型的不确定性的人来说,一致性预测提供了一个有吸引力的选择。
一致性预测在计算机视觉中的应用
在本节中,我们将深入探讨一致性预测在计算机视觉中的多样化应用。由于计算机视觉涵盖了从图像分类到目标检测的广泛问题,它提出了需要精确和可靠机器学习模型的挑战。在我们导航这些应用的过程中,我们将展示一致性预测是如何作为一种稳健的工具来量化与这些模型相关的不确定性的。
通过探索这些实际例子,我们旨在强调理解模型对其预测的置信度的重要性。理解至关重要,尤其是在基于这些预测的决策可能产生重大后果的情况下。具有提供不确定性度量能力的一致预测可以极大地帮助研究人员和实践者根据其模型输出做出明智的决策。这提高了系统的可靠性,并为计算机视觉中更透明和值得信赖的 AI 实现铺平了道路。
使用一致预测的图像分类器的不确定性集
在 2020 年,加州大学伯克利分校的研究人员发表了一篇题为《使用一致预测的图像分类器的不确定性集》(Uncertainty sets for image classifiers using Conformal Prediction)的论文(arxiv.org/abs/2009.14193)。
这是计算机视觉研究人员首次将一致预测应用于计算机视觉问题。论文描述了第一个专门为计算机视觉开发的一致预测方法 RAPS,它是当前图像分类的最新水平。
下面是论文中的关键点:
-
论文提出了一种名为正则化自适应预测集(RAPS)的新方法,用于生成具有神经网络分类器保证达到所需覆盖水平的稳定预测集。
-
RAPS 通过正则化对不可能类别的噪声概率估计的影响,修改了现有的一致预测算法,以产生更小、更稳定的预测集。
-
RAPS 在 ImageNet 分类中使用 ResNet 和其他 CNN 模型进行评估。它在产生预测集的同时,实现了所需的覆盖水平,并且这些预测集的规模显著减小(比独立 Platt 缩放基线小 5 到 10 倍)。
-
该方法在覆盖范围上满足理论保证,并被证明在选择固定大小集合时提供最佳性能。
-
RAPS 提供了一种从任何能够可靠量化不确定性和识别复杂测试示例的图像分类器中获取预测集的实用方法。作者建议在医学成像和主动学习等领域应用。
这里是 RAPS 算法工作原理的总结:
-
它使用预训练的图像分类器来计算校准集中图像的类别概率估计以及新测试图像的类别概率估计。
-
对于校准集中的每张图像,RAPS 计算一致性分数,记为 E j,如下所示:E j = ∑ i=1 k ′ ( ˆ π (i)(x j) + λ1[i > k reg]). 这是通过将概率估计按降序排列来实现的。然后通过累积这些概率估计来计算分数,从最高开始,一直持续到(包括)图像实际类别的概率估计。计算过程如图 9.1所示。
-
高λ值起到阻止创建大于 k reg 的集合的威慑作用。
-
在归纳一致预测中,模型随后计算在校准集上计算的一致性分数的 1-α分位数。
-
输出 k*最高分数的类别,其中测试点的符合性分数 E test 大于或等于 1-α分位数。
下图说明了 RAPS 方法。该图来自 Anastasios N. Angelopoulos 的博客 使用一致预测的图像分类的不确定性集合 (Uncertainty Sets for Image Classifiers using Conformal Prediction):(people.eecs.berkeley.edu/~angelopoulos/blog/posts/conformal-classification/)。

图 9.1 – RAPS 方法的示意图(红线是为了达到精确覆盖率)
参数λ和 k reg 由 RAPS 模型在校准集上估计。参数背后的直觉是,高λ值会阻止大于 k reg 的集合。
通过构造,这个预测集以至少 1-α的概率包含真实类别,其中α是期望的错误水平。正则化惩罚允许 RAPS 产生比以前的方法(如 Platt 缩放或未正则化的自适应方法)更小、更稳定的集合。
这种方法允许研究人员使用任何底层分类器,并产生确保满足指定错误率(如 90%)的预测集,同时保持最小的平均大小。其部署的简便性使其成为衡量图像分类器不确定性的有吸引力的自动化方法,这在医疗诊断、自动驾驶和筛选危险在线内容等领域至关重要。
总结来说,RAPS 利用一致预测的思想来保证覆盖率,修改一致分数以实现更小的集合,并使用保留数据正确校准程序。
使用一致预测构建计算机视觉分类器
让我们通过实际应用来说明一致预测在计算机视觉中的应用。我们将使用来自书籍存储库的笔记本,该存储库可在https://github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_09.ipynb找到。这个笔记本广泛使用了 Anastasios Angelopolous 的 Conformal Prediction 仓库中的笔记本,github.com/aangelopoulos/conformal-prediction。
加载数据后,设置问题和定义所需的覆盖率和校准集中的点数:
n_cal = 1000
alpha = 0.1
将 softmax 分数分为校准集和测试数据集,获得校准和测试标签:
idx = np.array([1] * n_cal + [0] * (smx.shape[0]-n_cal)) > 0
np.random.seed(42)
np.random.shuffle(idx)
cal_smx, test_smx = smx[idx,:], smx[~idx,:]
cal_labels, test_labels = labels[idx], labels[~idx]
测试数据集包含 49,000 个点,校准数据集包含 1,000 个点。这两个数据集都包括来自 ImageNet 数据集的图像和可读标签。
朴素符合预测
我们首先将探讨使用符合预测的朴素方法来生成预测集:
-
为每个校准点计算一个非一致性分数
-
然后,将评估校准分数的经验分位数。
这与我们之前章节中观察到的归纳符合预测非常相似。我们通过 hinge 损失确定非一致性分数,然后使用这些分数的分布来根据所需的覆盖范围计算分位数。这个过程,包括最终的样本校正公式,与我们的归纳符合预测方法类似:
cal_scores = 1-cal_smx[np.arange(n_cal),cal_labels]
q_level = np.ceil((n_cal+1)*(1-alpha))/n_cal
qhat = np.quantile(cal_scores, q_level, method='higher')
我们可以使用计算得到的非一致性分数的调整分位数来为测试集对象形成预测集:
prediction_sets = test_smx >= (1-qhat)
结果是一个显示预测集合的数组。这个布尔数组根据它持有的布尔值表示 ImageNet 类别。布尔值表示模型选择的类别,其中True表示选择了该类别,而False表示该类别不包括在预测集中。

图 9.2 – 测试集预测集的示意图
我们可以计算经验覆盖度,它非常接近指定的 90%置信水平:
empirical_coverage = prediction_sets[np.arange(prediction_sets.shape[0]),test_labels].mean()
print(f"The empirical coverage is: {empirical_coverage}")
我们可以查看一些对象和预测集。

图 9.3 – 测试集中的对象,由符合预测的朴素变体产生的预测集标签为“宫殿”
对于不确定性较高的对象,预测集中包含多个元素。
![图 9.4 – 测试集中的对象,由符合预测的朴素变体产生的预测集为[‘慢炖锅’,‘数字时钟’]](https://github.com/OpenDocCN/freelearn-ml-zh/raw/master/docs/prac-d-app-cnfm-pred-py/img/B19925_09_04.jpg)
图 9.4 – 测试集中的对象,由符合预测的朴素变体产生的预测集为[‘慢炖锅’,‘数字时钟’]
朴素方法存在两个显著问题:
-
首先,CNN 生成的概率通常需要更准确,导致无法达到预期覆盖率的集合
-
其次,对于模型缺乏信心的实例,朴素方法必须包含多个类别以达到所需的置信度阈值,从而导致集合过大
温度缩放并不是解决办法,因为它只调整主要类的分数,而校准剩余分数是一项艰巨的任务。有趣的是,即使所有分数都完美校准,朴素方法仍然无法达到覆盖范围。
开发了构建预测集的替代方法来解决这些问题,即自适应预测集(APS)和正则化自适应预测集(RAPS)。
自适应预测集(APS)
接下来,我们将查看 NeurIPS 焦点论文中描述的 APS,即 具有有效和自适应覆盖的分类(2000)(https://proceedings.neurips.cc/paper/2020/file/244edd7e85dc81602b7615cd705545f5-Paper.pdf)。
从本质上讲,APS 提出了一种简单的方法。它不是直接使用软化分数,而是根据校准数据集确定一个新的阈值。例如,如果具有 93% 预测概率的集合在校准集上产生 90% 的覆盖率,则采用 93% 的阈值。APS 是 RAPS 的特定实现,与朴素方法不同,它旨在实现精确的覆盖率。
然而,APS 面临一个实际障碍:其集合的平均大小显著较大。深度学习分类器在与排列困境作斗争:对于不太确定的类别,如排名第 10 到 1,000 的类别,它们的分数并不反映准确的概率估计。这些类别的排列很大程度上受到噪声的影响,促使 APS 选择庞大的集合,特别是对于复杂图像。
描述 APS 的代码如下:
# Get scores. calib_X.shape[0] == calib_Y.shape[0] == n
cal_pi = cal_smx.argsort(1)[:, ::-1]
cal_srt = np.take_along_axis(cal_smx, cal_pi, axis=1).cumsum(axis=1)
cal_scores = np.take_along_axis(cal_srt, cal_pi.argsort(axis=1), axis=1)[
range(n_cal), cal_labels
]
# Get the score quantile
qhat = np.quantile(
cal_scores, np.ceil((n_cal + 1) * (1 - alpha)) / n_cal, method="higher"
)
test_pi = test_smx.argsort(1)[:, ::-1]
test_srt = np.take_along_axis(test_smx, test_pi, axis=1).cumsum(axis=1)
prediction_sets = np.take_along_axis(test_srt <= qhat, test_pi.argsort(axis=1), axis=1)
让我们更详细地查看代码。它使用 APS 根据指定的分位数阈值生成预测集:
-
cal_pi = cal_smx.argsort(1)[:, ::-1]: 这对每个实例的cal_smx软化分数进行降序排序,并返回排序值的索引。 -
cal_srt = np.take_along_axis(cal_smx, cal_pi, axis=1).cumsum(axis=1): 对于每一行,它根据cal_pi的索引重新排列分数,然后计算沿列的累积和。 -
cal_scores = np.take_along_axis(cal_srt, cal_pi.argsort(axis=1), axis=1)[range(n_cal), cal_labels]: 此步骤检索与真实标签(cal_labels)对应的特定分数。它首先将cal_pi的排序顺序反转以获取原始顺序,然后为每个实例选择与真实标签相关的分数。
qhat = np.quantile(cal_scores, np.ceil((n_cal + 1) * (1 - alpha)) / n_cal, method="higher"): 基于提供的alpha计算分位数值。此值将作为预测阶段的阈值。*test_pi = test_smx.argsort(1)[:, ::-1]: 类似地,对于测试集,它按降序对test_smx中的分数进行排序,并返回排序值的索引。*test_srt= np.take_along_axis(test_smx, test_pi, axis=1).cumsum(axis=1): 根据排序索引test_pi重新排列测试集分数,并计算累积和。*prediction_sets= np.take_along_axis(test_srt <= qhat, test_pi.argsort(axis=1), axis=1): 对于测试集中的每个实例,它确定哪些分数低于分位数阈值qhat。然后,布尔数组 (test_srt <= qhat) 使用test_pi.argsort(axis=1)重新排列到其原始顺序,从而得到最终预测集,其中True条目表示包含在集合中。
本质上,此代码用于校准模型得分以定义一个阈值,然后使用此阈值为新(测试)数据集生成预测集。
我们可以查看一些由 APS 生成的对象和预测集。

图 9.5 – 测试集中的对象
不幸的是,正如前面提到的并在本例中演示的那样,APS 生成的预测集可能非常庞大。前一个例子生成了一个预测集:
['King Charles Spaniel', 'Rhodesian Ridgeback', 'Afghan Hound', 'Basset Hound', 'Bloodhound', 'Redbone Coonhound', 'Otterhound', 'Weimaraner', 'Irish Terrier', 'Norfolk Terrier', 'Norwich Terrier', 'Australian Terrier', 'Dandie Dinmont Terrier', 'Tibetan Terrier', 'Soft-coated Wheaten Terrier', 'Flat-Coated Retriever', 'Golden Retriever', 'Labrador Retriever', 'Vizsla', 'English Setter', 'Irish Setter', 'Gordon Setter', 'Clumber Spaniel', 'English Springer Spaniel', 'Welsh Springer Spaniel', 'Cocker Spaniels', 'Sussex Spaniel', 'Irish Water Spaniel', 'Briard', 'Bullmastiff', 'Leonberger', 'Newfoundland', 'Chow Chow', 'Miniature Poodle', 'Standard Poodle', 'lion', 'brown bear', 'grasshopper', 'leafhopper', 'doormat', 'handkerchief', 'maze', 'prayer rug', 'tennis ball', 'acorn'].
正则化自适应预测集(RAPS)
现在我们来实际操作 RAPS,它在本章前面的使用一致性预测的图像分类器的置信集部分中简要介绍过。
我们在以下代码块中设置了 RAPS 正则化参数(更大的lam_reg值和更小的k_reg值会导致集合更小)和正则化向量:
lam_reg = 0.01
k_reg = 5
disallow_zero_sets = False
rand = True
reg_vec = np.array(k_reg*[0,] + (smx.shape[1]-k_reg)*[lam_reg,])[None,:]
如前所述,我们计算非一致性得分并获取得分分位数:
cal_pi = cal_smx.argsort(1)[:,::-1];
cal_srt = np.take_along_axis(cal_smx,cal_pi,axis=1)
cal_srt_reg = cal_srt + reg_vec
cal_L = np.where(cal_pi == cal_labels[:,None])[1]
cal_scores = cal_srt_reg.cumsum(axis=1)[np.arange(n_cal),cal_L] - np.random.rand(n_cal)*cal_srt_reg[np.arange(n_cal),cal_L]
qhat = np.quantile(cal_scores, np.ceil((n_cal+1)*(1-alpha))/n_cal, method='higher')
我们可以使用以下代码在测试集上部署预测:
n_test = test_smx.shape[0]
test_pi = test_smx.argsort(1)[:,::-1]
test_srt = np.take_along_axis(test_smx,test_pi,axis=1)
test_srt_reg = test_srt + reg_vec
test_srt_reg_cumsum = test_srt_reg.cumsum(axis=1)
indicators = (test_srt_reg.cumsum(axis=1) - np.random.rand(n_test,1)*test_srt_reg) <= qhat if rand else test_srt_reg.cumsum(axis=1) -test_srt_reg <= qhat
if disallow_zero_sets: indicators[:,0] = True
prediction_sets = np.take_along_axis(indicators,test_pi.argsort(axis=1),axis=1)
让我们查看一些由 RAPS 生成的对象和预测集。
![图 9.6 – 测试集中的对象;RAPS 生成的预测集为[‘electric ray’]](https://github.com/OpenDocCN/freelearn-ml-zh/raw/master/docs/prac-d-app-cnfm-pred-py/img/B19925_09_06.jpg)
图 9.6 – 测试集中的对象;RAPS 生成的预测集为[‘electric ray’]
我们可以看到,对于不确定性较小的对象,RAPS 生成单元素预测集。与 APS 不同,RAPS 对于涉及更多不确定性的对象仍然生成相当节俭的预测集。
![图 9.7 – 测试集中的对象;RAPS 生成的预测集为[‘red wolf’,‘coyote’,‘dhole’,‘gray fox’]](https://github.com/OpenDocCN/freelearn-ml-zh/raw/master/docs/prac-d-app-cnfm-pred-py/img/B19925_09_07.jpg)
图 9.7 – 测试集中的对象;RAPS 生成的预测集为[‘red wolf’,‘coyote’,‘dhole’,‘gray fox’]
让我们总结本章内容。
摘要
在技术快速发展的领域,计算机视觉已经从单纯的图像识别转变为无数现实应用的重要组成部分。随着这些应用跨越多个领域,如自动驾驶汽车和医疗诊断,对计算机视觉模型提供准确和可靠预测的压力不断加大。随着这些模型日益复杂,一个迫切的需求随之而来:量化预测不确定性。
这就是一致性预测发光的地方。与通常只输出单一预测的传统模型不同,一致性预测提供了一系列可能的预测结果,每个结果都附带一个置信度度量。这种新颖的方法使用户能够获得对模型预测的详细视角,这对于精度至关重要的应用来说是无价的。
本章深入探讨了一致性预测与计算机视觉之间的共生关系。我们首先强调了不确定性量化在计算机视觉中的重要性,并引用了其在自动驾驶交通和医学成像等领域的关键作用。进一步地,我们揭示了当代深度学习模型的一个主要改进领域:它们倾向于提供失准的预测。
通过学习本章,您已经获得了制作融合一致性预测能力的尖端计算机视觉分类器的专业知识。此外,您还获得了使用针对计算机视觉定制的顶级开源一致性预测工具的经验,确保您为未来的努力做好了充分准备。
本章的关键成就包括掌握不确定性量化在计算机视觉中的作用,揭示深度学习预测失准的原因,探索测量计算机视觉任务中不确定性的多种策略,理解计算机视觉中一致性预测的基本原理和应用,以及掌握构建由一致性预测驱动的计算机视觉分类器。
在下一章中,我们将探索自然语言处理中的一致性预测世界,了解其重要性,并学习如何利用其力量进行更可靠和自信的预测。
第十章:自然语言处理的一致性预测
自然语言处理(NLP)处理人类语言的复杂性,其中不确定性是一个固有的挑战。随着 NLP 模型成为风险敏感和关键应用的核心,确保其可靠性至关重要。一致性预测作为一种有前景的技术,提供了一种量化这些模型预测可信度的方法,尤其是在面对深度学习模型产生的误校准输出时。
在本章中,我们将探索 NLP 一致性预测的世界,了解其重要性,并学习如何利用其力量进行更可靠和自信的预测。
在本章中,我们将涵盖以下主要主题:
-
NLP 的不确定性量化
-
为什么深度学习会产生误校准的预测
-
量化 NLP 问题的各种方法
-
NLP 的一致性预测
-
使用一致性预测构建 NLP 分类器
-
NLP 中用于一致性预测的开源工具
NLP 的不确定性量化
NLP 中的不确定性量化是模型开发和部署中一个基本但常常被忽视的方面。随着 NLP 模型越来越多地集成到关键应用中——从医疗诊断到金融预测——理解和传达其输出置信水平的需求变得至关重要。不确定性量化提供了一个评估预测可靠性的框架,使用户和开发者能够评估模型的决断力和依赖其结果可能存在的潜在风险。本节深入探讨了 NLP 中不确定性量化的重要性、方法和实际考虑,强调了它在构建稳健和可信的语言模型中的关键作用。
我们现在将探讨自然语言处理(NLP)中的不确定性以及量化 NLP 应用中不确定性的益处和挑战。
NLP 中的不确定性是什么?
自然语言处理(NLP)的核心是理解人类语言——一种以其丰富性、模糊性和多样性而闻名的媒介。语言使用中的固有可变性、由上下文驱动的含义以及语言结构不断演变的本质使得 NLP 任务本质上具有不确定性。例如,“银行”一词可能指金融机构或河流的一侧,这取决于上下文。
量化 NLP 中不确定性的益处
在 NLP 中量化不确定性不仅仅是一个理论练习;它具有以下实际益处:
-
可信度:量化不确定性要么增强对特定预测的信心,要么突出需要谨慎的领域。
-
性能评估:这通过检查其指标中的不确定性来评估各种模型的有效性。
-
增强机会:它能够识别模型可以改进的领域,尤其是在主动学习等场景中。
-
风险管理:通过理解预测的不确定性程度,利益相关者可以做出更明智的决策。例如,一个预测情感的自然语言处理模型可能对一条评论是积极的预测有 80%的确定性。了解这一点后,企业可能会优先处理模型确定性较低的评价。
-
模型透明度:能够表达其不确定性的模型被认为更加透明和可信。模型的使用者可以更好地理解何时信任模型的输出,何时需要谨慎对待。
-
模型训练:在训练阶段,理解高不确定性区域可以指导数据收集工作。如果一个模型对特定数据类型不确定,收集更多此类数据可以导致更稳健的训练。
自然语言处理中的不确定性挑战
尽管其重要性不言而喻,但在自然语言处理中管理不确定性具有挑战性。以下是原因之一:
-
数据稀疏性:许多自然语言处理任务缺乏所有可能的语言变体的代表性数据,导致模型对较少见的数据点不确定。
-
语言歧义:如前所述,根据上下文,单词可以有多种含义,这导致固有的不确定性。
-
模型复杂性:深度学习等高级模型有时会像黑盒一样运作,这使得识别不确定性区域变得具有挑战性。
在构建稳健的自然语言处理(NLP)系统中,理解和量化不确定性变得至关重要。随着我们深入本章,我们将探讨一些技术,特别是一致性预测,这些技术提供了一种结构化的方法来直面这些挑战。
理解为什么深度学习会产生失准的预测
在快速发展的自然语言处理领域,深度学习在使机器以人类曾经独占的方式处理和生成语言方面发挥了关键作用。下一节将介绍深度学习的关键概念和里程碑,这些概念和里程碑对自然语言处理产生了重大影响。
自然语言处理中的深度学习简介
深度学习是机器学习的一个子集,它依赖于具有许多层的神经网络(因此称为“深度”)来分析各种数据因素。在自然语言处理的背景下,深度学习已经是一个颠覆性的变革,使机器以前所未有的准确性理解和生成人类语言:
-
架构演变:这一旅程始于简单的架构,如前馈神经网络和循环神经网络(RNNs)。后者能够记住过去的信息,在基于序列的任务(如语言翻译)中特别有影响力。后来,更先进的架构,如长短期记忆(LSTM)和Transformer 模型,进一步提升了性能标准。
-
BERT 和 Transformer:双向 Transformer 编码器表示(BERT)的引入是一个重要的里程碑。BERT 通过分析单词的整个上下文(包括单词的左右两侧)在众多 NLP 任务中实现了最先进的成果。BERT 所基于的 Transformer 架构引入了注意力机制,允许模型关注输入文本的特定部分,就像人类在理解语言时关注特定单词一样。
-
语言模型和大型语言模型:大型语言模型(LLMs)如生成预训练 Transformer(GPT)及其迭代版本,如 ChatGPT,在 NLP 中设定了新的标准。这些模型拥有数十亿个参数,可以生成类似人类的文本,回答问题,甚至帮助进行创意写作。特别是 ChatGPT,在创建能够进行更自然和连贯交互的对话代理方面产生了重大影响。
-
迁移学习和微调:这些发展的革命性方面之一是迁移学习的概念。例如 BERT 和 GPT 等模型在庞大的语料库上进行了预训练,并且可以在较小的数据集上针对特定任务进行微调。这种方法使得 NLP 中的深度学习民主化,允许资源有限的团队实现具有竞争力的成果。
随着这些进步,深度学习模型已成为许多现代 NLP 应用的基础,从聊天机器人到搜索引擎。然而,正如我们将在后续章节中探讨的,它们的复杂性和规模引入了挑战,尤其是在校准方面。
NLP 中深度学习预测的挑战
深度学习无疑提高了 NLP 的能力,但也带来了几个挑战和陷阱。在我们探索 NLP 中的深度学习领域时,我们必须意识到这些问题。一些显著挑战包括以下内容:
-
模型过度自信:深度学习模型,鉴于其拟合复杂模式的能力,往往对其预测过度自信。例如,在情感分析中,一个模型可能会以 60%的置信度预测一段文本为正面,而实际上,由于措辞含糊,实际的置信度应该低得多。
-
数据分布偏移:NLP 模型通常在特定的数据集上训练,可能没有接触到真实世界输入的全部语言多样性。当面对分布外的数据时,这些模型可能会产生校准不当的预测。
-
缺乏显式的不确定性建模:传统的深度学习方法本身不建模不确定性。它们优化准确性,通常以可靠的不确定性估计为代价。
-
复杂性和非线性:深度学习模型的复杂架构,特别是多层和非线性激活,有时会导致不可预测的行为,尤其是在处理边缘情况或罕见的语言结构时。
接下来,让我们探讨校准偏差的影响。
校准偏差的影响
NLP 模型中的校准偏差不仅仅是一个纯粹学术上的问题。在现实世界的应用中,它可能导致基于错误信息的决策、不恰当的信任,甚至可能产生有害的结果,尤其是在医疗保健、金融和法律系统等敏感领域:
-
决策风险:过于自信的模型可能导致利益相关者基于误导性的自信做出决策,可能造成误解或策略上的缺陷。
-
信任丧失:如果 NLP 系统频繁表达对错误预测的高度自信,用户可能会对它失去信心。
-
资源错配:在自动化系统中,校准不当的模型可能会低效地优先处理任务,在人类干预更合适的情况下浪费计算资源。
认识到这些挑战是第一步。随着我们前进,我们将深入研究一致性预测——这是一种针对困扰自然语言处理(NLP)深度学习模型的校准问题的可行解决方案。
量化 NLP 问题不确定性的各种方法
为了解决校准偏差和语言固有的不可预测性的挑战,已经探索了多种量化 NLP 问题不确定性的方法。
现在,我们将探讨贝叶斯方法在不确定性量化中的应用。
贝叶斯不确定性量化方法
贝叶斯方法为建模不确定性提供了一个框架。通过将模型参数视为分布而不是固定值,贝叶斯神经网络提供了与预测相关的不确定性度量。这种概率方法确保模型不仅给出估计,还传达了该估计的置信度或分布。
这些是贝叶斯方法在不确定性量化中的一些例子。
-
变分推断是一种近似模型参数后验分布的技术,使网络能够输出用于预测的分布。
-
贝叶斯神经网络(BNNs)是具有概率分布权重的神经网络。通过从这些分布中进行采样,BNNs 可以产生一系列输出,反映预测的不确定性。
-
蒙特卡洛 dropout是一种在推理过程中应用 dropout 的技术。通过多次运行模型并观察输出方差,我们可以了解模型的不确定性。
自助方法和集成技术
自助涉及通过重采样从原始训练数据创建多个数据集。通过在这些数据集上训练不同的模型,我们可以捕捉模型的不确定性。不同重采样之间的方差允许我们更稳健地评估输入数据的变化如何影响预测。
现在,我们将探讨一些自助方法和模型集成的一些例子。
-
Bagging:简称为自助聚合,涉及在不同的自助样本上训练多个模型。模型之间预测的方差提供了一个不确定性的估计。
-
模型集成:结合多个模型的预测也可以捕捉到不确定性。如果基于相同数据但具有不同架构的模型在预测上意见不一致,这表明更高的不确定性。
分布外(OOD)检测
识别与训练数据显著不同的输入也有助于不确定性估计:
-
基于似然的方法:这些方法比较新数据点的似然性与训练数据。较低的似然性表示更高的不确定性。
-
对抗训练:通过训练模型识别对抗性示例,我们可以增强它们识别不确定输入的能力。
考虑到人类语言的固有歧义和细微差别,理解和恰当地运用这些技术在 NLP 中至关重要。每种方法都有其优势和适用场景,因此从业者必须根据他们 NLP 任务的具体情况明智地选择。
NLP 中的正规预测
正规预测是一种灵活且统计上稳健的不确定性量化方法。它是一个无分布框架,可以在不要求模型重新训练或访问有限的 API 的情况下估计机器学习模型的不确定性。正规预测背后的核心思想是输出一个包含正确输出的预测集,其概率由用户指定。正规预测可以帮助量化语言模型预测中的不确定性。
正规预测是一个提供预测有效置信区间的框架,无论底层机器学习模型如何。在 NLP 领域,由于其固有的歧义、上下文敏感性和语言多样性等挑战,正规预测提供了一种结构化的方法来量化不确定性。
有效性和效率是正规预测的两个基本原则。有效性确保预测区域(或集合)以预定义的概率是正确的,而效率确保这些区域尽可能紧凑。
正规预测在 NLP 中的工作原理
正规预测的机制基于根据其“奇特性”或非一致性得分对预测进行排序。其想法是理解新观察与先前观察相比有多大的不同:
-
非一致性得分:这个得分衡量了新预测与任何 NLP 任务中先前预测的不同程度。例如,非一致性可能基于文本分类中决策边界的距离。
-
P 值:P 值是基于非一致性得分计算的,表示预测的置信水平。
正规预测在 NLP 中的实际应用
一致性预测不仅仅是一个理论结构;它在自然语言处理中的实际应用范围广泛:
-
情感分析:在确定文本片段的情感时,一致性预测可以提供一个或一组可能的情感,每个情感都有其置信度水平
-
命名实体识别:一致性预测可以对每个标记的实体给出置信度分数,而不仅仅是标记实体,这有助于精度至关重要的任务
-
机器翻译:除了翻译文本之外,一致性预测可以为不同的翻译选择提供置信区间,有助于翻译错误可能产生重大后果的任务
使用一致性预测在自然语言处理中的优势
一致性预测,作为不确定性量化领域的一个相对较新的发展,为自然语言处理带来了新的视角和许多好处。随着我们进入一个对可靠和值得信赖的模型需求不断增长的时代,像一致性预测这样的方法脱颖而出,有望解决自然语言处理中的一些固有问题。让我们深入了解将一致性预测整合到自然语言处理任务中的独特优势:
-
模型无关性:一致性预测的一个优势是它与任何机器学习模型兼容。一致性预测可以应用于任何统计、机器或深度学习模型。
-
透明和可解释性:一致性预测不是作为一个黑盒运行。非一致性分数和结果 p 值提供了可解释的不确定性度量。
-
适应性:一致性预测适用于其应用的数据。它不做强烈的分布假设,因此在处理多样化的语言数据时仍然稳健。
将一致性预测引入自然语言处理工具箱为从业者提供了一个有前景的途径来处理人类语言固有的不确定性。提供有效的和可靠的置信度度量有助于构建更稳健和值得信赖的自然语言处理系统。
这里讨论了应用于自然语言处理任务的一致性预测的一个例子,例如基于评论内容的“正面”和“负面”情感类别标签预标记的 IMDB 电影评论:github.com/M-Soundouss/density_based_conformal_prediction/tree/master/imdb。
自然语言处理和大型语言模型的一致性预测是一个新兴且至关重要的研究领域。
该领域的一个显著贡献是 Kumar 等人发表的一篇论文,题为《基于大型语言模型的多选题回答的一致性预测》(arxiv.org/abs/2305.18404)。
本文深入探讨了如何使用一致性预测量化语言模型中的不确定性,从而为大型语言模型的更可靠和可靠的部署铺平道路,特别是在安全至关重要的场景中。
论文的主要焦点是多项选择题回答任务。通过一系列实验,它展示了一致性预测在推导与预测准确度强相关的不确定性估计方面的有效性。
深入实验设置,作者使用了 LLaMA-13B 模型。这个模型拥有 130 亿个参数,在令人惊叹的 1000 亿个标记上进行了训练,为来自MMLU 基准数据集(paperswithcode.com/sota/multi-task-language-understanding-on-mmlu)的 MCQA 问题生成了预测。
实验围绕一个用于训练一致性预测模型的校准集和一个用于测试模型能力的评估集来构建。采用交叉验证方法以确保实验的完整性,确保校准集和评估集是从一致分布中抽取的。
性能指标是多方面的,包括准确度、覆盖率和效率。一个关键的观察结果是,LLaMA-13B 模型的 softmax 输出,尽管平均而言进行了合理的校准,但表现出信心不足和过度自信的倾向,尤其是在概率分布的极端部分。这一观察在诸如形式逻辑和大学化学等主题中尤为明显,这些主题本质上具有更多的模糊性和复杂性,使得它们对 LLM 准确导航变得具有挑战性。
其中一个引人注目的发现是,一致性预测提供的不确定性估计与预测准确度之间存在着强烈的关联。这种关联意味着当模型对其预测表现出更高的不确定性时,它更容易出错。这一见解对于下游应用,如选择性分类,极为宝贵。通过利用这些不确定性估计,可以过滤掉低质量的预测,从而提升整体用户体验。
论文强调了一致性预测作为 LLM 中不确定性量化灯塔的潜力。通过整合这种方法,LLM 可以更加可靠,尤其是在高风险环境中,增强其可信度和扩大其适用范围。
第二篇关键论文是《寻求帮助的机器人:大型语言模型规划者的不确定性对齐》(robot-help.github.io),由普林斯顿大学和 DeepMind 的研究团队发表。
在机器人和人工智能领域,赋予机器人辨别不确定性的能力是一个关键挑战。本文针对这一挑战进行了探讨,特别是针对通过语言指令控制的机器人。语言固有的灵活性为人类提供了自然接口,用于传达任务、上下文信息和意图。它还便于人类在机器人遇到不确定性时提供澄清。
近期进展展示了 LLMs 在规划方面的潜力。这些模型可以解释和响应非结构化语言指令,生成时间扩展的计划。这些 LLMs 的优势在于它们能够利用预训练过程中所获得的广泛知识和丰富上下文,从而提高抽象推理能力。然而,当前 LLMs 的一个显著障碍是它们倾向于“幻觉”。换句话说,它们倾向于生成具有高度自信的输出,虽然看似合理,但可能是不正确的,并且没有基于现实。
这种对输出的过度自信可能是有害的,尤其是在基于 LLM 的机器人规划中。当在现实世界设置中提供通常充满固有或无意模糊性的自然语言指令时,这种情况会进一步加剧。误解此类指令可能导致不希望看到的行为,在极端情况下,甚至可能是不安全的行为。
为了说明,本文提供了一个例子,其中一台被分配加热食物的机器人被指令将碗放入微波炉中。在存在多个碗的情况下,这样的指令变得模糊。此外,如果其中一个碗是金属的,将其放入微波炉中将是危险的。理想情况下,机器人应该识别其不确定性并寻求澄清。虽然基于语言规划的前期工作要么忽视了这种澄清的需要,要么过度依赖广泛的提示,但本文介绍了KNOWNO。
KNOWNO 是一个旨在衡量和调整基于 LLM 规划者不确定性的框架。它确保这些规划者了解自己的局限性,并在需要时寻求帮助。KNOWNO 的基础建立在符合预测理论之上,该理论在完成任务时提供统计保证,同时在复杂的多步骤规划设置中最大限度地减少对人类干预的需求。在各种模拟和真实机器人设置中的实验证明了该框架的有效性。这些实验涵盖了具有不同模糊模式的任务,从空间不确定性到数值不确定性,从人类偏好到 Winograd 模式。
本文提出 KNOWNO 作为一种有潜力的轻量级方法来建模不确定性。它能够无缝地补充并扩展基础模型日益增长的能力。通过利用符合预测,LLMs 可以变得更加可靠,尤其是在精度和安全至关重要的场合。
摘要
在本章中,我们探讨了 NLP 领域中固有的不确定性挑战。认识到 NLP 模型在当今关键系统中的关键作用,本章强调了确保这些模型的预测是可信和可靠的的重要性。本章介绍了一致性预测作为解决深度学习模型输出中出现的误校准问题的解决方案,提供了一种稳健地量化预测置信度的方法。在本章中,您获得了对 NLP 中不确定性量化复杂性的洞察,了解了为什么深度学习模型经常产生误校准预测的原因,以及量化 NLP 中不确定性的各种方法。最后,我们深入研究了针对 NLP 任务定制的一致性预测技术。
在本章结束时,您应该对 NLP 中不确定性的挑战、一致性预测的优点和机制,以及如何有效地将此技术应用于 NLP 问题的实用知识有一个全面的理解。
在下一章中,我们将深入探讨不平衡数据的迷人世界,展示一致性预测如何解决处理此类场景中存在的挑战。
第四部分:高级主题
本部分将提供如何使用一致性预测来解决不平衡数据问题的示例,向您介绍可用于多类分类问题的各种一致性预测方法。
本节包含以下章节:
-
第十一章, 处理不平衡数据
-
第十二章, 多类一致性预测
第十一章:处理不平衡数据
本章深入探讨了不平衡数据的迷人世界,以及如何使符合预测成为处理此类场景的转折点。
不平衡数据集是机器学习中常见的挑战,往往导致预测偏差和模型表现不佳。本章将为您提供解决这些问题的知识和技能。
我们将了解不平衡数据,并学习为什么它在机器学习应用中构成一个重大挑战。然后,我们将探讨传统上用来解决不平衡数据问题的各种方法。
本章的重点是符合预测在解决不平衡数据问题中的应用。
本章将通过以下主题来展示如何通过符合预测解决不平衡数据问题:
-
介绍不平衡数据
-
为什么不平衡数据问题难以解决
-
解决不平衡数据的方法
-
如何将符合预测应用于帮助解决不平衡数据问题
加入我们这次启发性的旅程,我们将揭示不平衡数据的复杂性,并通过符合预测发现创新解决方案。
到本章结束时,您将深入了解如何有效地应用符合预测来处理不平衡数据,从而提高机器学习模型的性能和可靠性。
介绍不平衡数据
在机器学习中,我们经常遇到需要更加平衡的数据集。但一个数据集不平衡意味着什么?
一个不平衡的数据集是指不同类别样本分布不均匀的情况。换句话说,某一类别的样本数量显著多于其他类别。这在许多实际应用中很常见。例如,在用于欺诈检测的数据集中,非欺诈交易(多数类别)的数量通常远高于欺诈交易(少数类别)。
想象一个记录罕见疾病实例的医疗数据集。大多数患者将无病,导致大量健康记录的大类别,而受疾病影响的患者比例极小。这种类别分布的不平衡就是我们所说的不平衡数据。
不平衡数据可能导致预测建模中的重大挑战。由于机器学习算法的本质是设计来最小化错误并最大化准确率,当在不平衡数据上训练时,它们往往偏向于多数类别,这通常是以牺牲少数类别的预测准确率为代价的。
在我们的医学示例中,一个简单的模型可能会预测没有人患有疾病,由于健康记录的数量巨大,因此实现了高准确率,但未能识别出少数几个确实患有疾病的病例。这样的模型可能会因为不平衡而误导,导致在现实世界中产生严重的后果。
不平衡数据的性质在各个行业中普遍存在。从金融中的欺诈检测,欺诈交易虽然罕见但至关重要,到气象学中的自然灾害预测,感兴趣的(例如,龙卷风或地震)事件虽然不常见但意义重大,不平衡带来了专业人士必须能够应对的挑战。
认识和理解不平衡数据是有效解决其挑战的第一步。随着我们继续前进,我们将深入探讨为什么这些问题特别难以解决,并探讨处理它们的方法,重点关注符合预测的潜力。
为什么不平衡数据问题难以解决
解决不平衡数据并非易事,原因如下。挑战的核心是传统机器学习算法的性质。这些算法最小化总体错误,并假设类别分布平衡。当面对不平衡数据集时,这就会成为问题,导致对多数类别的明显偏差。
当我们意识到在许多情况下,少数类别的信息更为重要时,这个问题的重要性就变得显而易见了。以欺诈检测或医疗诊断为例。虽然欺诈交易或疾病实例可能很少,但它们的正确识别至关重要。然而,在倾斜数据上训练的模型可能会经常倾向于预测多数类别,表面上达到很高的准确率,但未能实现其核心目标。
更进一步,传统的指标,如准确率,在这里有时并不是我们的朋友。一个只有 2%欺诈交易的数据库可能会让我们产生自满:一个简单地将每笔交易预测为合法的模型会吹嘘 98%的准确率,掩盖了它在检测欺诈方面的彻底失败。
关于这个主题的学术文献迷宫使事情变得更加困难。由于有许多方法和理论,确定哪些真正有效就像在 haystack 中找针一样。经常讨论的方法,如合成少数过采样技术(SMOTE),需要经过仔细分析来评估其实际的有效性。
给那些刚开始学习数据科学的人一些建议:用敏锐的眼光看待不平衡分类的领域。并非所有闪光的东西都是金子。虽然寻找一个神奇的解决方案很有吸引力,但有时它关乎重新定义问题。通过转变我们的视角,关注更相关的指标,我们可以找到一条出路,做出明智而有效的决策。
我们现在将探讨一些处理不平衡数据的常见方法。
解决不平衡数据的方法
面对不平衡类别分布的挑战时,我们应该转向何处?虽然该领域的大部分资源建议使用重采样方法,包括欠采样、过采样以及如 SMOTE 等技术,但重要的是要注意,这些建议通常回避了基础理论和实际应用。
在深入探讨不平衡类别的解决方案之前,首先理解其潜在性质是至关重要的。这个问题可能更适合在特定场景中解决,例如异常检测,而不是在传统的分类问题中。
在特定场景中,类别不平衡不是静态的。它可能演变或可能受到对适当标签的需求的影响。例如,考虑一个监控系统网络流量以检测潜在安全威胁的系统。最初,威胁可能很少,导致类别不平衡。然而,随着系统的成熟和更多潜在危害被识别和标记,不平衡可能发生变化,减少或逆转偏差。
解决这种动态不平衡需要自适应方法,这些方法可以在数据特征变化时重新校准,确保模型在其生命周期内保持有效。
当这些挑战不存在时,明智的做法是将重点转向评估指标。我们之前已经检查了如对数损失和 Brier 损失等指标,这些指标在评估模型校准方面至关重要。值得注意的是,使用这些指标与重采样技术可能会对模型的校准产生不利影响。
对于不平衡数据,一个经常提出的补救措施是通过各种重采样技术修改数据集。
重采样方法是用来平衡不平衡数据集中类别分布的技术。这些方法可以大致分为两大类:
-
过采样:这涉及到增加少数类别的实例数量。方法包括以下几种:
-
随机过采样:这涉及到复制少数类别的随机记录。
-
SMOTE:SMOTE 通过遵循特定的算法在特征空间中为少数类别创建合成样本。它首先随机选择一个少数类别实例,并找到其 k 个最近的少数类别邻居。SMOTE 从这些邻居中随机选择一个,并计算其特征与所选实例特征之间的差异。然后,它将这个差异乘以 0 到 1 之间的随机数,并将结果加到原始实例的特征上。这个过程生成一个新的、合成的数据点,它位于连接实际实例与其所选邻居的实际线段上,从而有效地创建出对构建更平衡数据集有贡献的合理新实例。
-
自适应合成(ADASYN)采样:通过遵循它们的密度分布为少数类创建合成实例。对于比容易学习的样本更具学习挑战性的少数样本,会产生额外的合成数据。
-
-
欠采样:这涉及到减少多数类的实例数量。方法包括以下几种:
-
随机欠采样:这涉及到随机消除多数类实例。
-
Tomek 链接:这识别了最近邻类中实例的对,并从这对中移除多数类实例。
-
聚类中心:这种方法用 k-means 算法的聚类中心替换多数样本的聚类。
-
邻域清洗规则:这种方法结合了欠采样和编辑最近邻(ENN)方法,以去除被 KNN 分类器错误分类的多数类实例以及被错误分类的少数类实例。
-
-
结合过采样和欠采样:可以使用技术来同时过采样少数类和欠采样多数类以达到平衡。
-
集成重采样:这涉及到通过重采样创建多个平衡子集,并通过构建模型集成。
虽然重采样方法可以帮助平衡类分布,但它们并不总是能提高模型性能,特别是在校准方面。在单独的、未受干扰的验证集上评估模型,并考虑其他策略,如选择适当的评估指标,是至关重要的。
尽管像 SMOTE 这样的重采样方法多年来一直被视为潜在解决方案,但并没有证据表明这些方法在广泛的数据库集上都能有效工作。例如,在 Kaggle 竞赛中,SMOTE 从未成功作为获胜方案的一部分被使用。
多年来,重采样方法,尤其是 SMOTE,一直被推崇为解决不平衡数据集挑战的潜在解决方案。然而,对这些方法有效性的深入研究描绘出一幅更为复杂的图景。尽管它们在文献和教程中被广泛提及,但支持它们在多样化数据集上有效性的实证证据却明显不足。这一点在 Kaggle 竞赛的世界中得到了证明,在那里精确度、创新和有效性至关重要。值得注意的是,SMOTE 和类似策略很少,如果不是从未,成为获胜方案的一部分。这不仅仅是一个统计异常或巧合。它强调了深刻的观察:虽然这些方法可能在某些情况下提供表面上的缓解,但它们并不普遍适用或可靠有效。任何追求尖端性能的从业者都应该以健康程度的怀疑态度和彻底的验证来对待重采样方法。
Ruben Van Den Goorbergh、Maarten van Smeden、Dirk Timmerman、Ben Van Calster 的研究论文《使用逻辑回归对类别不平衡纠正对风险预测模型的影响:说明和模拟》探讨了类别不平衡调整对逻辑回归模型性能的影响。研究仔细审查了模型的常规和岭回归惩罚版本,评估这些纠正如何影响它们的歧视能力、校准准确性和分类有效性。
论文分析了随机欠采样和 SMOTE 等技术,利用蒙特卡洛模拟和针对卵巢癌诊断的真实世界案例研究。
有趣的是,尽管这些纠正方法一致导致模型校准不准确(对落入少数类别的可能性高估明显),但它们并不一定增强了通过接收者操作特征曲线下的面积来衡量的歧视能力。然而,它们确实提高了分类指标,如敏感性和特异性。仅通过调整概率阈值就可以实现类似的分类结果。
论文认为,类别不平衡纠正技术可能会损害预测模型的性能,特别是在校准方面。研究确定,结果的不平衡并不一定构成问题,而试图纠正这种不平衡可能会降低模型的性能。
论文的研究结果表明,类别不平衡本身并不固有地存在问题,而纠正它的努力可能会无意中降低模型性能。
在数据科学中,区分预测和分类至关重要。分类往往要求做出过早的决定,将预测与决策过程合并,可能会忽视实际决策者的考虑。这在决策成本转移或数据采样标准改变时尤其如此。另一方面,预测保持中立,作为任何决策者的工具。
在他的文章《分类与预测》(www.fharrell.com/post/classification/)中,Frank Harell 认为,分类可能导致草率的决策,其在机器学习中的应用有时是误导性的。另一方面,概率建模量化了潜在的模式,通常更紧密地与项目的核心目标相一致。
当结果明确时,分类最为合适,预测者提供几乎确定的预测结果。然而,许多机器学习爱好者倾向于使用分类器,忽视了深深植根于统计学中的概率思维的丰富性。一个例子是将逻辑回归频繁误分类为仅仅是一种分类工具,而实际上它提供了丰富的概率估计。
认为二元决策需要二元分类是一种误解。通常,决策可能是收集更多数据或采取分阶段的方法。例如,医生可能会根据不断发展的症状选择渐进式治疗,而不是一开始就做出二元决策。
考虑一个高清晰度场景,例如光学字符识别。在这里,结果主要是确定性的,机器学习分类器表现卓越。然而,当存在内在变异性时,例如在预测疾病结果时,概率估计变得至关重要。它们本质上提供了误差范围,帮助决策者理解相关的风险。
在不平衡场景中,分类器也存在挑战。例如,在一个绝大多数为非疾病患者的数据集中,一个简单的分类器可能会将所有人标记为非疾病,从而实现高准确率,但在实际检测中却失败了。解决这种不平衡通常涉及诸如子采样等实践,这可能导致更多问题。相比之下,逻辑回归可以通过为不同的数据集或流行度重新校准来优雅地处理这种情况。
准确性指标的选取也是至关重要的。选择简单的准确性度量可能会导致误导性的模型。相反,应该关注更细微且统计上可靠的准确性评分规则。
总之,虽然分类器可能适用于具有高清晰度结果的确定性场景,但对于大多数具有内在变异性及细微差别的现实世界情况,基于概率的模型,如逻辑回归,更为合适、灵活且具有洞察力。
重采样方法的问题在于它们破坏了校准,这对于决策至关重要;重采样技术并没有增加任何新信息。SMOTE 论文被广泛接受,并获得了超过 25K 次的引用,这是非常不幸的,特别是考虑到该论文已经 20 年历史,仅使用了几个数据集,并使用了一些弱分类器,如 C4.5(决策树分类器)、Ripper(基于规则的算法)和朴素贝叶斯分类器。
该论文还关注了不适当的指标,仅关注曲线下面积(AUC)和 ROC 凸包,而没有考虑测量分类器校准的指标。因此,该论文未能报告 SMOTE 对校准产生的负面影响。
在下一节中,我们将探讨有效应对机器学习中不平衡数据集挑战的策略。
解决不平衡数据的方法
解决不平衡数据的问题不仅仅是实现平衡的类别分布;它涉及到理解问题的细微差别,并采取涵盖模型性能所有方面的整体方法。让我们来探讨这些方法:
-
理解问题:第一步是对问题有深入的理解。重要的是要辨别数据不平衡的原因。是因为数据的性质,还是由于数据收集中的某些外部因素或偏差?识别根本原因可以为最有效的策略提供见解。
-
优先考虑校准:一个经常被忽视的关键方面是校准。模型提供反映真实可能性的概率估计的能力至关重要,尤其是在基于这些概率做出决策时。确保模型校准良好通常比单纯的类别分离更为关键。
-
超越 ROC AUC 的指标:虽然接收者操作特征曲线下的面积(ROC AUC)是一个流行的指标,但仅仅依赖它可能会误导,尤其是在数据不平衡的数据集中。纳入能够捕捉校准本质的指标至关重要。例如,预期校准误差(ECE)、对数损失和 Brier 分数等指标,我们在前面的章节中已经探讨过,它们提供了对模型性能的更全面理解。
-
重采样技术:尽管过采样、欠采样和 SMOTE 等技术被宣传为潜在解决方案,但理解它们的含义至关重要。虽然它们可能平衡类分布,但它们不一定总是改善或维持模型的校准。因此,任何重采样都应该谨慎进行,并且结果模型应该在未接触的验证集上严格评估。
-
成本敏感学习:另一种方法是给少数类和多数类的误分类分配不同的成本。通过这样做,算法在训练过程中内在地给予少数类更多权重,旨在减少更昂贵的错误。
-
阈值调整:通过调整决策阈值(对于二分类通常为默认值 0.5)来远离,可以在少数类中表现更好。这关乎于在精确度和召回率之间找到平衡,当现实世界中假阳性与假阴性的成本不同时,这种技术尤其有效。
最终目标是通过构建能够区分类别并提供校准可靠概率估计的有效模型。强调理解、校准和正确指标的多方面方法是解决数据不平衡问题的途径。
接下来,我们将探讨如何将符合性预测应用于帮助解决数据不平衡问题,并探讨其增强数据分析的潜力。
通过应用符合性预测解决数据不平衡问题
符合性预测是一种可以应用于处理数据不平衡问题的技术。以下是它可以用作的一些方式:
-
优雅地处理不平衡数据集:一致性预测可以优雅地处理大型不平衡数据集。它严格定义了所需的相似度水平,消除了任何歧义。它可以处理严重不平衡的数据集,其比例为 1:100 到 1:1000,而无需过采样或欠采样。
-
局部聚类一致性预测(LCCP):LCCP 在一致性预测框架内采用双层分区方法。最初,它根据类别分类将不平衡的训练数据集分割成子集。然后,它进一步使用聚类技术将多数类别的示例进一步分割成子集。LCCP 的目标是在提高预测过程效率的同时,为其预测提供可靠的置信水平。
-
蒙德里安一致性预测(MCP):这可以处理不平衡数据集。它根据各自标签对数据进行分类,并为每个类别分配一个独特的显著性水平,确保在不同类别之间保持预测的有效性。
-
非一致性评分:一致性预测的核心是非一致性度量,它根据新观察结果相对于训练数据“奇怪”的程度进行排名。这个度量可以适应不平衡数据集,为少数类赋予更多权重,确保模型对与该类相关的模式更加敏感。
-
具有有效性的校准:一致性预测保证如果我们声称一个预测区间具有 95%的置信水平,那么在长期来看,它将包含实际结果 95%的时间。这种内置校准,即使在不平衡数据集中也能保持,确保预测区间或集合真正反映了模型的不确定性。
-
与底层模型的灵活性:一致性预测并不局限于特定的机器学习算法。这意味着,即使在处理不平衡数据的情况下,从业者也可以选择表现最佳的基模型(基于树的算法、神经网络或线性模型),然后应用一致性框架以获得可靠的预测。
-
透明性和可解释性:一致性预测框架的透明性质允许简单的解释。这种透明性对于不平衡数据集来说非常有价值,使利益相关者能够理解为什么做出特定的预测,以及模型对这些预测的确定性。
-
适应变化的分布:不平衡数据的一个挑战是少数类的分布可能会随时间变化。由于它强调根据新观察的非一致性进行排名,一致性预测可以适应这些变化,确保即使底层数据分布演变,预测仍然保持校准。
一致性预测提供了一种框架,可以适应以各种方式处理不平衡数据集,为机器学习中这个常见问题提供潜在解决方案。虽然分类现在很常见,但最终目标是实现明智的决策,这需要即使在有偏的类别数据中也能提供可靠的概率估计。
使用 Venn-Abers 预测器解决不平衡数据
在机器学习不断发展的世界中,解决分类问题已经变得很常见。从区分猫和狗到更复杂的挑战,分类的真正目的不仅仅是标记;它还在于促进明智的决策。为此,仅仅类别标签是不够的。我们需要良好的类别概率校准。
大多数数据科学家,尤其是在他们职业生涯早期的人,倾向于使用标准指标如准确率、精确率和召回率来评估分类模型。虽然这些指标对于更直接的任务很有洞察力,但它们对于更复杂、更现实的问题可能会产生误导。分类的真正本质在于校准,这是入门课程中经常被忽视的一个方面。
对于从事关键应用(从金融到医疗保健)的专业人士来说,分类器的校准至关重要。分类问题的关键在于做出明智的决策。这些决策围绕着各种场景的概率,每种场景都有潜在的成本和收益。
以银行业为例。如果一个模型仅仅预测一个潜在客户不会违约,它需要为决策提供更多深度,尤其是在涉及大量资金的情况下。所需的是一个提供各种结果良好校准概率的模型,以便对风险和回报进行细致的评价。
然而,出现了一个重大挑战:许多机器学习模型本身并不产生类别概率。即使它们能产生,这些概率也常常被校准不当,导致错误的决策。这在关键领域尤其令人担忧。例如,由于概率校准不当而误解障碍物的自动驾驶汽车可能导致事故。
那么,如何才能实现更好的校准呢?经典方法,如 Platt 的缩放法(en.wikipedia.org/wiki/Platt_scaling)和等调回归(en.wikipedia.org/wiki/Isotonic_regression),是早期的解决方案。然而,这些方法存在局限性,通常根源于限制性假设,这阻碍了它们在多样化数据集上的有效性。
进入Venn-Abers 预测器,这是分类器校准中的希望灯塔。Venn-Abers 预测器,符合性预测框架的一个子集,承诺了一种更稳健的校准方法。与传统的不同,它们不依赖于过于简化的假设,并提供了适用于当今复杂数据集的更通用的校准工具。
从本质上讲,如果你想在 2022 年及以后充分利用机器学习分类器的潜力,Venn-Abers 和更广泛的符合性预测框架值得探索。它们可能是解锁良好校准、可靠的机器学习模型的关键。
Venn-Abers 预测器在机器学习中脱颖而出,为测试数据标签提供概率驱动预测。使它们与众不同的地方在于它们内置的校准保证。这种保证建立在数据观察通常独立来源于一致分布的典型前提之上。
Venn-Abers 方法的核心灵感来源于等调回归。它精炼了 Zadrozny 和 Elkan 开创的概率预测校准方法。与 Platt 的缩放器、等调回归等技术相比,Venn-Abers 预测器配备了固有的数学证明,确保其无偏有效性。
Venn-Abers 预测器的一个有趣特性是它们能够为类别 1标签生成双重概率预测。这种双重输出捕捉了预测不确定性的范围。因此,这些预测器提供了校准预测并揭示了与每个预测相关的内在置信度。这使得它们成为增强基于概率预测校准的无价工具。以下是方法:
-
真实生活的概率区间:Venn-Abers 预测器在提供校准概率区间方面表现出色。这确保了它们产生的概率真正代表了事件的实际可能性,消除了过度自信或低估的陷阱。
-
跨模型的通用性:Venn-Abers 校准的美丽之处在于其适应性。无论你是在处理决策树、随机森林,甚至是 XGBoost 模型,Venn-Abers 都可以重新校准它们,微调过于雄心勃勃和过于谨慎的模型以提高其准确性。
-
具有有效区间的增强决策支持:预测器不仅停留在标签上。对于每一次预测,尤其是来自通常复杂的模型(如随机森林和 XGBoost)的预测,Venn-Abers 提供概率区间。这个区间的跨度是预测可靠性的晴雨表。
Venn-Abers 预测器对于那些在处理不平衡数据问题中航行的人来说是一盏灯塔。它们精炼了各种机器学习模型的预测准确性,并为用户提供可信的概率区间,使决策更加明智和自信。
为了说明不平衡数据问题中的各种问题,我们将使用以下笔记本:https://github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_11.ipynb
本笔记本将探讨处理不平衡类别问题的各种方法,并将符合性预测应用于校准类别概率。
我们将使用 Kaggle 的信用卡欺诈检测数据集:https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud
该数据集包含 2013 年 9 月欧洲持卡人的信用卡交易数据。交易发生在两天内,共有 492 笔欺诈交易,占 284,807 笔交易中的 0.17%。数据集高度不平衡,正类(欺诈交易)占所有交易的 0.17%。
该数据集包含由 PCA 变换得到的数值特征;由于保密性和隐私问题,原始特征已被保留。
特征V1、V2、... V28是使用 PCA 获得的主成分:
-
唯一保留的原始特征是
Time和Amount -
特征
Time包含每个交易相对于数据集中第一个交易的时间(以秒为单位) -
特征
Amount是交易金额 -
label类是需要预测的因变量(标记为 1 的欺诈交易)
我们将使用各种分类器,包括 XGBoost、LightGBM、CatBoost、随机森林和逻辑回归等流行分类器。
信用卡欺诈检测笔记本的关键见解
在我们对信用卡欺诈检测数据集的探索中,我们发现了几个关键见解,这些见解可以重塑我们对不平衡数据的处理方法:
-
拥抱简单性:最有效的策略通常是保持数据不变。与复杂的重采样技术相比,简约的方法有时可以产生更优的结果。
-
重新审视不平衡:与其将不平衡数据视为需要直接解决的困境,不如理解不平衡并不总是根本问题。追求的目标不应该是平衡天平,而应该从数据中提取有意义的见解,无论分布如何。
-
稳健性度量指标的力量:度量指标的选择可以决定你的分析成败。通过采用一套全面的度量指标,你可以准确定义问题并为实际解决方案铺平道路。
-
校准的核心作用:在校准现实世界的决策场景中,特别是在关键应用中,校准是不可协商的。准确的概率估计至关重要,确保决策基于可靠的数据。
-
重采样的双刃剑:虽然重采样方法可能看起来很有希望,但它们通常会损害模型的校准。我们的分析表明,这些技术可能会降低校准指标,如 ECE、对数损失和 Brier 分数。
-
一致性预测 作为灯塔:在处理不平衡数据带来的挑战和重采样的潜在陷阱时,一致性预测成为一线希望。它提供了一种可靠的方法来校准概率,确保即使在重采样之后,数据仍然有利于明智的决策。
通过内化这些见解,我们可以以更精细的视角来处理不平衡数据集,优先考虑有意义的分析而非表面的修复。
摘要
在机器学习中,不平衡数据集的挑战往往导致预测偏差和模型结果受损。本章深入探讨了这类数据集的复杂性,并通过一致性预测,一种处理这些场景的突破性方法,照亮了前进的道路。
传统方法,如重采样技术以及度量标准,如 ROC AUC,往往无法有效解决不平衡问题。此外,它们有时甚至会导致结果更加偏斜。另一方面,一致性预测作为一种稳健的解决方案,提供了校准和可靠的概率估计。
这些方法的实际应用通过 Kaggle 的信用卡欺诈检测数据集进行说明,这是一个固有的不平衡数据集。这种探索强调了理解数据、使用稳健的度量标准以及一致性预测的变革潜力。
从本质上讲,尽管不平衡数据带来挑战,但从业者可以使用如一致性预测等正确工具,朝着校准和有洞察力的预测方向前进。
在本书的下一章中,我们将深入探讨多类一致性预测的迷人世界。本章将向您介绍各种可以有效地应用于多类分类问题的一致性预测方法。
第十二章:多类一致性预测
欢迎来到本书的最后一章,我们将深入探讨多类一致性预测的迷人世界。本章将向您介绍各种可以有效地应用于多类分类问题的一致性预测方法。
我们将探讨多类分类的概念,这是机器学习(ML)中的一种常见场景,其中实例可以属于许多类别之一。理解这个问题是有效应用一致性预测技术的第一步。
接下来,我们将研究用于评估多类分类问题的度量标准。这些度量标准为我们模型的性能提供了定量衡量,理解它们对于有效模型评估和选择至关重要。
最后,我们将学习如何将一致性预测应用于多类分类问题。本节将提供实用的见解和技术,可以直接应用于你的工业应用。
到本章结束时,你将掌握在多类分类中的宝贵技能和知识,并学会如何有效地将这些方法应用于这些问题。那么,让我们深入其中,开始我们的多类一致性预测之旅!
在本章中,我们将涵盖以下主要主题:
-
多类分类问题
-
多类分类问题的度量标准
-
如何将一致性预测应用于多类分类问题
多类分类问题
在机器学习中,分类问题是普遍存在的。它们涉及为实例预测一个离散的类别标签输出。虽然二元分类——预测两种可能结果之一——是一种常见场景,但许多现实世界的问题需要预测超过两个类别。这就是多类分类发挥作用的地方。
多类分类是一个实例可以属于许多类别之一的问题。例如,考虑一个设计用于将新闻文章分类到主题的机器学习模型。这些文章可以被分类到如体育、政治、科技、健康等类别。每个这些类别代表一个类别,由于有超过两个类别,这是一个多类分类问题。
需要注意的是,在多类分类中,每个实例恰好属于一个类别。如果每个实例可以属于多个类别,那么它将是一个多标签分类问题,这属于不同类型的问题。
多类分类问题是机器学习中的基本问题,它们需要与二元分类问题略有不同的方法。让我们更深入地探讨多类分类的复杂性。
多类分类算法
几种机器学习算法可以直接处理多类分类问题。这些包括但不限于以下:
-
决策树:如分类与回归树(CARTs)之类的决策树算法可以自然地处理多分类。
-
朴素贝叶斯:朴素贝叶斯将每个类别视为一个单独的一对多二分类问题,并选择概率最高的结果。
-
然后,可以使用
softmax激活函数来计算每个类别的概率分布。
许多机器学习算法天生是为两个类别之间的二分类设计的。为了将这些模型扩展到具有两个以上类别的多分类问题,必须采用特殊策略。两种常见的方法是“一对多”和“一对一”。
接下来,我们将更详细地探讨这些一对多和一对一策略,包括如何将二分类结果汇总以做出最终的多分类预测。我们还将讨论使用适用于具有两个以上类别的问题的专用性能指标来评估多分类分类器。
一对多和一对一策略
对于不原生支持多分类的算法,可以使用以下策略,如一对多(也称为一对余)和一对一:
-
一对一策略:对于具有n个类别的难题,将训练n个独立的二分类模型。每个模型被训练以区分一个类别的实例与其他所有类别的实例。所有n个模型都应用于一个新实例,并且给出最高置信度分数的模型确定实例的类别。
-
一对一策略:在这种策略中,为每一对类别训练一个二分类模型。对于n个类别,这将产生n(n-1)/2个模型。每个模型的决策都会对投票方案做出贡献,并且获得最多投票的类别被选为实例的最终类别。例如,对于 4 个类别的难题,将构建 4*3/2=6 个二进制模型,每个类别一对。每个模型对其预测的类别投一票,所有模型中投票最多的类别被选为最终预测。因此,如果有四个类别,如果三个模型预测类别 A,两个预测类别 B,一个预测类别 C,则由于它获得了最多的投票,类别 A 将被选中。这样,每个模型的决策都会对投票方案做出贡献,以确定整体预测的类别。
以下部分将讨论用于评估多分类问题的指标。理解这些指标对于评估我们模型的性能以及就模型选择和优化做出明智决策至关重要。
多分类问题的指标
在多类分类领域,评估模型性能与开发模型一样重要。有效的评估依赖于利用正确的指标,这些指标可以准确衡量多类分类模型的性能并提供改进的见解。本节揭示了评估多类分类模型性能所必需的各种指标,为选择和采用适合您特定用例的正确指标提供了坚实的基础。
混淆矩阵
评估多类分类模型的基本指标之一是混淆矩阵。它提供了一个算法性能的可视化,通常是监督学习(SL)算法。混淆矩阵的每一行代表实际类别的实例,每一列代表预测类别的实例。它是理解模型性能(超越整体准确率)的重要工具,可以深入了解分类错误。
精确率
精确率(或阳性预测值;简称PPV)是一个衡量指标,它检查模型做出的所有正预测中真正正预测的数量。高精确率表明假正率低。对于多类分类问题,每个类别的精确率分别计算,可以平均以了解整体性能。
召回率
召回率(或灵敏度或真正正率;简称TPR)衡量实际正例中真正正预测的数量。对于识别所有实际正例至关重要的问题,这是一个关键指标。与精确率一样,召回率对每个类别进行计算,可以平均以进行整体性能评估。
F1 分数
F1 分数是精确率和召回率的调和平均数,平衡了这两个指标。在处理不平衡数据集时尤其有用,它提供了一个超越准确率的模型性能的更全面视角。
宏观和微观平均指标
在多类分类问题中,对精确率、召回率和 F1 分数等指标进行平均,通常称为宏观和微观平均,可以以多种方式完成:
-
宏观平均为每个类别独立计算指标,然后取平均值,对待所有类别同等对待
-
微观平均将所有类别的贡献汇总起来计算平均指标
曲线下面积(AUC-ROC)
另一个重要的指标是受试者工作特征曲线下面积(AUC-ROC)。虽然它主要用于二元分类问题,但可以通过考虑每个类别与其他类别的关系来扩展到多类分类。
对数损失及其在衡量多类模型校准中的应用
对数损失,也称为 逻辑损失 或 交叉熵损失,是分类问题(包括多类分类)中常用的损失函数。它通过衡量预测的不确定性来量化分类模型的性能。对数损失对错误分类施加惩罚;对自信错误的预测的惩罚更高。
数学表示
从数学上讲,多类分类的对数损失可以表示如下:
− 1/N ∑(i=1 to N) ∑(j=1 to M) y_ij log(p_ij)
在这里,以下适用:
-
N 是观察的数量
-
M 是类别的数量。
-
y_ij 是一个二进制指示符,表示类 j 是否是观察 i 的正确分类。
-
p_ij 是观察 i 属于类 j 的预测概率。
使用对数损失来衡量校准
一个校准良好的模型是指其预测概率可靠地反映了预测结果的真正可能性。在多类分类中,校准意味着如果模型预测一个类别的概率为 p,那么该类别应该在大约 p 百分比的所有实例中发生,这些实例被预测为具有概率 p。
对数损失和校准
对数损失是评估多类分类模型校准的适当指标,因为它直接比较了预测概率(预测的置信度)与实际类别。一个校准良好的模型将具有较低的对数损失,因为实际类别的预测概率将更高。
如何使用对数损失评估校准
-
预测概率:使用您的多类分类模型预测验证数据集中每个观察的每个类别的概率
-
计算对数损失:使用之前显示的公式计算对数损失
-
解释结果:较低的对数损失值表示校准更好,因为它表明预测概率更接近实际类别
评估您的多类分类模型的对数损失可以为您提供有关模型校准的见解。具有较低对数损失的模型校准更好,提供更可靠的预测概率估计。理解和使用对数损失作为衡量校准的指标对于确保您的多类分类模型在现实世界应用中表现最佳至关重要。
Brier 分数及其在衡量多类模型校准中的应用
Brier 分数,或二次损失,是另一个用于评估分类模型性能的流行指标,包括多类分类问题。它量化了预测概率与实际类别之间的差异,对校准良好的模型赋予较低的分值。
数学表示
对于多类分类,Brier 分数的计算如下:
1/N ∑(i=1 to N) ∑(j=1 to M) (p_ij − o_ij)²
在这里,以下适用:
-
N是观察值的数量。
-
M是类别的数量。
-
y_ij 是一个二元指示器,表示类别 j 是否是观察 i 的正确分类。
-
p_ij 是预测观察 i 属于类别 j 的概率。
使用 Brier 分数来衡量校准
Brier 分数是一种有效的指标,用于评估多类模型的校准情况,因为它在预测概率与实际结果之间存在较大差异时对模型进行更多惩罚。一个校准良好的模型将具有较低的 Brier 分数,因为其预测概率将更接近实际结果。
如何使用 Brier 分数评估校准
Brier 分数提供了一种定量评估多类分类器预测概率校准程度的方法。评估校准对于确保在实际部署中的可靠性至关重要。
要使用 Brier 分数,主要有三个步骤:
-
预测概率:使用你的多类分类模型来估计验证数据集中每个观察值的每个类别的概率。
-
计算 Brier 分数:使用提供的公式计算 Brier 分数。
-
解释结果:较低的 Brier 分数表示校准更好。它表明模型的预测概率与实际结果更一致,从而使模型更可靠。
从本质上讲,使用 Brier 分数来评估你的多类模型的校准有助于确保模型概率估计的可靠性。较低的 Brier 分数,反映了预测概率与实际概率之间差异较小,表明模型校准良好,增强了模型在实际应用中的可信度。理解并利用 Brier 分数作为校准指标对于优化实际场景中多类分类模型的性能至关重要。
理解和运用适当的指标对于评估和改进多类分类模型至关重要。对这些指标有深入的了解可以让我们进行更细致的分析,为开发稳健且高效的多类分类模型以及确保其在实际场景中的成功部署铺平道路。
一致性预测如何应用于多类分类问题
一致性预测是一个强大的框架,可以应用于多类分类问题。它提供了一种带有确定性度量的预测方法,这在处理多个类别时尤其有用。
在前面的章节中,我们已经探讨了在多类分类的背景下,一致性预测是如何为给定实例的每个类别分配一个p值的。
p 值代表了对该类别的预测置信水平。p 值越高,模型对该实例属于该类别的信心就越强。
将共形预测应用于多类分类的步骤如下:
-
校准:将一部分训练数据,称为校准集,留出。模型在剩余数据上训练。
-
预测:对于每个类别,模型预测类别得分。一致性得分,它衡量预测与校准集中实际结果的一致性,被计算出来。
-
p 值计算:对于一个新的实例,模型为每个类别计算一个非一致性得分。然后,每个类别的 p 值被计算为校准集中具有更高非一致性得分的实例比例。
-
输出:模型输出预测的类别标签及其 p 值。类别按其 p 值排序,为每个预测提供了置信度度量。
将共形预测应用于多类分类问题提供了几个好处:
-
置信度度量:共形预测为每个预测提供了一个置信度度量(p 值),这在决策过程中非常有用
-
有效性:共形预测提供了有效性的理论保证,这意味着预测的错误率将接近用户设定的显著性水平
-
效率:共形预测在计算上效率高,可以应用于大型数据集
-
通用性:共形预测可以与任何机器学习算法一起使用,使其成为多类分类问题的多功能工具
下一个部分将探讨如何将 Venn-ABERS 预测器应用于多类分类问题。
使用归纳和交叉 Venn-ABERS 预测器进行多类概率分类
Venn-ABERS 是由 Vladimir Vovk、Ivan Petej 和 Valentina Fedorova 开发的一种共形预测方法(带有和没有有效性保证的大规模概率预测器,papers.nips.cc/paper/2015/hash/a9a1d5317a33ae8cef33961c34144f84-Abstract.html),以解决像 Platt 缩放和等调回归这样的经典校准器的局限性。它无论数据分布、数据集大小或底层分类模型如何,都保证了数学有效性。
Venn-ABERS 预测器通过拟合等调回归两次来工作,假设每个测试对象都可以具有标签 0 和标签 1。这为每个测试对象产生两个概率,p0 和 p1,代表该对象属于类别 1 的概率。这些概率为类别 1 的概率创建了一个预测区间,并提供了数学保证,即实际概率落在这个区间内。
Venn-ABERS 预测是一个多预测因子,区间(p0, p1)的宽度包含了关于分类置信度的宝贵信息。在关键情况下,Venn-ABERS 预测器输出准确且校准良好的概率,并通过扩大(p0, p1)区间发出“警报”。这个警报表明决策过程应考虑增加的不确定性。
这些概率可以通过p = p1 / (1 - p0 + p1)组合成一个单一值,用于实际决策目的。这个类别 1 的联合概率p可以用于决策任务。
Valery Manokhin 的研究论文《使用归纳和交叉 Venn-Abers 预测器的多类概率分类》,介绍了一种将 Venn-ABERS 预测器应用于多类分类的方法。您可以通过以下链接访问该论文:http://proceedings.mlr.press/v60/manokhin17a/manokhin17a.pdf。
实验结果表明,所提出的多类预测器在准确性方面优于未校准和现有的经典校准方法,这表明在多类概率分类方面可能取得了实质性的进步。
对于渴望采用这种技术的实践者和研究人员,GitHub 上有一个快速 Venn-ABERS 预测器的 Python 实现,用于二元分类(github.com/valeman/Multi-class-probabilistic-classification)。这个教育资源提供了亲身体验实现细节和利用 Venn-ABERS 预测器在现实世界机器学习场景中的实际优势的机会。
提出的使用归纳和交叉-Venn-ABERS 预测器(IVAPs和CVAPs)进行多类概率估计的方法,基于将多类分类器转换为二元分类器。在此方法中,二元分类器被训练以区分每个类别与其他所有类别的组合。
例如,在一个有三个类别 A、B 和 C 的三类问题中,训练了三个二元分类器:一个用于区分 A 和(B 或 C),一个用于区分 B 和(A 或 C),一个用于区分 C 和(A 或 B)。然后使用 IVAP 来估计给定测试实例每个类别的概率。IVAP 计算一个类别的概率为将实例分类为属于该类别的二元分类器的比例。
转换成对分类得分和成对类概率的公式使用了论文《具有概率输出的成对神经网络分类器》中介绍的方法(proceedings.neurips.cc/paper_files/paper/1994/file/210f760a89db30aa72ca258a3483cc7f-Paper.pdf)。
具体来说,如果 rij 是从相应的二元模型中得到的类 j 上类 i 的分数,则类 i 的估计概率按以下方式计算。
关键思想是首先使用专门的二元分类器计算每对类之间的成对概率。然后,可以将这些成对概率组合起来,估计所有类别的归一化概率分布:
p i PKPD = 1 ___________ ∑ j:j≠i n 1 _ r ij − (k − 2)
这提供了一种将成对二元分类结果转换为适合多类评估和校准的类概率估计的原则性方法。
在计算概率(这种技术被称为 PKPD 方法)之后,对这些值进行归一化是至关重要的,以确保它们的总和为 1。这些成对概率可以通过对成对分类分数/概率应用 IVAPs 和 CVAPs 来获得,这些分数/概率用于校准底层分类模型产生的分类分数。
简而言之,PKPD 方法有助于将二元比较(成对概率)中的概率转换为多类概率。然后,计算出的多类概率被用来将测试对象分类为 k 个可能类别之一。这种分类使得可以计算指标,这些指标可以与各种校准算法的性能进行比较。
现在,让我们通过一个现实世界的例子来了解如何将一致性预测应用于多类分类问题。以下是一个代码示例,展示了这一应用。
让我们分析来自 Chapter_12.ipynb 笔记本(代码可以在本书的 GitHub 仓库github.com/PacktPublishing/Practical-Guide-to-Applied-Conformal-Prediction/blob/main/Chapter_12.ipynb)的代码。该笔记本演示了一致性预测在多类分类问题中的应用。
多类分类的一般步骤如下:
-
数据准备:
-
加载数据集。
-
将数据集划分为特征 (X) 和目标 (y)。
-
将数据分为训练集和测试集。
-
-
模型训练:
-
在训练数据上训练一个分类模型。
-
使用训练好的模型在测试数据上进行预测。
-
-
应用 一致性预测:
-
将一致性预测应用于训练好的模型。
-
获取预测的置信度和可信度度量。
-
-
评估:
-
使用适当的指标评估模型。
-
比较校准模型与原始模型的性能。
-
-
使用
evaluate_model_performance函数评估不同模型和校准方法的性能。 -
它训练模型,进行预测,并使用各种指标(如准确率、对数损失和 Brier 损失)来评估性能。
-
校准:
-
不同的校准方法,如 Platt、等调和其他方法,被应用于模型中。
-
校准模型的预测被评估以分析性能改进。*
evaluate_model_performance函数应用于每个模型。* 每个模型和校准方法的成果被存储,可以进行分析以确定表现最佳的模型和校准方法。
-
让我们接下来总结本章内容。
摘要
在本书的最后一章,我们探索了多类一致性预测这个迷人的领域。我们首先理解了多类分类的概念,这是机器学习中一个普遍的场景,其中实例可以属于许多类别之一。这种理解对于有效地应用一致性预测技术至关重要。
我们接着深入探讨了用于评估多类分类问题的指标。这些指标定量地衡量我们模型的表现,对于有效的模型评估和选择至关重要。
最后,我们学习了如何将一致性预测应用于多类分类问题。本节提供了可以直接应用于您工业应用的实用见解和技术。
到本章结束时,你应该已经获得了在多类分类以及如何有效地将这些问题应用于一致性预测方面的宝贵技能和知识。这些知识将在你作为数据科学家、机器学习工程师或研究人员的旅程中证明是无价的。
我们涵盖了不同的主要主题,包括多类分类问题,我们探讨了多类分类及其在机器学习中的重要性。我们还讨论了多类分类和多标签分类问题的区别。然后我们研究了用于评估多类分类问题的指标。理解这些指标对于评估我们模型的表现和做出关于模型选择和优化的明智决策至关重要。最后,我们学习了如何将一致性预测应用于多类分类问题。本节提供了可以直接应用于您工业应用的实用见解和技术。
本章标志着我们进入一致性预测旅程的结束。我们希望你所获得的知识和技能将在你未来在机器学习领域的努力中大有裨益。祝您学习愉快!


浙公网安备 33010602011771号