"我们认为用最简单的假设来解释现象是一个很好的原则。"
"We consider it a good principle to explain the phenomena by the simplest hypothesis possible."
—— 托勒密 (Ptolemy) | 数学家、天文学家、地心说提出者 | 100 ~ 170
🐍 Python工具箱
matplotlib.pyplot.fill_between()区域填充颜色seaborn.kdeplot()绘制KDE概率密度估计曲线statsmodels.api.nonparametric.KDEUnivariate()构造一元KDEstatsmodels.nonparametric.kde.kernel_switch()更换核函数statsmodels.nonparametric.kernel_density.KDEMultivariate()构造多元KDE贝叶斯定理:分类鸢尾花
Bayes Theorem: Classifying Iris Flowers
本章和下一章和读者探讨采用贝叶斯定理对鸢尾花数据分类。 本章采用鸢尾花数据中的花萼长度作为研究对象, 利用KDE生成概率密度函数,预测鸢尾花分类。
📋 使用贝叶斯定理进行分类的一般步骤
具体实现过程中,可以使用不同的算法来计算条件概率和后验概率, 如朴素贝叶斯算法、高斯朴素贝叶斯算法等。 同时,为了避免过拟合和欠拟合问题,我们还需要使用交叉验证、平滑等技术来提高分类器的性能。
🔔 贝叶斯定理
为了帮助大家理解贝叶斯分类,我们首先回忆贝叶斯定理。
大家知道鸢尾花数据分为三类—— setosa、versicolour、virginica。 我们分别用 C₁、C₂、C₃ 作为标签代表这三类鸢尾花。
对于鸢尾花分类问题,贝叶斯定理可以按如下方式表达:
📐 公式1:贝叶斯定理(鸢尾花分类形式)
Y代表分类的离散随机变量,Y的取值为 C₁、C₂、C₃。
📚 术语解释
在给定任意花萼长度x的条件下,比较三个后验概率 fY|X(C₁|x)、fY|X(C₂|x)、fY|X(C₃|x) 大小, 可以作为判定鸢尾花分类的依据。
比如,给定鸢尾花为setosa,花萼长度为10 cm的可能性可以写成 fX|Y(10|Setosa)。
注意,pY(Ck)为概率质量函数;这是因为随机变量Y为离散随机变量,取值为 Y=C₁, C₂, C₃。
在公式(1)中,证据因子fX(x)对联合概率fX,Y(x,Ck)进行归一化(normalization)处理。
本章假设 fX(x) > 0。
🌸 贝叶斯定理:分类鸢尾花
Bayes Theorem for Iris Classification
显示选项
图1:利用贝叶斯定理分类鸢尾花(花萼长度)
x出现的可能性
(50/150 = 1/3)
归一化因子
成员值(0-1)
- 后验概率 fY|X(Ck|x) — 分类依据,最大后验→分类结果
- 似然概率 fX|Y(x|Ck) — 给定类别,x出现的可能性(KDE估计)
- 先验概率 pY(Ck) — 各类样本占比(1/3)
- 联合概率 fX,Y(x,Ck) — 似然×先验,也可作为分类依据
- 证据因子 fX(x) — 归一化因子,与分类无关
- 核心公式:后验 = (似然 × 先验) / 证据
图1:利用贝叶斯定理,以花萼长度作为特征对鸢尾花进行分类
🎯 18.1 关键要点
• 步骤2:计算先验概率
• 步骤3:计算条件概率(似然)
• 步骤4:计算后验概率
• 步骤5:判定分类
• 似然:给定类别的可能性
• 先验:类别占比
• 联合:似然×先验
• 证据:归一化因子
• 图1:三分类问题可视化
• KDE应用:利用第17章的KDE估计似然概率
• 分类标准:最大后验概率→分类结果
• 离散+连续:Y离散(类别),X连续(花萼长度)
似然概率:给定分类条件下的概率密度
Likelihood: PDF under Given Classification
似然概率 fX|Y(x|Ck) 本身是条件概率, 它描述的是给定类别 Y = Ck 中 X = x 出现的可能性。
注意,本章中 fX|Y(x|Ck) 为概率密度函数 PDF。
📊 图2:三个似然概率 PDF 曲线
fX|Y(x|C₁) — Setosa类的似然概率
fX|Y(x|C₂) — Versicolor类的似然概率
fX|Y(x|C₃) — Virginica类的似然概率
图2 (d) — 三条曲线对比
重要性质:面积为1
📊 似然概率:给定分类条件下的概率密度
Likelihood: PDF under Given Classification
带宽 h
显示选项
• 是概率密度函数 PDF
• 采用高斯KDE估计得到
• 面积为1:∫fX|Y(x|Ck)dx = 1
(a) f_{X|Y}(x|C₁) - Setosa
(b) f_{X|Y}(x|C₂) - Versicolor
(c) f_{X|Y}(x|C₃) - Virginica
图2 (d):比较三个似然概率 PDF 曲线
• fX|Y(x|C₂):仅使用C₂类50个样本的KDE估计
• fX|Y(x|C₃):仅使用C₃类50个样本的KDE估计
• 每条曲线独立估计,互不影响
• Versicolor (C₂):花萼中等,峰值在5.9 cm左右
• Virginica (C₃):花萼较长,峰值在6.6 cm左右
• 三条曲线有重叠→分类有不确定性
表示在给定类别Ck的条件下,x的概率密度分布。
图2分析:三个似然概率的特征
• 峰值位于 x ≈ 5.0 cm
• 分布较窄,说明Setosa的花萼长度比较集中
• 主要分布在 4.3 - 5.8 cm 范围
• 峰值位于 x ≈ 5.9 cm
• 分布较宽,变异性较大
• 主要分布在 4.9 - 7.0 cm 范围
• 峰值位于 x ≈ 6.6 cm
• 分布最宽,Virginica花萼长度跨度最大
• 主要分布在 4.9 - 7.9 cm 范围
• 三条曲线有明显的分离趋势
• 但也存在重叠区域,这导致分类不确定性
• Setosa与其他两类分离最明显
• Versicolor和Virginica有较大重叠
🔗 与第17章KDE的联系
• 带宽h的选择
• 从数据估计PDF
• 非参数方法
• 得到似然概率PDF
• 用于贝叶斯分类
• 实战应用
1. 将150个样本按类别分成3组(各50个)
2. 对C₁类的50个样本做KDE → fX|Y(x|C₁)
3. 对C₂类的50个样本做KDE → fX|Y(x|C₂)
4. 对C₃类的50个样本做KDE → fX|Y(x|C₃)
5. 三条曲线独立估计,每条面积都为1
🎯 18.2 关键要点
• 给定类别下x的可能性
• 采用KDE估计
• 面积为1
• C₂峰值~5.9 cm(中等)
• C₃峰值~6.6 cm(最长)
• 有重叠→分类不确定性
• 图2 (d):三条曲线对比,看出分离和重叠
• KDE应用:第17章工具的实战
• 独立估计:每个类别单独做KDE,互不影响
• 分类依据:似然概率是贝叶斯分类的重要组成部分
先验概率:鸢尾花分类占比
Prior Probability: Class Proportions
先验概率 pY(Ck) 描述的是样本集合中 Ck 类样本占比。
由于 Y 为离散随机变量,因此我们采用概率质量函数。
📐 公式2:先验概率计算公式
•
count() 为计数运算符•
count(Ck) 计算标签样本空间 Ω 中 Ck 类样本数据数量•
count(total) 为总样本数🌸 公式3:鸢尾花数据的先验概率
因此三类标签的先验概率都是1/3:
📊 先验概率:鸢尾花分类占比
Prior Probability: Class Proportions
样本数量调整
📐 公式2:先验概率计算
频数 (Count)
先验概率 pY(Ck)
鸢尾花数据集的先验概率
因此三类标签的先验概率都是1/3 ≈ 0.333。
概率和为1
• 类型:概率质量函数 PMF(Y是离散随机变量)
• 计算:count(Ck) / count(total)
• 归一化:Σ pY(Ck) = 1
• 每类样本:50个(均衡数据集)
• 先验概率:都是1/3 = 0.333
• 特点:三类样本数量相等,无偏
图3:150个样本数据三类的频数和先验概率
• C₁ (Setosa):50个样本
• C₂ (Versicolor):50个样本
• C₃ (Virginica):50个样本
• 总计:150个样本
• C₁:1/3 ≈ 0.333
• C₂:1/3 ≈ 0.333
• C₃:1/3 ≈ 0.333
• 总和:1.0(归一化)
🔍 PMF vs PDF:为什么先验是概率质量函数?
• 原因:Y是离散随机变量
• 取值:Y ∈ {C₁, C₂, C₃}
• 性质:Σ pY(Ck) = 1
• 值:概率值,范围[0,1]
• 原因:X是连续随机变量
• 取值:X ∈ ℝ(花萼长度)
• 性质:∫ fX|Y(x|Ck)dx = 1
• 值:密度值,可以>1
• 先验概率是真正的概率(PMF),因为类别是离散的
• 似然概率是概率密度(PDF),因为花萼长度是连续的
• 两者在贝叶斯公式中相乘得到联合概率密度
⚖️ 均衡数据集 vs 不均衡数据集
• C₂: 50样本,p=1/3
• C₃: 50样本,p=1/3
• 特点:三类样本数相等
• 优点:无偏,公平
• C₂: 30样本,p=0.15
• C₃: 70样本,p=0.35
• 特点:类别样本数不等
• 影响:先验有偏向
• 反映数据集的类别分布
• 影响分类决策:样本多的类别先验高,更容易被分类为该类
• 均衡数据集:先验对三类一视同仁(都是1/3)
• 不均衡数据集:先验会偏向样本多的类别
🎯 18.3 关键要点
• 概率质量函数PMF
• Y是离散随机变量
• 计算:count(Ck)/count(total)
• 每类:50个(均衡)
• 先验:都是1/3
• 无偏分类
• 公式3:鸢尾花数据的具体值(1/3)
• 图3:频数和先验概率的视觉对比
• PMF vs PDF:离散vs连续的关键区别
• 均衡数据:先验对所有类别一视同仁
• 归一化性质:Σ pY(Ck) = 1
联合概率:可以作为分类标准
Joint Probability: Can Be Used as Classification Criterion
联合概率 fX,Y(x,Ck) 描述事件Y = Ck 和事件 X = x 同时发生的可能性。
比如,花萼长度为 x = 5.6 cm 且鸢尾花分类为 Y = C₁ (Setosa) 的可能性 可以用 fX,Y(5.6, C₁) 表达。
注意,fX,Y(x,Ck) 也是概率密度函数 PDF,并不是"概率"。
📐 公式4:联合概率计算公式
• 联合概率 = 似然概率 × 先验概率
• 将似然概率曲线按先验概率缩放
• 对于鸢尾花数据:联合 = 似然 × (1/3)
🔗 联合概率:可以作为分类标准
Joint Probability: Can Be Used as Classification Criterion
花萼长度 x
带宽 h
📐 公式4:联合概率计算
图4 (a)(b)(c):从似然概率到联合概率的缩放过程
(a) C₁ (Setosa)
(b) C₂ (Versicolor)
(c) C₃ (Virginica)
图4 (d):比较三个联合概率 PDF 曲线(可作为分类标准)
• 联合概率:面积 = pY(Ck) = 1/3
• 缩放因子:先验概率
• 似然×(1/3) = 联合
• 最高的联合概率→分类结果
• 不需要计算证据因子
• 不需要归一化
fX,Y(x,Ck)也是PDF,不是"概率"
∫ fX,Y(x,Ck)dx = pY(Ck) = 1/3
argmaxk fX,Y(x,Ck) → 分类结果
图4:先验概率和联合概率的关系
这三幅图还展示从似然概率 fX|Y(x|Ck) 到联合概率 fX,Y(x,Ck) 的缩放过程。
面积性质对比
• 似然概率和横轴包裹的面积为1
• 联合概率和横轴包裹的面积为pY(Ck)
• 对鸢尾花数据:联合概率面积 = 1/3
🎯 联合概率可以作为分类标准
• 不需要计算证据因子 fX(x)
• 不需要归一化处理
• 直接比较联合概率的大小即可
• 计算简单,效率高
🔄 缩放过程详解
• 面积 = 1
• 高度较高
• 缩放因子
• 曲线向下压缩
• 面积 = 1/3
• 高度降低
在图4 (a)(b)(c)中,可以看到虚线(似然概率)和实线(联合概率)的对比, 实线是虚线按1/3缩放后的结果。
🎯 18.4 关键要点
• 也是概率密度函数PDF
• 计算:似然 × 先验
• 面积:pY(Ck) = 1/3
• argmaxk fX,Y(x,Ck)
• 不需证据因子
• 不需归一化
• 图4 (a)(b)(c):缩放过程可视化
• 图4 (d):三条联合曲线对比
• 面积变化:从1缩放到1/3
• 分类依据:联合概率可直接用于分类
• 计算优势:跳过归一化步骤