【机器学习降维】Fisher判别分析LDA

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hemk340200600/article/details/88077208

线性判别分析(Linear Discriminant Analysis,LDA)是一种有监督学习算法,同时经常被用来对数据进行降维。

线性判别分析

  Fisher的基本思想是:类内小,类间大。也就是说,我们要让属于同一类的样本映射到某一条直线上后的距离越小越好,而不同类样本之间的距离要越大越好。所以我们需要训练这样一条直线,把p维的样本数据都投影到一个1维的方向,使得不同的样本在降维后的一维空间内具有“类内小,类间大”的结果,从而很好地将两类数据分开。
  在预测时,将待预测数据投影到上面学习到的直线上,根据投影点的位置来判断所属于的类别。

  假设我们找到了最好的投影方向ww,如果不对其做限定的话,这样的w可以有无数条,所以我们限定w=1||w||=1。将样本点xix_i投影到向量w上,得到新的点ziz_i,有
zi=xicosθ=xiwcosθ=wTxi..........(1) z_i=|x_i|cos\theta=|x_i||w|cos\theta=w^Tx_i..........(1)
  则其总体均值为
zˉ=1Ni=1NwTxi..........(2) \bar z=\frac{1}{N}\sum_{i=1}^Nw^Tx_i..........(2)
  总体方差为
Sz=1Ni=1N(wTxizˉ)(wTxizˉ)T..........(3) S_z=\frac{1}{N}\sum_{i=1}^N(w^Tx_i-\bar z)(w^Tx_i-\bar z)^T..........(3)
  假设两类样本分别用c1c_1c2c_2表示,则
zˉ1=1N1i=1N1wTxi..........(4)zˉ2=1N2i=1N2wTxi..........(5)S1=1N1i=1N1(wTxizˉ1)(wTxizˉ1)T..........(6)S2=1N2i=1N2(wTxizˉ2)(wTxizˉ2)T..........(7) \bar z_1=\frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i..........(4) \\ \bar z_2=\frac{1}{N_2}\sum_{i=1}^{N_2}w^Tx_i..........(5) \\ S_1=\frac{1}{N_1}\sum_{i=1}^{N_1}(w^Tx_i-\bar z_1)(w^Tx_i-\bar z_1)^T..........(6) \\ S_2=\frac{1}{N_2}\sum_{i=1}^{N_2}(w^Tx_i-\bar z_2)(w^Tx_i-\bar z_2)^T..........(7)
  我们可以使两类样本的均值差最大来表示“类间大”,两类样本的方差和最小来表示“类内小”。因此我们可以将其构造成一个目标函数:
J(w)=(zˉ1zˉ2)2(S1+S2)..........(8) J(w)=\frac{(\bar z_1-\bar z_2)^2}{(S_1+S_2)}..........(8)
  则有
w^=argmaxwJ(w)=argmaxw(zˉ1zˉ2)2(S1+S2)=argmaxw(1N1i=1N1wTxi1N2i=1N2wTxi)2(1N1i=1N1(wTxizˉ1)(wTxizˉ1)T+1N2i=1N2(wTxizˉ2)(wTxizˉ2)T)=argmaxw(wT(1N1i=1N1xi1N2i=1N2xi))21N1i=1N1wT(xixˉc1)(xixˉc1)Tw+1N2i=1N2wT(xixˉc2)(xixˉc2)w=argmaxw(wT(xˉc1xˉc2))2wTSc1w+wTSc2w=argmaxwwT(xˉc1xˉc2)(xˉc1xˉc2)TwwT(Sc1+Sc2)w \begin{aligned} \hat w &=\arg \max_wJ(w) \\ &=\arg \max_w \frac{(\bar z_1-\bar z_2)^2}{(S_1+S_2)} \\ &=\arg \max_w \frac{(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}w^Tx_i-\frac{1}{N_2}\sum\limits_{i=1}^{N_2}w^Tx_i)^2}{(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(w^Tx_i-\bar z_1)(w^Tx_i-\bar z_1)^T+\frac{1}{N_2}\sum\limits_{i=1}^{N_2}(w^Tx_i-\bar z_2)(w^Tx_i-\bar z_2)^T)} \\ &=\arg \max_w \frac{(w^T(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}x_i-\frac{1}{N_2}\sum\limits_{i=1}^{N_2}x_i))^2}{\frac{1}{N_1}\sum\limits_{i=1}^{N_1}w^T(x_i-\bar x_{c1})(x_i-\bar x_{c1})^Tw+\frac{1}{N_2}\sum\limits_{i=1}^{N_2}w^T(x_i-\bar x_{c2})(x_i-\bar x_{c2})w} \\ &=\arg \max_w \frac{(w^T(\bar x_{c1}-\bar x_{c2}))^2}{w^TS_{c1}w+w^TS_{c2}w} \\ &=\arg \max_w \frac{w^T(\bar x_{c1}-\bar x_{c2})(\bar x_{c1}-\bar x_{c2})^Tw}{w^T(S_{c1}+S_{c2})w} \end{aligned}
  令
