LDA & QDA 补充
1. LDA 的一些补充推导
a. 一般的单变量 LDA 判断函数
我们假定类别 K 的数据符合正态分布:
fk(x)=2πσk1exp(−2σk2(x−μk)2)根据贝叶斯公式:
P(Y=k∣X=x)=∑l=1Kπlfl(x)πkfk(x)有:
pk(x)=∑l=1Kπl2πσ1exp(−2σ2(x−μl)2)πk2πσ1exp(−2σ2(x−μk)2)分母是对所有类别 l 求和的结果,它是一个与当前类别 K 无关的常数。于是我们只考虑分子,取对数得:
ln(πk2πσ1exp(−2σ2(x−μk)2))=lnπk+ln2πσ1+ln(exp(−2σ2(x−μk)2))=lnπk+ln2πσ1−2σ2(x−μk)2.我们只关注和 K 有关的项,整理后我们需要最大化的式子为:
lnπk−2σ2(x−μk)2=lnπk−2σ2x2+σ2xμk−2σ2μk2再次忽略掉和 K 无关的项,我们得到了最终的判别函数:
δk(x)=x⋅σ2μk−2σ2μk2+lnπk由于我们的目标是比较不同的 K 的得分,因此所有和 K 无关的都可以被消掉。
这是一个关于 x 的线性函数。对于一个给定的数据点 x,我们为每个类别 K 都计算一次 δk(x) 的值,哪个 k 对应的 δk(x) 值最大,我们就把 x 分到哪一类。
b. 多变量 LDA
当预测变量不止一个时(例如,我们同时用“收入”和“年龄”来预测),我们需要将 LDA 的模型假设从“正态分布”升级为 “多维正态分布”(Multivariate Gaussian Distribution)。
我们用 X∼N(μ,Σ) 来表示一个多维向量 X 服从多维正态分布。
- μ 是一个均值向量,代表数据云的中心点。
- Σ 是一个 p×p 的协方差矩阵,它描述了数据云的形状、大小和方向。对角线元素是每个变量自身的方差,非对角线元素是变量两两之间的协方差。
f(x)=(2π)p/2∣Σ∣1exp(−21(x−μ)TΣ1(x−μ))类似前面的推导,可以得到多变量 LDA 的判断函数表达式:
δk(x)=xTΣ−1μk−21μkTΣ−1μk+lnπk这个函数依然是 x 的一个线性函数,它的决策边界依然是线性的。
2. QDA 的一些补充推导
a. 一般的多变量 QDA 判断函数
和 LDA 类似,我们尝试最大化下面的式子:
ln(πkfk(x))=lnπk+ln((2π)p/2∣Σk∣1exp(−21(x−μk)TΣk1(x−μk)))=lnπk−21(x−μk)TΣk1(x−μk)−21ln∣Σk∣−2pln(2π).移除与 k 无关的项,最终我们得到 QDA 的判别函数:
δk(x)=−21(x−μk)TΣk1(x−μk)−21ln∣Σk∣+lnπk根据矩阵乘法性质 (A−B)TM(A−B)=ATMA−2ATMB+BTMB,有:
δk(x)=−21(xTΣk1x−2xTΣk1μk+μkTΣk1μk)−21ln∣Σk∣+lnπk=−21xTΣk1x+xTΣk1μk−21μkTΣk1μk−21ln∣Σk∣+lnπk在 LDA 中,因为所有类别的 Σ 都相同,所以在比较两个类别的判别函数时(如 δk(x)−δl(x)),x 的二次项 xTΣ−1x 会被完全消掉,最终得到一个关于 x 的线性函数。但在 QDA 中,由于每个类别的 Σk 都不相同,x 的二次项 xTΣk−1x 无法被消掉。因此,QDA的判别函数是 x 的一个二次函数,它的决策边界不再是直线或平面,而是二次曲线或曲面。
b. LDA 与 QDA 的权衡
- 推荐使用LDA的情况:
- 训练样本数量相对较少。此时,控制模型的方差、防止过拟合是首要任务。LDA 的简单性使它成为更稳健的选择。
- 我们认为各个类别数据的“形状”和“方向”大致相似。
- 推荐使用QDA的情况:
- 训练样本数量非常大。此时,你有足够的数据来可靠地估计每个类别的协方差矩阵,高方差不再是主要问题。
- 我们通过可视化等方式,明确看到不同类别数据的“形状”和“方向”有显著差异,使用共同协方差矩阵的假设显然不成立。
Comments