有监督降维。目标是降维后的组内(同一类别)方差小,组间(不同类别)方差大。
作用:
k<p
寻找当前所在的 p p p线性空间的一个 k k k维线性子空间,在这个 k k k维空间表示这些数据(将数据投影到 k k k维空间);
与PCA相比,LDA更关心分类而不是方差。
如果将数据直接投影到连接两中心的向量上降维,数据会有重叠,并不是最优。本来可以进行线性分割数据,降维后无法进行线性分割了。
为减少重叠,降维的数据应满足两个特征:
设有包含 n n n个样本的训练数据集 T T T,共有 C C C个类别,第 i i i个类别有 n i n_i ni个样本,可写第 i i i个类别的数据集 D i = { x i j , j = 1 , 2 , . . . , n i } D_i=\{x_i^j, j=1,2,...,n_i\} Di={xij,j=1,2,...,ni},其中每个样本 x i j x_i^j xij都是 p p p维的列向量, i = 1 , 2 , . . . , C i=1,2,...,C i=1,2,...,C,每个类别的样本均值及方差为,
μ i = 1 n i ∑ j = 1 n i x i j \mu_i=\frac{1}{n_i}\sum_{j=1}^{n_i}x_i^j μi=ni1j=1∑nixij
s i 2 = 1 n i − 1 ∑ j = 1 n i ( x i j − μ i ) 2 s_i^2=\frac{1}{n_i-1}\sum_{j=1}^{n_i}(x_i^j-\mu_i)^2 si2=ni−11j=1∑ni(xij−μi)2
整体的均值,
μ = 1 n ∑ i = 1 C ∑ j = 1 n i x i j \mu=\frac{1}{n}\sum_{i=1}^C\sum_{j=1}^{n_i}x_i^j μ=n1i=1∑Cj=1∑nixij
数据集只有两个类别,我们现在要将原始数据降低到只有一维。设 w w w是一个合适的投影方向,现在推导 w w w应该满足什么条件。
样本 x i j x_i^j xij在 w w w方向的投影,
y i j = w T x i j , j = 1 , . . . , n i , i = 1 , 2 y_i^j=w^Tx_i^j,\quad j=1,...,n_i,i=1,2 yij=wTxij,j=1,...,ni,i=1,2
投影后每个类别的样本均值与样本方差为,
μ ~ i = 1 n i ∑ j = 1 n i y i j = 1 n i ∑ j = 1 n i w T x i j = w T μ i , i = 1 , 2 \tilde{\mu}_i=\frac{1}{n_i}\sum_{j=1}^{n_i}y_i^j=\frac{1}{n_i}\sum_{j=1}^{n_i}w^Tx_i^j=w^T\mu_i,\quad i=1,2 μ~i=ni1j=1∑niyij=ni1j=1∑niwTxij=wTμi,i=1,2
s ~ i 2 = 1 n i − 1 ∑ j = 1 n i ( y i j − μ ~ i ) 2 = 1 n i − 1 ∑ j = 1 n i ( w T ( x i j − μ i ) ) 2 = w T s i 2 w , i = 1 , 2 \tilde{s}_i^2=\frac{1}{n_i-1}\sum_{j=1}^{n_i}(y_i^j-\tilde{\mu}_i)^2=\frac{1}{n_i-1}\sum_{j=1}^{n_i}(w^T(x_i^j-\mu_i))^2=w^Ts_i^2w,\quad i=1,2 s~i2=ni−11j=1∑ni(yij−μ~i)2=ni−11j=1∑ni(wT(xij−μi))2=wTsi2w,i=1,2
我们希望投影后两类样例中心尽量地分离,即
max ∣ μ 1 ~ − μ 2 ~ ∣ = max ∣ w T ( μ 1 − μ 2 ) ∣ \max \quad|\tilde{\mu_1}-\tilde{\mu_2}|=\max \quad|w^T(\mu_1-\mu_2)| max∣μ1~−μ2~∣=max∣wT(μ1−μ2)∣
同时,我们希望投影后类内部方差 s ~ i 2 \tilde{s}_i^2 s~i2越小越好,于是,得到目标函数,
max w J ( w ) = ∣ μ 1 ~ − μ 2 ~ ∣ 2 s ~ 1 2 + s ~ 2 2 = w T ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T w w T ( s 1 2 + s 2 2 ) w \max_{w} \quad J(w)=\frac{|\tilde{\mu_1}-\tilde{\mu_2}|^2}{\tilde{s}_1^2+\tilde{s}_2^2}=\frac{w^T(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw}{w^T(s_1^2+s_2^2)w} wmaxJ(w)=s~12+s~22∣μ1~−μ2~∣2=wT(s12+s22)wwT(μ1−μ2)(μ1−μ2)Tw
定义类间散度矩阵 S b S_b Sb及类内散度矩阵 S w S_w Sw如下,
S w = ∑ i = 1 2 ∑ j = 1 n i ( x i j − μ i ) ( x i j − μ i ) T S_w=\sum_{i=1}^2\sum_{j=1}^{n_i}(x_i^j-\mu_i)(x_i^j-\mu_i)^T Sw=i=1∑2j=1∑ni(xij−μi)(xij−μi)T
S b = ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T S_b=(\mu_1-\mu_2)(\mu_1-\mu_2)^T Sb=(μ1−μ2)(μ1−μ2)T
则可写目标函数,
max w J ( w ) = w T S b w w T S w w \max_{w} \quad J(w)=\frac{w^TS_bw}{w^TS_ww} wmaxJ(w)=wTSwwwTSbw
最大化 J ( w ) J(w) J(w)只需对 w w w求偏导,并令导数等于0,即令分子为0,
( 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 T S w w \lambda=\frac{w^TS_bw}{w^TS_ww} λ=wTSwwwTSbw,这是最优目标函数值,一个常数,带入上式得到,
S b w = λ S w w S_bw=\lambda S_ww Sbw=λSww
S w S_w Sw是协方差阵,可逆,两边左乘 S w − 1 S_w^{-1} Sw−1,
S w − 1 S b w = λ w S_w^{-1}S_bw=\lambda w Sw−1Sbw=λw
至此,我们得到,最大化的目标对应了矩阵的最大特征值,而投影方向就是这个特征值对应的特征向量。
数据集不只两个类别,降一维已经不能满足分类要求,需要 k k k个基向量来做投影, W = ( w 1 , w 2 , . . . , w k ) W=(w_1,w_2,...,w_k) W=(w1,w2,...,wk),其中 w i w_i wi是 p p p维列向量,记样本 x x x在这组基上投影的结果为 y = ( y 1 , y 2 , . . . , y k ) y=(y_1,y_2,...,y_k) y=(y1,y2,...,yk),
y i = w i T x , y = W T x y_i=w_i^Tx,\quad y=W^Tx yi=wiTx,y=WTx
类似地,可以定义,
多分类LDA有多种实现方法:采用 S b , S w , S t S_b,S_w,S_t Sb,Sw,St中的任意两个。
例如:
max w t r ( W T S b W ) t r ( W T S w W ) ⟹ S b W = λ S w W \max_w \frac{tr(W^TS_bW)}{tr(W^TS_wW)}\Longrightarrow S_bW=\lambda S_w W wmaxtr(WTSwW)tr(WTSbW)⟹SbW=λSwW
参考:
线性判别分析LDA详解