Fisher‘s Linear Discriminent Analysis(FDA)

  • FDA是一种降维方法
  • 考虑类别,将数据投影到能最大限度分开数据的方向上

假设和符号

假设有两个类别
y ∈ { 0 , 1 } y\in \{0, 1\} y{ 0,1},
X = [ x 1 , … , x n ] d ∗ n X=[x_1,\dots,x_n]_{d*n} X=[x1,,xn]dn,
Y = [ y 1 , … , y n ] 1 ∗ n Y=[y_1,\dots,y_n]_{1*n} Y=[y1,,yn]1n,
我们要把所有的点映射到一个方向 w w w上, z = w T x z=w^Tx z=wTx

假设 μ 0 \mu_0 μ0是一类的均值, μ 1 \mu_1 μ1是另一类的均值。 μ 0 = 1 n 0 ∑ i : y i = 0 x i , μ 1 = 1 n 1 ∑ i : y i = 1 x i \mu_0=\frac{1}{n_0}\sum_{i:y_i=0}x_i,\mu_1=\frac{1}{n_1}\sum_{i:y_i=1}x_i μ0=n01i:yi=0xi,μ1=n11i:yi=1xi.

类间分散

数据点的均值为 μ \mu μ,投影到方向 w w w后的均值为 w T μ w^T\mu wTμ

使类间尽量分散,就是最大化下面的值:
max ⁡ w   ( w T μ 0 − w T μ 1 ) 2 \max_w \ (w^T\mu_0-w^T\mu_1)^2 wmax (wTμ0wTμ1)2
等于
max ⁡ w   w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w \max_w \ w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw wmax wT(μ0μ1)(μ0μ1)Tw
定义 S B = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_B=(\mu_0-\mu_1)(\mu_0-\mu_1)^T SB=(μ0μ1)(μ0μ1)Tbetween class covariance

类内聚集

数据点的方差为 Σ \Sigma Σ,投影到方向 w w w后的方差为 w T Σ w w^T\Sigma w wTΣw

使类内数据尽量聚集,就是最小化下面的值:
min ⁡ w w T ( Σ 0 + Σ 1 ) w \min_w w^T(\Sigma_0+\Sigma_1)w wminwT(Σ0+Σ1)w
定义 S W = Σ 0 + Σ 1 S_W=\Sigma_0+\Sigma_1 SW=Σ0+Σ1within class covariance

综合上面两个条件

max ⁡ w w T S B w min ⁡ w w T S W w \max_w w^TS_B w \\ \min_w w^TS_Ww wmaxwTSBwwminwTSWw
等价于:
max ⁡ w w T S B w s . t .   w T S W w = 1 \begin{aligned} &\max_w w^TS_B w \\ &s.t. \ w^TS_Ww=1 \end{aligned} wmaxwTSBws.t. wTSWw=1
用Larange求解:
L ( w , λ ) = w T S B w − λ ( w T S W w − 1 ) L(w,\lambda)=w^TS_Bw-\lambda(w^TS_Ww-1) L(w,λ)=wTSBwλ(wTSWw1),对 w w w求导:
∂ L ∂ w = S B w − λ S W w = 0 S B w = λ S W w S W − 1 S B w = λ w \begin{aligned} &\frac{\partial L}{\partial w}=S_Bw- \lambda S_W w=0 \\ &S_Bw=\lambda S_W w \\ &S_W^{-1}S_Bw=\lambda w \end{aligned} wL=SBwλSWw=0SBw=λSWwSW1SBw=λw

S W − 1 S B S_W^{-1}S_B SW1SB的秩是1,所以上式只有一个解。还有一种简单解法:
S W − 1 ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w = λ w S_W^{-1}(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw=\lambda w SW1(μ0μ1)(μ0μ1)Tw=λw
w w w的方向为 S W − 1 ( μ 0 − μ 1 ) S_W^{-1}(\mu_0-\mu_1) SW1(μ0μ1)

多个类的情况

对应k类问题,应该有k-1个方向。
W T S B W W^TS_BW WTSBW W T S W W W^TS_WW WTSWW,其中 W = [ w 1 , w 2 … , w k − 1 ] W=[w_1,w_2 \dots,w_{k-1}] W=[w1,w2,wk1]

T r ( W T S B W ) = w 1 T S B w 1 + ⋯ + w k − 1 T S B w k − 1 Tr(W^TS_BW)=w_1^TS_Bw_1+\dots+w_{k-1}^TS_Bw_{k-1} Tr(WTSBW)=w1TSBw1++wk1TSBwk1

max ⁡ W   T r ( W T S B W ) s . t .   T r ( W T S W W ) = 1 \begin{aligned} \max_W &\ Tr(W^TS_BW) \\ s.t. &\ Tr(W^TS_WW)=1 \end{aligned} Wmaxs.t. Tr(WTSBW) Tr(WTSWW)=1
用Lagrange求解:
L ( W , λ ) = T r ( W T S B W ) − λ [ T r ( W T S W W ) − 1 ] L(W,\lambda)=Tr(W^TS_BW)-\lambda [Tr(W^TS_WW)-1] L(W,λ)=Tr(WTSBW)λ[Tr(WTSWW)1]
S W − 1 S B S_W^{-1}S_B SW1SB秩为k-1,有k-1个特征向量。
S W = Σ 0 + Σ 1 + ⋯ + Σ k − 1 S_W=\Sigma_0+\Sigma_1+\dots+\Sigma_{k-1} SW=Σ0+Σ1++Σk1
S B = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T + … S_B=(\mu_0-\mu_1)(\mu_0-\mu_1)^T+\dots SB=(μ0μ1)(μ0μ1)T+
S T = S B + S W S_T=S_B+S_W ST=SB+SW
S T = 1 n − d ∑ i = 1 n ( x i − μ ) ( x i − μ ) T S_T=\frac{1}{n-d}\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T ST=nd1i=1n(xiμ)(xiμ)T


数据点的方差为 Σ \Sigma Σ,投影到方向 w w w后的方差为 w T Σ w w^T\Sigma w wTΣw

这个是为什么呢?
原因很简单,假设数据集用 X = [ x 1 … x n ] d ∗ n X=[x_1 \dots x_n]_{d*n} X=[x1xn]dn表示,那协方差矩阵就是 Σ = X X T \Sigma=XX^T Σ=XXT,投影后的数据集维 u T X u^TX uTX,它的协方差矩阵是 ( u T X ) ( u T X ) T = u T X X T u = u T Σ u (u^TX)(u^TX)^T=u^TXX^Tu=u^T\Sigma u (uTX)(uTX)T=uTXXTu=uTΣu

你可能感兴趣的:(STAT,442/842,Data,Visulation,FDA)