贝叶斯最优分类器是一个概率模型,它为新样本做出最可能的预测。
它使用贝叶斯定理来描述,该定理提供了一种计算条件概率的原则性方法。它也与最大后验概率(Maximum a Posteriori,MAP)密切相关,MAP 是一个概率框架,用于为训练数据集找到最可能的假设。
实际上,贝叶斯最优分类器在计算上成本很高,如果不是难以计算的话。因此,可以使用吉布斯算法(Gibbs algorithm)和朴素贝叶斯(Naive Bayes)等简化方法来近似结果。
在本博文中,您将了解贝叶斯最优分类器,它能够为新的数据实例做出最准确的预测。
阅读本文后,你将了解:
- 贝叶斯定理提供了一种计算条件概率(称为后验概率)的原则性方法。
- 最大后验概率(Maximum a Posteriori)是一个概率框架,用于找到最能描述训练数据集的假设。
- 贝叶斯最优分类器是一个概率模型,它利用训练数据和假设空间来寻找最可能的预测,从而为新的数据实例做出预测。
立即开始您的项目,阅读我的新书《机器学习概率》,其中包含分步教程和所有示例的Python源代码文件。
让我们开始吧。

贝叶斯最优分类器简明入门
照片由 Nate Loper 拍摄,保留部分权利。
概述
本教程分为三个部分;它们是:
- 贝叶斯定理
- 最大后验概率 (MAP)
- 贝叶斯最优分类器
贝叶斯定理
回想一下,贝叶斯定理提供了一种计算条件概率的原则性方法。
它涉及计算一个结果给定另一个结果的条件概率,使用这种关系的逆运算,如下所示:
- P(A | B) = (P(B | A) * P(A)) / P(B)
我们计算的数量通常被称为 B 给定 A 的后验概率,而 P(A) 被称为 A 的先验概率。
P(B) 的归一化常数可以移除,后验概率可以表示为 B 给定 A 的概率乘以先验概率的比例。
- P(A | B) 与 P(B | A) * P(A) 成比例
或者,简单地说:
- P(A | B) = P(B | A) * P(A)
这是一个有用的简化,因为我们不关心估计概率,而是关心优化一个量。比例数量对此目的已足够。
有关贝叶斯定理的更多信息,请参阅博文:
现在我们已经了解了贝叶斯定理,让我们也看一下最大后验概率框架。
最大后验概率 (MAP)
机器学习涉及找到一个模型(假设)来最好地解释训练数据。
两种概率框架是许多不同机器学习算法的基础。
它们是
- 最大后验估计 (MAP),一种贝叶斯方法。
- 最大似然估计 (MLE),一种频率学方法。
在这两个框架的机器学习背景下,目标都是找到给定训练数据集最可能的假设。
具体来说,它们回答了这个问题:
给定训练数据,最可能的假设是什么?
这两种方法都将拟合模型的问题框架化为优化,并涉及搜索一个分布以及一组描述观测数据的最佳分布参数。
MLE 是一种频率学方法,而 MAP 提供了一种贝叶斯替代方案。
最大化似然的流行替代方法是最大化参数的贝叶斯后验概率密度。
— 第 306 页,信息论、推理和学习算法,2003。
鉴于贝叶斯定理的简化为比例量,我们可以使用它来估计解释我们数据集 (X) 的比例假设和参数 (theta),如下所示:
- P(theta | X) = P(X | theta) * P(theta)
最大化这个量在 theta 的范围内可以解决估计后验概率中心趋势(例如,分布的模型)的优化问题。
因此,这种技术被称为“最大后验估计”,或简称 MAP 估计,有时也简称为“最大后验估计”。
- 最大化 P(X | theta) * P(theta)
有关最大后验概率的更多信息,请参阅博文:
现在我们熟悉了 MAP 框架,我们可以更仔细地研究相关的贝叶斯最优分类器概念。
贝叶斯最优分类器
贝叶斯最优分类器是一个概率模型,它在给定训练数据集的情况下,为新样本做出最可能的预测。
该模型也称为贝叶斯最优学习器、贝叶斯分类器、贝叶斯最优决策边界或贝叶斯最优判别函数。
- 贝叶斯分类器:为新样本做出最可能预测的概率模型。
具体来说,贝叶斯最优分类器回答了这个问题:
给定训练数据,新实例的最可能分类是什么?
这与 MAP 框架不同,MAP 框架寻求最可能的假设(模型)。相反,我们有兴趣做出特定的预测。
通常,新实例的最可能分类是通过将所有假设的预测与它们的后验概率加权来组合得到的。
— 第 175 页,机器学习,1997。
下面的方程演示了如何在给定训练数据 (D) 和假设空间 (H) 的情况下,计算新实例 (vi) 的条件概率。
- P(vj | D) = sum {h in H} P(vj | hi) * P(hi | D)
其中 vj 是要分类的新实例,H 是分类实例的假设集,hi 是给定的假设,P(vj | hi) 是 vi 在假设 hi 下的后验概率,而 P(hi | D) 是 D 数据下假设 hi 的后验概率。
选择概率最大的结果是贝叶斯最优分类的一个例子。
- max sum {h in H} P(vj | hi) * P(hi | D)
使用此方程分类实例的任何模型都是贝叶斯最优分类器,并且平均而言,没有其他模型可以超越这种技术。
任何根据[该方程]对新实例进行分类的系统都称为贝叶斯最优分类器,或贝叶斯最优学习器。使用相同假设空间和相同先验知识的任何其他分类方法,平均而言都无法超越此方法。因此称为“最优分类器”。
— 第 175 页,机器学习,1997。
我们必须让这一点深入人心。
这是一件大事。
这意味着任何在相同数据、相同假设集和相同先验概率上运行的其他算法,平均而言都无法超越这种方法。因此,它被称为“最优分类器”。
尽管分类器做出最优预测,但由于训练数据中的不确定性以及对问题域和假设空间的覆盖不完全,它并非完美无缺。因此,模型会出错。这些错误通常被称为贝叶斯误差。
贝叶斯分类器产生的最低测试误差率称为贝叶斯误差率。[...] 贝叶斯误差率类似于不可约误差……
— 第 38 页,统计学习入门(附 R 应用),2017。
因为贝叶斯分类器是最优的,所以贝叶斯误差是可能犯的最小误差。
- 贝叶斯误差:在进行预测时可能犯的最小误差。
此外,该模型通常用分类来描述,例如贝叶斯分类器。然而,该原理同样适用于回归:即,预测数值而不是类别标签的预测建模问题。
它是一个理论模型,但它被视为我们可以追求的理想。
理论上,我们总是希望使用贝叶斯分类器来预测定性响应。但对于真实数据,我们不知道 Y 关于 X 的条件分布,因此计算贝叶斯分类器是不可能的。因此,贝叶斯分类器是一个无法达到的金标准,我们可以与其他方法进行比较。
— 第 39 页,统计学习入门(附 R 应用),2017。
由于这种最优策略的计算成本,我们可以改为使用该方法的直接简化。
最常用的两种简化方法是使用假设的采样算法,例如吉布斯采样,或者使用朴素贝叶斯分类器的简化假设。
- 吉布斯算法。根据其后验概率随机采样假设。
- 朴素贝叶斯。假设输入数据中的变量是条件独立的。
有关朴素贝叶斯的更多信息,请参阅博文:
尽管如此,许多非线性机器学习算法在实践中能够做出接近贝叶斯分类器的预测。
尽管它是一种非常简单的方法,但 KNN 通常可以产生非常接近最优贝叶斯分类器的分类器。
— 第 39 页,统计学习入门(附 R 应用),2017。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
文章
书籍
- 第 6.7 节 贝叶斯最优分类器,机器学习,1997。
- 第 2.4.2 节 贝叶斯误差与噪声,机器学习基础,第二版,2018。
- 第 2.2.3 节 分类设置,统计学习入门(附 R 应用),2017。
- 信息论、推理和学习算法, 2003.
论文
- 多层感知器作为贝叶斯最优判别函数的近似, 1990.
- 通过概率分类器链实现贝叶斯最优多标签分类, 2010.
- 受限贝叶斯最优分类器, 2000.
- 贝叶斯分类器与贝叶斯误差, 2013.
总结
在本博文中,您了解了贝叶斯最优分类器,它能够为新的数据实例做出最准确的预测。
具体来说,你学到了:
- 贝叶斯定理提供了一种计算条件概率(称为后验概率)的原则性方法。
- 最大后验概率(Maximum a Posteriori)是一个概率框架,用于找到最能描述训练数据集的假设。
- 贝叶斯最优分类器是一个概率框架,它利用训练数据和假设空间来寻找最可能的预测,从而为新的数据实例做出预测。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
你好 Jason,
在 Keras 中,如果一个算法没有任何指标,有什么方法可以判断它是不是线性回归吗?
谢谢
Marco
你可以查看模型的定义来确认它是什么类型的模型。
你无法通过预测或评估指标来判断。
嗨
我很难理解朴素贝叶斯和贝叶斯最优分类器之间的区别。
朴素贝叶斯所做的关于给定特征 X1, X2, ..., Xn 相互独立的朴素假设,贝叶斯最优分类器不再做了,是这样吗?
谢谢
很好的问题!
正确。
朴素贝叶斯是最优分类器的简化版本,它易于实现/使用。
在 Tom Mitchel 的《机器学习》一书中,第 175 页关于“贝叶斯最优分类器”的讨论中,给出了一个包含 h1, h2, h3 的例子。这三个假设是指 MAP、ML 等三种方法吗?如果我基于 MAP 和 ML 为一个问题计算朴素贝叶斯分类,我该如何计算“贝叶斯最优分类器”?
我们通常无法直接计算贝叶斯最优分类器——我们了解得不够,但我们可以用其他方法近似它,例如朴素贝叶斯。
尊敬的 Jason:
在贝叶斯公式中,
P(vj | D) = sum {h in H} P(vj | hi) * P(hi | D)
vj 是数据集的一个类别;而不是要分类的实例。这是一个笔误。
谢谢
谢谢。
你好,Jason。
P(theta | X) = P(X | theta) * P(theta)
是错误的。
$P(\theta | X) = P(X | \theta) * P(\theta) / P(X)$。我有什么遗漏的吗?
分母通常被省略为归一化常数。
我可能会在这里讨论这一点:
https://machinelearning.org.cn/bayes-theorem-for-machine-learning/
嗨,Jason,
在 ISLR 书的第二版,第 39 页有一句话:“但对于真实数据,我们不知道 Y 关于 X 的条件分布,因此计算贝叶斯分类器是不可能的”。这让我感到困惑,因为在第 40 页的图 2.15 中,他们绘制了 2 个决策边界,一个是 KNN 的,另一个是贝叶斯分类器的。他们是怎么做到的?这似乎与这句话相矛盾,或者他们是指朴素贝叶斯?
谢谢。
你好 Andi… 我不明白你的问题。你能否重新表述一下,以便我们更好地帮助你。