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

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

线性判别分析

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

  假设我们找到了最好的投影方向 w w w,如果不对其做限定的话,这样的w可以有无数条,所以我们限定 ∣ ∣ w ∣ ∣ = 1 ||w||=1 w=1。将样本点 x i x_i xi投影到向量w上,得到新的点 z i z_i zi,有
z i = ∣ x i ∣ c o s θ = ∣ x i ∣ ∣ w ∣ c o s θ = w T x i . . . . . . . . . . ( 1 ) z_i=|x_i|cos\theta=|x_i||w|cos\theta=w^Tx_i..........(1) zi=xicosθ=xiwcosθ=wTxi..........(1)
  则其总体均值为
z ˉ = 1 N ∑ i = 1 N w T x i . . . . . . . . . . ( 2 ) \bar z=\frac{1}{N}\sum_{i=1}^Nw^Tx_i..........(2) zˉ=N1i=1NwTxi..........(2)
  总体方差为
S z = 1 N ∑ i = 1 N ( w T x i − z ˉ ) ( w T x i − z ˉ ) T . . . . . . . . . . ( 3 ) S_z=\frac{1}{N}\sum_{i=1}^N(w^Tx_i-\bar z)(w^Tx_i-\bar z)^T..........(3) Sz=N1i=1N(wTxizˉ)(wTxizˉ)T..........(3)
  假设两类样本分别用 c 1 c_1 c1 c 2 c_2 c2表示,则
z ˉ 1 = 1 N 1 ∑ i = 1 N 1 w T x i . . . . . . . . . . ( 4 ) z ˉ 2 = 1 N 2 ∑ i = 1 N 2 w T x i . . . . . . . . . . ( 5 ) S 1 = 1 N 1 ∑ i = 1 N 1 ( w T x i − z ˉ 1 ) ( w T x i − z ˉ 1 ) T . . . . . . . . . . ( 6 ) S 2 = 1 N 2 ∑ i = 1 N 2 ( w T x i − z ˉ 2 ) ( w T x i − z ˉ 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) zˉ1=N11i=1N1wTxi..........(4)zˉ2=N21i=1N2wTxi..........(5)S1=N11i=1N1(wTxizˉ1)(wTxizˉ1)T..........(6)S2=N21i=1N2(wTxizˉ2)(wTxizˉ2)T..........(7)
  我们可以使两类样本的均值差最大来表示“类间大”,两类样本的方差和最小来表示“类内小”。因此我们可以将其构造成一个目标函数:
J ( w ) = ( z ˉ 1 − z ˉ 2 ) 2 ( S 1 + S 2 ) . . . . . . . . . . ( 8 ) J(w)=\frac{(\bar z_1-\bar z_2)^2}{(S_1+S_2)}..........(8) J(w)=(S1+S2)(zˉ1zˉ2)2..........(8)
  则有
w ^ = arg ⁡ max ⁡ w J ( w ) = arg ⁡ max ⁡ w ( z ˉ 1 − z ˉ 2 ) 2 ( S 1 + S 2 ) = arg ⁡ max ⁡ w ( 1 N 1 ∑ i = 1 N 1 w T x i − 1 N 2 ∑ i = 1 N 2 w T x i ) 2 ( 1 N 1 ∑ i = 1 N 1 ( w T x i − z ˉ 1 ) ( w T x i − z ˉ 1 ) T + 1 N 2 ∑ i = 1 N 2 ( w T x i − z ˉ 2 ) ( w T x i − z ˉ 2 ) T ) = arg ⁡ max ⁡ w ( w T ( 1 N 1 ∑ i = 1 N 1 x i − 1 N 2 ∑ i = 1 N 2 x i ) ) 2 1 N 1 ∑ i = 1 N 1 w T ( x i − x ˉ c 1 ) ( x i − x ˉ c 1 ) T w + 1 N 2 ∑ i = 1 N 2 w T ( x i − x ˉ c 2 ) ( x i − x ˉ c 2 ) w = arg ⁡ max ⁡ w ( w T ( x ˉ c 1 − x ˉ c 2 ) ) 2 w T S c 1 w + w T S c 2 w = arg ⁡ max ⁡ w w T ( x ˉ c 1 − x ˉ c 2 ) ( x ˉ c 1 − x ˉ c 2 ) T w w T ( S c 1 + S c 2 ) 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} w^=argwmaxJ(w)=argwmax(S1+S2)(zˉ1zˉ2)2=argwmax(N11i=1N1(wTxizˉ1)(wTxizˉ1)T+N21i=1N2(wTxizˉ2)(wTxizˉ2)T)(N11i=1N1wTxiN21i=1N2wTxi)2=argwmaxN11i=1N1wT(xixˉc1)(xixˉc1)Tw+N21i=1N2wT(xixˉc2)(xixˉc2)w(wT(N11i=1N1xiN21i=1N2xi))2=argwmaxwTSc1w+wTSc2w(wT(xˉc1xˉc2))2=argwmaxwT(Sc1+Sc2)wwT(xˉc1xˉc2)(xˉc1xˉc2)Tw
  令
