LDA(线性判别回归)

LDA线性判别回归

    • LDA降维的基本思想
    • LDA计算

LDA降维的基本思想

  LDA和PCA一样都是降维算法,但不同的是LDA是有监督的降维算法,它的目的是将不同类别的数据降维后仍能较好的区别开。而PCA是无监督的算法,它的目的是将样本数据降维后仍保留样本数据间的方差。
  LDA认为不同类的样本服从均值不同的高斯分布,主要根据均值作为降维的导向,所以它在处理非高斯分布的数据,或者不同类别的高斯分布的均值相同时,分类效果不够好。LDA将原样本映射到一个超平面上,使同一个类别在这个超平面上尽可能集中,而不同类别在这个超平面上尽可能分开。

LDA计算

  设W为样本x映射到的超平面,设原数据x的维度为 d x d_x dx,要映射到的维度为 d c d_c dc,则 W ∈ A d x × d c W\in A^{d_x\times d_c} WAdx×dc x i x_i xi映射到W上的点为 x ^ i \widehat x_i x i,则 x ^ i = W T x i \widehat x_i=W^Tx_i x i=WTxi.
  上一节提到过,LDA认为不同类服从不同的高斯分布,则不同类的均值的距离越远越好,设投影前的类间距离为(下式中的C为数据集的类别数量,u为所有数据的均值点, N i N_i Ni为i类中的样本数量) S b = ∑ i C N i ( u i − u ) ( u i − u ) T S_b=\sum_i^CN_i(u_i-u)(u_i-u)^T Sb=iCNi(uiu)(uiu)T,则投影后为 W T S b W W^TS_bW WTSbW类内的方差越小越好。(下式中m为样本数量, u i u_i ui x i x_i xi所属类别的均值)设投影降维前的协方差矩阵为
S w = ∑ i m ( x i − u i ) ( x i − u i ) T S_w=\sum_i^m(x_i-u_i)(x_i-u_i)^T Sw=im(xiui)(xiui)T则投影后为: W T S w W W^TS_wW WTSwW
我们想让投影后的类内距离越小越好,投影后的类间距离越大越好,则最大化目标函数如下(|A|意为A的行列式):
o b j = ∣ W T S w W ∣ ∣ W T S b W ∣ obj=\frac{|W^TS_wW|}{|W^TS_bW|} obj=WTSbWWTSwW至于为什么是行列式,解释是行列式是特征值的乘积,可以反映矩阵整体的大小,我觉得解释蛮牵强的)。
因为W可以自由缩放而不影响obj的取值我们设 ∣ W T S b W ∣ = 1 |W^TS_bW|=1 WTSbW=1,则原问题 o b j = ∣ W T S w W ∣ s . t : ∣ W T S b W ∣ = 1 obj=|W^TS_wW|\\ s.t:|W^TS_bW|=1 obj=WTSwWs.t:WTSbW=1,则对obj加入拉格朗日乘子得 o b j = W T S w W − λ W T S b W 那 么 ∂ o b j ∂ W = 0 可 以 推 得 S w W = a S b W S w − 1 S b W = W d i a g ( λ i ) obj=W^TS_wW-\lambda W^TS_bW\\ 那么\frac{\partial obj}{\partial W}=0\\可以推得S_wW=a S_bW \\ S_w^{-1}S_bW=Wdiag(\lambda_i ) obj=WTSwWλWTSbWWobj=0SwW=aSbWSw1SbW=Wdiag(λi)。我们需要降到几维,取前几大特征值对应的特征向量构成W即可。(注意由于 S w − 1 S b S_w^{-1}S_b Sw1Sb不一定为对称矩阵所以W的列向量不一定正交,而PCA的映射向量一定正交)由于 S w S_w Sw在高维情况不一定有逆矩阵,所以在 S w S_w Sw逆矩阵不存在的情况下,先用PCA降维再用LDA。

你可能感兴趣的:(LDA(线性判别回归))