LDA线性判别分析

LDA((Linear Discriminant Analysis))的原理是,将数据通过线性投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。如下图:
LDA线性判别分析
待分数据XXmm个样本
X={x1,x2,x3,,xi,,xm} X=\{x_1,x_2,x_3,\text{…},x_i,\text{…},x_m\}
其中,xix_i是第ii个样本,有nn个特征,
xi={xi1,xi2,xi3,,xij,,xin} x_i=\{x_i^1,x_i^2,x_i^3,\text{…},x_i^j,\text{…},x_i^n\}
类别标签有两类,D1D_1D2D_2
投影函数为
Y=WTX Y=W^TX
Y为投影后的数据点。
设第DiD_i类有kk个样本,则第DiD_i类的原始数据的均值为
ui=1kxDix u_i=\frac{1}{k}\sum_{x\in D_i}x
DiD_i类的原始数据方差为
Si2=xDi(xui)(xui)T S_i^2=\sum_{x\in D_i}(x-u_i)(x-u_i)^T
线性映射后的第DiD_i类的均值为
u^i=1kyDiy=1kxDiWTx=WTui \widehat u_i =\frac{1}{k}\sum_{y\in D_i}y=\frac{1}{k}\sum_{x\in D_i}W^Tx=W^Tu_i
线性映射后第DiD_i类的方差为
S^i2=yDi(yu^i)(yu^i)T=xDi(WTxWTui)(WTxWTui)T=xDiWT(xui)(xui)T(WT)T=xDiWT(xui)(xui)TW=WTSi2W \begin{aligned} \widehat S_i^2 &=\sum_{y\in D_i}(y-\widehat u_i)(y-\widehat u_i)^T\\ &=\sum_{x\in D_i}(W^Tx-W^Tu_i)(W^Tx-W^Tu_i)^T\\ &=\sum_{x\in D_i}W^T(x-u_i)(x-u_i)^T(W^T)^T\\ &=\sum_{x\in D_i}W^T(x-u_i)(x-u_i)^TW\\ &=W^TS_i^2W \end{aligned}
分类的目的是使得类间间距最大,类内间距最小。因此设置损失函数为
J(W)=u^1u^22S^12+S^22=WTu1WTu22WTS12W+WTS22W=WTu1u22WWT(S12+S22)W=WTSB2WWTSW2W \begin{aligned} J(W) &=\frac{\vert\widehat u_1-\widehat u_2\vert^2}{\widehat S_1^2+\widehat S_2^2} \\ &=\frac{\vert W^Tu_1-W^Tu_2\vert^2}{W^TS_1^2W+W^TS_2^2W}\\ &=\frac{W^T\vert u_1-u_2\vert^2W}{W^T(S_1^2+S_2^2)W}\\ &=\frac{W^TS_B^2W}{W^TS_W^2W} \end{aligned}
我们希望分母越小越好,分子越大越好:分母小,则每个类内部数据点比较聚集;分子大,则两个类别的距离较远。所以需要找出一个 WW使 J(W)J(W) 的值最大。