LDA & QDA 补充

• 36 min read • 7200 words
Tags: Ma-Le Probability
Categories: Machine Learning

LDA & QDA 补充

1. LDA 的一些补充推导

a.a. 一般的单变量 LDA 判断函数

我们假定类别 KK 的数据符合正态分布:

fk(x)=12πσkexp ⁣((xμk)22σk2)f_k(x)=\frac{1}{\sqrt{2\pi}\,\sigma_k}\exp\!\left(-\frac{(x-\mu_k)^2}{2\sigma_k^2}\right)

根据贝叶斯公式:

P(Y=kX=x)=πkfk(x)l=1Kπlfl(x)P(Y=k\mid X=x)=\frac{\pi_k f_k(x)}{\sum_{l=1}^{K}\pi_l f_l(x)}

有:

pk(x)=πk  12πσexp ⁣((xμk)22σ2)l=1Kπl  12πσexp ⁣((xμl)22σ2)p_k(x)=\frac{\pi_k\;\frac{1}{\sqrt{2\pi}\,\sigma}\exp\!\left(-\frac{(x-\mu_k)^2}{2\sigma^2}\right)} {\sum_{l=1}^{K}\pi_l\;\frac{1}{\sqrt{2\pi}\,\sigma}\exp\!\left(-\frac{(x-\mu_l)^2}{2\sigma^2}\right)}

分母是对所有类别 ll 求和的结果,它是一个与当前类别 KK 无关的常数。于是我们只考虑分子,取对数得:

ln ⁣(πk12πσexp ⁣((xμk)22σ2))=lnπk+ln12πσ+ln ⁣(exp ⁣((xμk)22σ2))=lnπk+ln12πσ(xμk)22σ2.\ln\!\left(\pi_k\frac{1}{\sqrt{2\pi}\,\sigma}\exp\!\left(-\frac{(x-\mu_k)^2}{2\sigma^2}\right)\right) = \ln\pi_k + \ln\frac{1}{\sqrt{2\pi}\,\sigma} + \ln\!\left(\exp\!\left(-\frac{(x-\mu_k)^2}{2\sigma^2}\right)\right) = \ln\pi_k + \ln\frac{1}{\sqrt{2\pi}\,\sigma} -\frac{(x-\mu_k)^2}{2\sigma^2}.

我们只关注和 KK 有关的项,整理后我们需要最大化的式子为:

lnπk(xμk)22σ2=lnπkx22σ2+xμkσ2μk22σ2\ln\pi_k - \frac{(x-\mu_k)^2}{2\sigma^2} = \ln\pi_k - \frac{x^2}{2\sigma^2} + \frac{x\mu_k}{\sigma^2} - \frac{\mu_k^2}{2\sigma^2}

再次忽略掉和 KK 无关的项,我们得到了最终的判别函数:

δk(x)=xμkσ2μk22σ2+lnπk\delta _k(x) = x \cdot \frac{μ_k}{σ^2} - \frac{μ_k^2}{2σ^2} + \ln \pi_k

由于我们的目标是比较不同的 KK 的得分,因此所有和 KK 无关的都可以被消掉。

这是一个关于 xx 的线性函数。对于一个给定的数据点 xx,我们为每个类别 KK 都计算一次 δk(x)\delta_k(x) 的值,哪个 kk 对应的 δk(x)\delta_k(x) 值最大,我们就把 xx 分到哪一类。

b.b. 多变量 LDA

当预测变量不止一个时(例如,我们同时用“收入”和“年龄”来预测),我们需要将 LDA 的模型假设从“正态分布”升级为 “多维正态分布”(Multivariate Gaussian Distribution)

我们用 XN(μ,Σ)X \sim \mathcal{N}(μ, \Sigma) 来表示一个多维向量 XX 服从多维正态分布。

  • μ\mu 是一个均值向量,代表数据云的中心点。
  • Σ\Sigma 是一个 p×pp \times p 的协方差矩阵,它描述了数据云的形状、大小和方向。对角线元素是每个变量自身的方差,非对角线元素是变量两两之间的协方差。
f(x)=1(2π)p/2Σexp(12(xμ)T1Σ(xμ))f(x)=\frac{1}{(2\pi)^{p/2}\,\sqrt{|\Sigma|}}\exp\left(-\frac{1}{2}(x-\mu)^T\frac{1}{\Sigma}(x-\mu)\right)