S b = ( x ˉ c 1 − x ˉ c 2 ) ( x ˉ c 1 − x ˉ c 2 ) T . . . . . . . . . . ( 9 ) S w = ( S c 1 + S c 2 ) . . . . . . . . . . ( 10 ) S_b=(\bar x_{c1}-\bar x_{c2})(\bar x_{c1}-\bar x_{c2})^T..........(9) \\ S_w=(S_{c1}+S_{c2})..........(10) Sb=(xˉc1xˉc2)(xˉc1xˉc2)T..........(9)Sw=(Sc1+Sc2)..........(10)
   S b S_b Sb称为类间散度矩阵, S w S_w Sw称为类内散度矩阵,则
J ( w ) = w T S b w w T S w w . . . . . . . . . ( 11 ) J(w)=\frac{w^TS_bw}{w^TS_ww} .........(11) J(w)=wTSwwwTSbw.........(11)
  上式为广义瑞利熵的形式,利用广义瑞利商性质J(w)最大值为矩阵 S b − 1 / 2 S w S b − 1 / 2 S_b^{-1/2}S_wS_b^{-1/2} Sb1/2SwSb1/2的最大特征值,而对应的w为的最大特征值对应的特征向量。
  也可以不考虑广义瑞利熵,式子11对 w w w求偏导,并令导数为0 ,有
( w T S w w ) S b w = ( w T S b w ) S w w . . . . . . . . . . ( 12 ) (w^TS_ww)S_bw=(w^TS_bw)S_ww..........(12) (wTSww)Sbw=(wTSbw)Sww..........(12)
  因为在简化的二分类问题中, w T S b w w^TS_bw wTSbw w T S w w w^TS_ww wTSww都是实数,所以有
S b w = J ( w ) S w w S_bw=J(w)S_ww Sbw=J(w)Sww
  整理得
S w − 1 S b w = J ( w ) w . . . . . . . . . . ( 13 ) S_w^{-1}S_bw=J(w)w..........(13) Sw1Sbw=J(w)w..........(13)
  从式子13可以看出,我们要最大化的目标 j ( w ) j(w) j(w)对应了矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb的最大特征值,而投影方向就是这个特征值对应的特征向量。

  二分类的LDA到这里就结束了。而如果扩展到N分类呢?扩展到N分类后,我们希望将特征降到d维,让投影后的样本点仍然满足最大化类间距离和最小化类内距离。类内散度矩阵 S w S_w Sw扩展到n维后仍然满足定义,而类间散度矩阵 S b S_b Sb则不满足,我们需要做一些小小的变化。定义全局散度矩阵
S t = ∑ i = 1 n ( x i − μ ) ( x i − μ ) T S_t=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T St=i=1n(xiμ)(xiμ)T
  其中 μ \mu μ是N类样本中心的均值。重新定义 S t = S b + S w S_t=S_b+S_w St=Sb+Sw,则
S b = S t − S w = ∑ i = 1 n ( x i − μ ) ( x i − μ ) T − ∑ x ∈ C i ( x i − μ i ) ( x i − μ i ) T = ∑ j = 1 N ( ∑ x ∈ C i ( x i − μ ) ( x i − μ ) T − ∑ x ∈ C i ( x i − μ i ) ( x i − μ i ) T ) = ∑ j = 1 N m j ( μ 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} 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
  其中 m j m_j mj是第j个类别中的样本个数,N是总类别数。根据LDA,最大化目标为
J ( W ) = t r ( W T S b W ) t r ( W T S w W ) , s . t . W T W = I J(W)=\frac{tr(W^TS_bW)}{tr(W^TS_wW)} ,\quad s.t. W^TW=I J(W)=tr(WTSwW)tr(WTSbW),s.t.WTW=I
  最大化J(W)对应了以下广义特征值的求解,即
S b w = λ S w w S_bw=\lambda S_ww Sbw=λSww
  通过求解 S w − 1 S b S_w^{-1}S_b Sw1Sb矩阵的前k个最大特征向量组成的矩阵,得到W,从而能够将原始的特征空间投影到新的d维空间中。

LDA与PCA

  • PCA选取的是投影后数据方差最大的方向,由于PCA是无监督学习,他假设方差越大,信息越多,使用主成分来达到降维。
  • LDA选择的是投影后类内方差小,类间方差大的方向,属于有监督学习。
  • 从应用的角度,对无监督的学习应该使用PCA进行降维,对有监督的则应用LDA。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值