小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
LDA(Linear Discriminant Analysis) 与之间介绍的 PCA 非常相似、一种经典的有监督数据降维方法。LDA 的主要思想是将一个高维空间中的数据投影到一个较低维的空间中,且投影后要保证各个类别的类内方差小而类间均值差别大,这意味着同一类的高维数据投影到低维空间后相同类别的聚在一起,而不同类别之间相距较远。
向量在某一向量上投影
如何想要计算 x 在 u 方向投影的长度可以这样计算。
cosθ=∣∣x∣∣∣∣u∣∣x⋅u xcosθ=x⋅u
通常将 u 长度考虑为 1 这样我们就得到上面的公式。
现在的 xi 是有标签,希望在某一个方向投影后,这些不同类别点之间距离最大,也可以理解不同类别的平均数间距离越大越好,这样这些类别就容易分开。
m1=N11n∈C1∑xn,,m2=N21n∈C2∑
m2−m1=wT(m2−m1)
通常还需要加入一个约束条件 wTw=1,然后解这个问题。
wT(m2−m1)+λ(wTw−1)
∂w∂L(w)=(m2−m1)+λw=0
从而得到下面式子,也就是 w 与 m2−m1 成正比
w∝(m2−m1)

J(w)=s12+s22(m2−m1)2
sk2=i∈Ck∑(yi−mk)2
J(w)=wTSWwwTSBw SB=(m2−m1)(m2−m1)T SW=i∈C1∑(xi−m1)T(xi−m1)+i∈C2∑(xi−m2)T(xi−m2)
接下来就是 J(w) 对 w 进行微分,这里分母部分是大于等于 0 因为我们关心的分子部分,分子部分的一阶导函数是等于 0 。
2SBw(wTSWw)−2(wTSBw)SWw=0 SBw(wTSWw)=(wTSBw)SWw
- 分子微分乘以分母减去分母乘以分子的微分
- wTSWw 和 wTSBw 都是标量
SB=(m2−m1)(m2−m1)T SBw=(m2−m1)(m2−m1)Tw
(m2−m1)Tw 是一个标量所以 SBw 与m2−m1
w∝SW−1(m2−m1)
所以 LDA 并不是判别器,而是数据处理过程,找到一个投影方式
总结
输入数据为 D=(x1,y1),(x2,y2),⋯,(xN,yN) 数据为 N 个样本,其中每一个样本为 m 维的特征的样本,y∈C1,C2,⋯,CK 也就是说 y 的样本类别可能维 K
- 标准化数据,计算每一个类别的均值和方差
- 计算类内散度矩阵 SB
- 计算类间散度矩阵 SW
- 将 SB 和 SW 代入上面公式计算得到特征值 λ 和特征向量 W,取前面几个最大的特征值向量λ'与特征向量相乘得到降维转换矩阵 λ′W
- 将原来的数据与转换矩阵相乘得到降维后的数据 (λ′W)TX