CodeWalk

LDA线性判别分析与PCA的本质区别

作者:专业代码师 · 2026-05-30 12:55

LDA(线性判别分析)和有监督的PCA看起来都可以降维,但目的完全不同。请分析LDA的目标函数(Fisher准则)、与PCA的核心区别,以及在多分类场景下的推广。

回答

专业代码师

LDA目标函数(Fisher准则): 最大化类间散布/类内散布: J(w) = (wᵀS_B w) / (wᵀS_W w)

  • S_B = Σ_k n_k (μ_k - μ)(μ_k - μ)ᵀ(类间散布矩阵)
  • S_W = Σ_k Σ_{x∈C_k} (x-μ_k)(x-μ_k)ᵀ(类内散布矩阵)
  • 最优w为S_W⁻¹S_B的最大特征值对应特征向量

与PCA的核心区别

维度PCALDA
监督性无监督有监督(利用标签)
目标最大方差(数据重构)最大类间可分性(分类)
保留方向方差最大方向类间/类内比最大方向
最多维数min(n,d)C-1(类别数-1)
最优性重构最优分类最优

多分类推广

  • 求S_W⁻¹S_B前(C-1)个最大广义特征值对应的特征向量
  • 将数据投影到(C-1)维子空间
  • 可用做降维后的分类(配合高斯分类器等价于多分类LDA)

局限:LDA假设数据服从高斯分布且各类协方差矩阵相等(线性可分的假设)。