类似前面的推导,可以得到多变量 LDA 的判断函数表达式:

δk(x)=xTΣ1μk12μkTΣ1μk+lnπk\delta_k(x)=x^{T}\Sigma^{-1}\mu_k-\tfrac{1}{2}\mu_k^{T}\Sigma^{-1}\mu_k+\ln\pi_k

这个函数依然是 xx 的一个线性函数,它的决策边界依然是线性的。

2. QDA 的一些补充推导

a.a. 一般的多变量 QDA 判断函数

和 LDA 类似,我们尝试最大化下面的式子:

ln(πkfk(x))=lnπk+ln(1(2π)p/2Σkexp(12(xμk)T1Σk(xμk)))=lnπk12(xμk)T1Σk(xμk)12lnΣkp2ln(2π).\begin{aligned} \ln\big(\pi_k f_k(x)\big) &= \ln\pi_k + \ln\left(\frac{1}{(2\pi)^{p/2}\sqrt{|\Sigma_k|}} \exp\left(-\frac{1}{2}(x-\mu_k)^T\frac{1}{\Sigma_k}(x-\mu_k)\right)\right) \\[6pt] &= \ln\pi_k - \frac{1}{2}(x-\mu_k)^T\frac{1}{\Sigma_k}(x-\mu_k) - \frac{1}{2}\ln|\Sigma_k| - \frac{p}{2}\ln(2\pi). \end{aligned}

移除与 kk 无关的项,最终我们得到 QDA 的判别函数:

δk(x)=12(xμk)T1Σk(xμk)12lnΣk+lnπk\delta_k(x) = -\frac{1}{2}(x-\mu_k)^T\frac{1}{\Sigma_k}(x-\mu_k) -\frac{1}{2}\ln\lvert\Sigma_k\rvert + \ln\pi_k

根据矩阵乘法性质 (AB)TM(AB)=ATMA2ATMB+BTMB(A-B)^TM(A-B) = AᵀMA - 2AᵀMB + BᵀMB,有:

δk(x)=12(xT1Σkx2xT1Σkμk+μkT1Σkμk)12lnΣk+lnπk=12xT1Σkx+xT1Σkμk12μkT1Σkμk12lnΣk+lnπk\begin{aligned} \delta_k(x) &= -\frac{1}{2}\bigl(x^T\frac{1}{\Sigma_k}x - 2x^T\frac{1}{\Sigma_k}\mu_k + \mu_k^T\frac{1}{\Sigma_k}\mu_k\bigr) - \frac{1}{2}\ln\lvert\Sigma_k\rvert + \ln\pi_k \\[6pt] &= -\frac{1}{2}x^T\frac{1}{\Sigma_k}x + x^T\frac{1}{\Sigma_k}\mu_k - \frac{1}{2}\mu_k^T\frac{1}{\Sigma_k}\mu_k - \frac{1}{2}\ln\lvert\Sigma_k\rvert + \ln\pi_k \end{aligned}

在 LDA 中,因为所有类别的 Σ\Sigma 都相同,所以在比较两个类别的判别函数时(如 δk(x)δl(x)\delta_k(x) - \delta_l(x)),xx 的二次项 xTΣ1xx^TΣ⁻¹x 会被完全消掉,最终得到一个关于 xx 的线性函数。但在 QDA 中,由于每个类别的 ΣkΣ_k 都不相同,xx 的二次项 xTΣk1xxᵀΣk⁻¹x 无法被消掉。因此,QDA的判别函数是 xx 的一个二次函数,它的决策边界不再是直线或平面,而是二次曲线或曲面。

b.b. LDA 与 QDA 的权衡

  • 推荐使用LDA的情况:
    1. 训练样本数量相对较少。此时,控制模型的方差、防止过拟合是首要任务。LDA 的简单性使它成为更稳健的选择。
    2. 我们认为各个类别数据的“形状”和“方向”大致相似。
  • 推荐使用QDA的情况:
    1. 训练样本数量非常大。此时,你有足够的数据来可靠地估计每个类别的协方差矩阵,高方差不再是主要问题。
    2. 我们通过可视化等方式,明确看到不同类别数据的“形状”和“方向”有显著差异,使用共同协方差矩阵的假设显然不成立。

Comments

Total words: 7200