朴素贝叶斯:先验 × 似然 = 后验
换个视角看分类:与其直接学边界,不如先搞清楚「每类数据长什么样」,再反过来算「这朵花最像哪一类」。它假设「给定类别,各特征互相独立」——朴素得近乎天真,却惊人地好用。拖动滑块量一朵新花,三个类别的先验、似然和后验在账本里算给你看。
决策区域 · 三类后验谁大归谁
150 条真实鸢尾花数据(花瓣长 × 花瓣宽两个特征);空心圈是你拖出来的新花。
控制台
每类特征的均值 μ 和标准差 σ(页面加载时已从 150 条数据估出):
| 类别 | 花瓣长 μ±σ | 花瓣宽 μ±σ |
|---|
预测结果
贝叶斯的账本(当前这朵花)
| 类别 | 先验 P(y) | 似然 P(x₁|y)·P(x₂|y) | 后验(归一化) |
|---|
后验 ∝ 先验 × 似然。三个似然是「在已知类别时,长出这样花瓣的概率密度」——用每类的高斯分布算出。
原理:贝叶斯决策论
贝叶斯定理把「看到特征反过来问类别」变成一条乘法:
P(y|x) = P(x|y) · P(y) / P(x)
四个角色各就各位:先验 P(y) 是没看数据前对各类的信念(本页三类各 50 条,先验相等);似然 P(x|y) 是「假设是这类,长出这样花瓣的概率密度」;后验是看完数据后更新的信念;分母 P(x) 对所有类别相同,比较时略去。分类规则就一句:后验最大的类获胜。
「朴素」假设给定类别后特征条件独立,似然可以连乘:
P(y|x) ∝ P(y) · Πⱼ P(xⱼ|y) , P(xⱼ|y) = 𝒩(xⱼ; μⱼᵧ, σ²ⱼᵧ)
本页用每类特征的高斯分布(均值 μ、标准差 σ 从 150 条数据估出)计算似然——这就是高斯朴素贝叶斯。
「朴素」到底损失了什么
- 现实里特征往往相关。花瓣长和花瓣宽明显正相关,独立假设等于把「长且宽」的联合概率算重了——后验因此被过度拉向极端(概率常常接近 0 或 1)。
- 但排序通常仍是对的。分类只需要「谁的 η后验最大」,不需要后验数值准确。相关性的扭曲对各方向大体一致,argmax 经常不受影响——这是「朴素但好用」的数学根源。
- 文本分类是它的主场。词袋特征动辄上万维,条件独立假设虽然明显错误,但多项式朴素贝叶斯在垃圾邮件过滤上常年表现优秀,还快得飞起(只需数数)。
三个值得动手验证的现象
- 决策区域全是光滑曲线。高斯似然的后验等高线是二次曲线——和决策树的横平竖直、SVM 核边界的任意弯曲都不一样,这是「生成式模型 + 高斯假设」的签名。
- 先验会拉偏边界。把某一类样本想象得再多些,它的地盘就会扩张(先验乘大了,后验水涨船高)。垃圾邮件过滤里先验就是「收件箱里垃圾的比例」——数据会说话,但先验悄悄定基调。
- 连乘虽小不为零。账本里的似然是很小的数(概率密度可以大于 1,也可能远小于 1)——真正起作用的是三个数之间的比例,归一化后才得到后验。工程实现里用对数求和防止下溢。
生成式 vs 判别式:两条路线
生成式(朴素贝叶斯、LDA)先对每类建模 P(x|y),再由贝叶斯定理反推 P(y|x)——它「理解」数据怎么生成,因此能生成新样本、能处理缺失特征、小样本也稳。判别式(Logistic、SVM、神经网络)直接学 P(y|x) 或边界——不关心数据长什么样,通常在大样本上精度更高。著名的渐近结论:判别式渐近误差更低,生成式收敛更快——小数据信贝叶斯,大数据信判别。
动手实验:把花瓣长拉到 6.5、宽 2.5(setosa 绝对长不出的形状),看账本——setosa 的后验会趋近 0;再注意似然三个数的悬殊比例如何主导了后验排序。
知识点拆解:把贝叶斯学扎实
先验不是「主观臆断」
先验可以来自历史数据(垃圾邮件占比)、领域知识或均匀假设。它的作用是在数据稀薄时定基调,数据充足时被似然冲淡——「贝叶斯学派的信念会被证据修正」。
对应演示:账本第一列拉普拉斯平滑
统计 P(词|类别) 时某个词没出现过,概率为 0 会让整个连乘归零。加一平滑(分子+1、分母+V)保证谁都不为零——小样本类别必备,考试常考「为什么要平滑」。
关键词:+1 平滑 / 稀疏特征按数据类型选贝叶斯
连续特征 → 高斯 NB(本页);离散计数(词频)→ 多项式 NB;二值出现(词在/不在)→ 伯努利 NB。选错变体是新手最常见的翻车点。
对应演示:高斯估计的 μ±σ 表它和 Logistic 的隐秘血缘
高斯 NB 与 Logistic 回归在「高斯等方差」假设下决策边界形式相同;但 NB 收敛快(O(1) 扫一遍数据)、Logistic 渐近精度高。生成式学「数据」,判别式学「边界」。
关键词:生成式 vs 判别式- 先验 P(y) — 看数据前的类别信念
- 似然 P(x|y) — 类别下观测到 x 的概率
- 后验 P(y|x) — 看完数据更新的信念
- 条件独立 — 朴素假设:特征在类下互不影响
- 拉普拉斯平滑 — 避免 0 概率抹杀连乘
- 生成式模型 — 建模 P(x|y),可反推后验
期末高频问答
- 为什么分母 P(x) 可以忽略?比较各类后验时,分母对所有类别相同——像「同除以同一个数」,不改变大小顺序。数值上它等于 Σ P(x|y)P(y),只在需要精确后验时才归一化。
- 特征强相关时朴素贝叶斯一定会翻车吗?不一定翻车,但要警惕。相关性让连乘重复计数、后验过度自信;若相关模式在训练/测试间一致,排序仍可能正确——评估时看 PR/ROC 而非仅准确率。
- 概率密度可以大于 1 吗?可以。密度不是概率,积分才约束在 1 以内;窄分布的密度峰值轻松超过 1。这也是账本里似然可能大于 1 的原因,不影响后验比较。