思路与直觉
本章目标
- 用直观方式理解 LDA 的判别式降维思路——"找一个方向,让不同类尽量分开、同类尽量靠拢"。
- 理解为什么 LDA 需要标签参与训练,而 PCA 不需要——这是两种降维哲学的根本分歧。
- 通过与 PCA 的对比,建立 LDA 在降维算法图中的定位。
重点方法与概念速览
| 名称 | 类型 | 作用 |
|---|---|---|
| 判别式降维 | 核心直觉 | 投影后不同类别的中心尽量远,同类样本尽量近——将"分类友好"作为降维目标 |
| 类间散度 | 概念 | 衡量不同类别中心之间的分离程度——LDA 想要最大化它 |
| 类内散度 | 概念 | 衡量同一类别内部样本的分散程度——LDA 想要最小化它 |
| 判别方向 | 结果 | 最大化类间散度与类内散度之比的投影方向 |
label | 监督信息 | LDA 训练必需的类别标签——没有它就无法定义"类间"和"类内" |
| 约束 |
1. 为什么需要 LDA
LDA 回答的问题是:
如果要在低维空间里最好地区分不同类别,应该往哪个方向投影?
PCA 找的是"方差最大"的方向——它不关心类别,只关心数据整体散布。LDA 找的是"类别最可分"的方向——它利用标签信息,主动寻找让类别更清晰的低维表示。
理解重点
- LDA 把降维问题转化成了"让类别在低维空间中更容易分开"——这在分类任务中非常有价值。
- 这个直觉在日常中也有类比——看地图时旋转角度让行政区划更清晰,就是在做类似的事。
- 正因为需要知道"类别是什么",LDA 必须有监督(需要标签),这是它和 PCA 最根本的区别。
2. 用"类间拉远、类内压紧"理解优化目标
LDA 的工作方式可以想象成:
- 看看各类的中心在哪——用标签统计每类的均值
- 看看类内有多散——用标签统计每类内部样本的分布
- 猜一个投影方向——把高维数据投影到一条线上
- 算一下投影后类中心多远、类内多紧——这就是 Fisher 准则的值
- 换个方向再试——不断调整直到找到"类间最远、类内最紧"的方向
理解重点
- 这就像给三群鸟拍照——找一个角度让三群鸟在照片里看起来距离最远、每群最紧密,而不是拍出鸟群整体的展翅范围。
- LDA 关心的不是"数据变化最大的方向"(PCA),而是"类别差异最明显的方向"。
- 每一步"换个方向"在数学上就是广义特征值问题——数学原理章节会展开推导,这里只需建立直觉。
3. 为什么 Wine 数据特别适合讲 LDA
当前数据来自 Wine 真实数据集(178 样本 × 13 特征 × 3 类):
- 三类葡萄品种的化学成分确实存在系统差异——类间散度天然较大
- 13 个特征包含多种量纲——标准化后散度矩阵才具有几何意义
- 3 个类别恰好对应 2 个判别方向——可以完整展示在 2D 平面上
理解重点
- 如果类别本来就高度重叠(类间散度 ≈ 类内散度),LDA 找到的投影方向也难以让图像明显分开。
- Wine 数据集的类别差异在化学成分上确实存在——这使得 LDA 的判别效果直观可感。
- 使用真实数据集(而非
make_classification合成数据)增加了教学的真实感——读者可以看到 LDA 在真实化学测量上的表现。
4. 为什么 label 在这里是真正的训练输入
LDA 的优化目标(类间散度 / 类内散度)天然依赖类别标签:
- 没有标签 → 无法定义"哪是类内、哪是类间"
- 没有类结构和类结构 → Fisher 准则无从计算
- 没有 Fisher 准则 → LDA 退化成无目标的降维
理解重点
- 在 PCA 分册中,
label只是着色用的"参考信息"——删掉它 PCA 照样训练。 - 在 LDA 分册中,
label是训练必需的"监督信号"——删掉它 LDA 无法工作。 - 这是两套降维哲学的分水岭:PCA 是"数据怎么说",LDA 是"标签怎么引导"。
5. 为什么当前只输出 2D LDA 图
Wine 数据有 3 个类别:
- LDA 最多提取
个判别方向 n_components=2已经达到理论上限——不可能再训练n_components=3- 因此 2D 图既是"全部判别信息的完整展示",也是"数学约束的必然结果"
理解重点
- 这不是工程上的偷懒——PCA 可以随意扩展到 3D/4D,LDA 做不到。
- 对 Wine 数据而言,2 个判别方向已经捕获了全部类别可分信息——不存在"丢掉的第 3 个判别方向"。
- 这个
约束是 LDA 最需要建立直觉的数学性质——它直接决定了你能降多少维。
6. 与 PCA 的直觉对比
| 维度 | PCA | LDA |
|---|---|---|
| 核心问题 | 哪个方向方差最大? | 哪个方向类别最可分? |
| 标签 | 不需要——只用特征 | 必须——标签定义类别结构 |
| 投影效果 | 保留最多信息,但类别可能混在一起 | 保留最多类别差异,但可能丢失部分方差结构 |
| 维数限制 | 最多到 | 最多到 |
| 理想场景 | 数据压缩、去噪、探索性可视化 | 分类预处理、判别式特征提取 |
| 类比 | 给整群鸟拍"展翅全景" | 给三群鸟拍"分群特写" |
理解重点
- PCA 和 LDA 不是"谁更好"——它们的目标根本不同。PCA 回答"数据怎么分布",LDA 回答"类别怎么区分"。
- 如果任务是分类,LDA 通常更合适——它主动利用标签信息。如果任务是压缩,PCA 更合适——它不依赖标签。
- 一个有用的对照实验:在 Wine 数据上分别运行 PCA(2D)和 LDA(2D),观察同一份数据在两种目标下的投影差异。
可视化

常见坑
- 把 LDA 当成"带标签的 PCA"——两者优化目标根本不同(类间/类内比 vs 方差)。
- 忽略
维上限,期望像 PCA 一样自由增加输出维数。 - 忘记
label在 LDA 中是真正的训练输入——删掉它算法无法运行。 - 在 PCA 和 LDA 之间做优劣比较而不考虑任务需求——它们是不同目标的工具。
小结
- LDA 的直觉核心是有监督判别式降维:用标签定义类间/类内散度 → 找最大化两者之比的方向 → 投影后类别更可分。
- Wine 真实数据集(3 类 13 特征)类别差异明显——是展示 LDA 判别能力的最佳教学数据。
- LDA 与 PCA 在直觉上截然不同:一个以类别为核心找"最可分"方向,一个以数据为核心找"最大方差"方向——选哪个取决于任务目标,而非算法优劣。