Sb=(xˉc1xˉc2)(xˉc1xˉc2)T..........(9)Sw=(Sc1+Sc2)..........(10) S_b=(\bar x_{c1}-\bar x_{c2})(\bar x_{c1}-\bar x_{c2})^T..........(9) \\ S_w=(S_{c1}+S_{c2})..........(10)
  SbS_b称为类间散度矩阵,SwS_w称为类内散度矩阵,则
J(w)=wTSbwwTSww.........(11) J(w)=\frac{w^TS_bw}{w^TS_ww} .........(11)
  上式为广义瑞利熵的形式,利用广义瑞利商性质J(w)最大值为矩阵Sb1/2SwSb1/2S_b^{-1/2}S_wS_b^{-1/2}的最大特征值,而对应的w为的最大特征值对应的特征向量。
  也可以不考虑广义瑞利熵,式子11对ww求偏导,并令导数为0 ,有
(wTSww)Sbw=(wTSbw)Sww..........(12) (w^TS_ww)S_bw=(w^TS_bw)S_ww..........(12)
  因为在简化的二分类问题中,wTSbww^TS_bwwTSwww^TS_ww都是实数,所以有
Sbw=J(w)Sww S_bw=J(w)S_ww
  整理得
Sw1Sbw=J(w)w..........(13) S_w^{-1}S_bw=J(w)w..........(13)
  从式子13可以看出,我们要最大化的目标j(w)j(w)对应了矩阵Sw1SbS_w^{-1}S_b的最大特征值,而投影方向就是这个特征值对应的特征向量。

  二分类的LDA到这里就结束了。而如果扩展到N分类呢?扩展到N分类后,我们希望将特征降到d维,让投影后的样本点仍然满足最大化类间距离和最小化类内距离。类内散度矩阵SwS_w扩展到n维后仍然满足定义,而类间散度矩阵SbS_b则不满足,我们需要做一些小小的变化。定义全局散度矩阵
St=i=1n(xiμ)(xiμ)T S_t=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T
  其中μ\mu是N类样本中心的均值。重新定义St=Sb+SwS_t=S_b+S_w,则
Sb=StSw=i=1n(xiμ)(xiμ)TxCi(xiμi)(xiμi)T=j=1N(xCi(xiμ)(xiμ)TxCi(xiμi)(xiμi)T)=j=1Nmj(μjμ)(μjμ)T \begin{aligned} S_b &=S_t-S_w \\ &=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T-\sum_{x \in C_i}(x_i-\mu_i)(x_i-\mu_i)^T\\ &=\sum_{j=1}^N\left(\sum_{x \in C_i}(x_i-\mu)(x_i-\mu)^T-\sum_{x \in C_i}(x_i-\mu_i)(x_i-\mu_i)^T\right)\\ &=\sum_{j=1}^Nm_j(\mu_j-\mu)(\mu_j-\mu)^T \end{aligned}
  其中mjm_j是第j个类别中的样本个数,N是总类别数。根据LDA,最大化目标为
J(W)=tr(WTSbW)tr(WTSwW),s.t.WTW=I J(W)=\frac{tr(W^TS_bW)}{tr(W^TS_wW)} ,\quad s.t. W^TW=I
  最大化J(W)对应了以下广义特征值的求解,即
Sbw=λSww S_bw=\lambda S_ww
  通过求解Sw1SbS_w^{-1}S_b矩阵的前k个最大特征向量组成的矩阵,得到W,从而能够将原始的特征空间投影到新的d维空间中。

LDA与PCA

  • PCA选取的是投影后数据方差最大的方向,由于PCA是无监督学习,他假设方差越大,信息越多,使用主成分来达到降维。
  • LDA选择的是投影后类内方差小,类间方差大的方向,属于有监督学习。
  • 从应用的角度,对无监督的学习应该使用PCA进行降维,对有监督的则应用LDA。
展开阅读全文

没有更多推荐了,返回首页