假设有两个类别
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]d∗n,
Y = [ y 1 , … , y n ] 1 ∗ n Y=[y_1,\dots,y_n]_{1*n} Y=[y1,…,yn]1∗n,
我们要把所有的点映射到一个方向 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=n01∑i:yi=0xi,μ1=n11∑i: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μ0−wTμ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)T为between 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+Σ1为within 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−λ(wTSWw−1),对 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} ∂w∂L=SBw−λSWw=0SBw=λSWwSW−1SBw=λw
S W − 1 S B S_W^{-1}S_B SW−1SB的秩是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 SW−1(μ0−μ1)(μ0−μ1)Tw=λw
w w w的方向为 S W − 1 ( μ 0 − μ 1 ) S_W^{-1}(\mu_0-\mu_1) SW−1(μ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…,wk−1]
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+⋯+wk−1TSBwk−1
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 SW−1SB秩为k-1,有k-1个特征向量。
S W = Σ 0 + Σ 1 + ⋯ + Σ k − 1 S_W=\Sigma_0+\Sigma_1+\dots+\Sigma_{k-1} SW=Σ0+Σ1+⋯+Σk−1
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=n−d1∑i=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=[x1…xn]d∗n表示,那协方差矩阵就是 Σ = 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