PCA和Fisher LDA

PCA

PCA主要用于没有标签的降维,想法就是把数据投影在某个方向上,使得信噪比最大,也就是投影的方差最大。

对于给定的一组数据 x 1 , x 2 , . . . , x n x_1, x_2,...,x_n x1,x2,...,xn,其中每一个都是列向量,假设投影方向的单位列向量是w,投影后的方差可以表示为
D ( x ) = 1 n ∑ i = 1 n ( x i T w ) 2 D ( x ) = 1 n ∑ i = 1 n ( x i T w ) T ( x i T w ) D ( x ) = w T [ 1 n ∑ i = 1 n ( x i x i T ) ] w D(x)=\frac{1}{n}\sum_{i=1}^n(x_i^Tw)^2\\ D(x)=\frac{1}{n}\sum_{i=1}^n(x_i^Tw)^T(x_i^Tw)\\ D(x)=w^T[\frac{1}{n}\sum_{i=1}^n(x_ix_i^T)]w D(x)=n1i=1n(xiTw)2D(x)=n1i=1n(xiTw)T(xiTw)D(x)=wT[n1i=1n(xixiT)]w
中间刚好是协方差矩阵 Σ \Sigma Σ,所以目标函数就是
arg max ⁡ w w T Σ w s . t . w T w = 1 \argmax_w w^T\Sigma w \\ s.t. w^Tw=1 wargmaxwTΣws.t.wTw=1
所以拉格朗日乘数法就上了,可以推出
D ( x ) = w T Σ w = λ w T w = λ D(x)=w^T\Sigma w=\lambda w^T w=\lambda D(x)=wTΣw=λwTw=λ
所以x投影后的方差就是协方差矩阵的特征值,投影的方向就是特征值对应的特征向量。哪个投影方向好就是特征值较大的方向,最后取特征值较大的特征向量的方向。

Fisher LDA

Fisher LDA是有监督的降维,降维目标是类间距离和类内距离的比值达到最大,也就是
J ( w ) = w T ( u 1 − u 2 ) ( u 1 − u 2 ) T w ∑ x ∈ C i w T ( x − u i ) ( x − u i ) T w S B = ( u 1 − u 2 ) ( u 1 − u 2 ) T S W = ∑ x ∈ C i ( x − u i ) ( x − u i ) T J(w)=\frac{w^T(u_1-u_2)(u_1-u_2)^Tw}{\sum_{x \in C_i}w^T(x-u_i)(x-u_i)^Tw} \\ S_B=(u_1-u_2)(u_1-u_2)^T\\ S_W=\sum_{x \in C_i}(x-u_i)(x-u_i)^T\\ J(w)=xCiwT(xui)(xui)TwwT(u1u2)(u1u2)TwSB=(u1u2)(u1u2)TSW=xCi(xui)(xui)T
其中 u i u_i ui表示第i类的均值向量, S B S_B SB S W S_W SW可以看成是类间和类内的散列矩阵
问题可以简化成
J ( w ) = w T S B w w T S W w J(w)=\frac{w^TS_Bw}{w^TS_Ww} J(w)=wTSWwwTSBw
我们要最大化 J ( w ) J(w) J(w),对它求偏导。先补充一点矩阵偏导的推导,利用迹trace。如果A是方阵,w是列向量,那么可以有以下表达式,这个如果直接求容易被矩阵绕晕掉:
f ( w ) = w T A w ∂ f ( w ) ∂ w = w T ( A T + A ) f(w)=w^TAw\\ \frac{\partial f(w)}{\partial w}=w^T(A^T+A) f(w)=wTAwwf(w)=wT(AT+A)
推导可以利用迹trace,如下:
d f ( w ) = ( d w ) T A w + w T A d w t r [ d f ( w ) ] = t r ( [ d w ) T A w ] T + w T A d w ) t r [ d f ( w ) ] = t r ( w T A T d w + w T A d w ) df(w)=(dw)^TAw+w^TAdw\\ tr[df(w)]=tr([dw)^TAw]^T+w^TAdw)\\ tr[df(w)]=tr(w^TA^Tdw+w^TAdw) df(w)=(dw)TAw+wTAdwtr[df(w)]=tr([dw)TAw]T+wTAdw)tr[df(w)]=tr(wTATdw+wTAdw)
所以最后 ∂ f ( w ) ∂ w \frac{\partial f(w)}{\partial w} wf(w)是一个列向量,如果想把它变成行向量再转置一个就好。
有了推导的方法,可以得到
( w T S W w ) S B w = ( w T S B w ) S W w (w^TS_Ww)S_Bw=(w^TS_Bw)S_Ww (wTSWw)SBw=(wTSBw)SWw
( w T S B w ) (w^TS_Bw) (wTSBw) ( w T S W w ) (w^TS_Ww) (wTSWw)是两个数,可以令 λ = J ( w ) \lambda=J(w) λ=J(w),所以可以得到
S W − 1 S B w = λ w S_W^{-1}S_Bw=\lambda w SW1SBw=λw
所以这个问题也变成了求矩阵特征值的解法
最后还有两点需要注意:

  1. 对于二分类,由于 S B = ( u 1 − u 2 ) ( u 1 − u 2 ) T S_B=(u_1-u_2)(u_1-u_2)^T SB=(u1u2)(u1u2)T,因此最终投影方向 S B w S_Bw SBw和均值方向的差 ( u 1 − u 2 ) (u_1-u_2) (u1u2)是一样的。因为 ( u 1 − u 2 ) T w (u_1-u_2)^Tw (u1u2)Tw是个数字
  2. 如果只考虑方向,不考虑长度,可以得
    S W − 1 k ( u 1 − u 2 ) = λ w S_W^{-1}k(u_1-u_2)=\lambda w SW1k(u1u2)=λw
    也就是说,可以只算样本的均值和类的方差,就可以快速得到投影方向w

更多内容参考葫芦书

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值