【第二章:机器学习与神经网络概述】02.降维算法理论与实践-(2)线性判别分析(Linear Discriminant Analysis, LDA)

第二章: 机器学习与神经网络概述

第二部分:降维算法理论与实践

第二节:线性判别分析(LDA)

内容:类间散度矩阵、类内散度矩阵、降维与分类结合。


一、LDA 的目标

LDA 是一种有监督降维方法,它不仅考虑维度压缩,还注重提升类别可分性。其核心思想是:

在降低数据维度的同时,使类间距离尽可能大,类内距离尽可能小


二、核心概念
类内散度矩阵(Within-Class Scatter Matrix)S_W

衡量同一类别内部的样本分布紧密程度:

S_W = \sum_{c=1}^{k} \sum_{x_i \in C_c} (x_i - \mu_c)(x_i - \mu_c)^T

  • C_c:第 c 类的样本集合

  • \mu_c:第 c 类的均值向量

类间散度矩阵(Between-Class Scatter Matrix)S_B

衡量类别之间的分布差异:

S_B = \sum_{c=1}^{k} n_c (\mu_c - \mu)(\mu_c - \mu)^T

  • n_c:第 c 类样本数

  • μ:所有样本的总体均值向量

上图展示了 线性判别分析(LDA)中两个关键概念的可视化:

  • 左图为类内散度(Within-Class Scatter):每个样本点通过细线连接到所属类别的中心点,体现类内样本之间的紧密程度。类内散度越小,类别内样本越集中,有助于分类准确性。

  • 右图为类间散度(Between-Class Scatter):展示各类别中心点相对于总体样本均值的偏离。类间散度越大,类别之间越容易区分。

在 LDA 中,目标是通过线性投影,使得类间散度最大化、类内散度最小化,从而提升降维后的分类性能。


三、LDA 的优化目标

最大化如下目标函数:

J(w) = \frac{w^T S_B w}{w^T S_W w}

求解使 J(w) 最大的投影向量 w,即为最优判别方向。

对于多类情况(>2 类),解出多个判别向量(最多 k-1 个)。


四、Python 实践(使用 Iris 数据集)
from sklearn.datasets import load_iris
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
import matplotlib.pyplot as plt

# 加载数据
iris = load_iris()
X, y = iris.data, iris.target

# LDA 降维到 2D
lda = LinearDiscriminantAnalysis(n_components=2)
X_lda = lda.fit_transform(X, y)

# 可视化
plt.figure(figsize=(6,5))
plt.scatter(X_lda[:, 0], X_lda[:, 1], c=y, cmap='rainbow', edgecolor='k')
plt.xlabel("判别轴1")
plt.ylabel("判别轴2")
plt.title("LDA: Iris数据集二维投影")
plt.grid(True)
plt.show()

 


五、PCA 与 LDA 对比
维度PCALDA
监督学习无监督有监督
目标保留最大方差提高类别可分性
应用可视化、压缩分类前的预处理
降维数量≤ 原始特征维度≤ 类别数 - 1

六、典型应用场景
  • 用于分类任务的降维预处理

  • 图像识别(如人脸识别)

  • 文本分类

  • 医学图像分析等场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值