PCA、SVD和LDA


原始数据有时有高维特征向量,可能包含很多冗余和噪声。通过降维寻找数据内部的特性,提升特征的表达能力,降低训练复杂度。

1.PCA,主成分分析

PCA,principal components analysis,是一种线性、非监督、全局的降维算法。
在高维空间中,用原有坐标系表示的数据,可能有线性相关的关系;如果变换坐标轴,变换后能用更少的基向量去表示数据,去除线性相关的维度。这样就可以将源数据降维。
如图:原二维空间中,数据中有线性关系;而将坐标系变换到右图后,横坐标更能表示样本的数据,纵坐标作用几乎消失。

  • 主成分:通过正交变换,将一组可能存在相关性的变量变换为一组线性不相关的变量,变换后的这组变量叫主成分。
1.1 方差最大原理
  1. 推导
  • 设样本点集 D = x i , ⋯   , x m , x i ∈ R n D={x_i,\cdots,x_m},x_i\in R^n D=xi,,xm,xiRn,其中样本经过中心化即 x i = x i − μ x_i = x_i-\mu xi=xiμ。目前样本点由n个正交基 [ 1 , 0 , ⋯   , 0 ] T , [ 0 , 1 , ⋯   , 0 ] T , ⋯   , [ 0 , 0 , ⋯   , 1 ] T [1,0,\cdots,0]^T,[0,1,\cdots,0]^T,\cdots,[0,0,\cdots,1]^T [1,0,,0]T,[0,1,,0]T,,[0,0,,1]T表示。我们想要将坐标轴变换后由k个正交基 w i , ⋯   , w k w_i,\cdots,w_k wi,,wk表示, w i T w i = 1 , w i T w j = 0 w_i^Tw_i=1,w_i^Tw_j=0 wiTwi=1,wiTwj=0
  • 为何原数据n维能由k维表示?

我们把正交基 w w w想象成一个向量,样本 x i x_i xi在这个轴上的取值,就等于样本在向量上的投影 x i T w x_i^Tw xiTw

在信号处理领域,认为信号具有较大方差,噪声具有较小方差,信号与噪声比成为信噪比。信噪比越大,信号质量越好。同样的,如果在变换后的轴 w w w上,样本的投影方差越大,这个轴对数据的表示越好。

如果样本在某个轴上投影后取值方差小,就代表这个轴上的取值对数据的表达不够好。这个轴上的取值就可以被抛弃 。
μ ′ = 1 m ∑ x i T w = ( 1 m ∑ x i T ) w = 0 D ( x ) = 1 m ∑ ( x i T w − μ ′ ) 2 = 1 m ∑ ( x i T w ) 2 = w T ( 1 m ∑ x i x i T ) w = w T Σ w = t r ( w T X X T w ) \begin{aligned} \mu^\prime &= \frac{1}{m}\sum x_i^Tw = (\frac{1}{m}\sum x_i^T)w = 0\\ D(x) &= \frac{1}{m}\sum(x_i^Tw - \mu^\prime)^2 = \frac{1}{m}\sum(x_i^Tw)^2 \\ &= w^T \Big( \frac{1}{m} \sum x_ix_i^T\Big)w \\ & = w^T \Sigma w \\ &=tr(w^T XX^Tw) \end{aligned} μD(x)=m1xiTw=(m1xiT)w=0=m1(xiTwμ)2=m1(xiTw)2=wT(m1xixiT)w=wTΣw=tr(wTXXTw)
这时需要求解
{ max ⁡ w T Σ w s . t . w T w = 1 \begin{cases} \max \quad & w^T\Sigma w \\s.t. \quad & w^Tw=1 \end{cases} {maxs.t.wTΣwwTw=1
拉格朗日函数
L = w T Σ w + λ ( 1 − w T w ) ∂ L ∂ w = 2 Σ w − 2 λ w = 0 \begin{aligned} L &= w^T\Sigma w + \lambda(1-w^Tw) \\ \frac{\partial L}{\partial w} &= 2\Sigma w -2\lambda w=0 \end{aligned} LwL=wTΣw+λ(1wTw)=2Σw2λw=0
得到 Σ w = λ w \Sigma w= \lambda w Σw=λw(即 w , λ w,\lambda w,λ分别是 Σ \Sigma Σ矩阵的特征向量和特征值),代入 D ( x ) = w T Σ w D(x)= w^T\Sigma w D(x)=wTΣw 中得到
D ( x ) = λ D(x) = \lambda D(x)=λ
因此想要映射方差最大,取最大的特征值 λ \lambda λ即可
2. 总结
获取数据后

  • 对样本数据中心化处理
  • 计算协方差矩阵(两两特征之间的斜方差)
  • 计算协方差矩阵的特征值、特征向量(eigenvalues, eigenvectors),将特征值和对应的特征向量按照特征值的大小排序
  • 对特征值前k大的特征向量 w 1 , w 2 , ⋯   , w k w_1,w_2,\cdots,w_k w1,w2,,wk,通过以下映射将n维样本映射到d维(即生成一个矩阵 W = [ w 1 , w 2 , ⋯   , w k ] k × n T W=[w_1,w_2,\cdots,w_k]^T_{k\times n} W=[w1,w2,,wk]k×nT,对样本 W x Wx Wx变换)
    x ′ = [ w 1 T x i w 2 T x i ⋮ w k T x i ] x^ \prime = \begin{bmatrix} w_1^T x_i \\ w_2^T x_i \\ \vdots \\w_k^T x_i \end{bmatrix} x=w1Txiw2TxiwkTxi

(由于协方差矩阵是对称矩阵,线代中定理可得,一定能找到矩阵使对称矩阵对角化 P − 1 A P = Λ P^{-1}AP =\Lambda P1AP=Λ,其中 Λ \Lambda Λ对角线上数据是矩阵A的特征值,而P矩阵的列向量就是A的特征向量,并且如果 λ \lambda λ值不同,对应的特征向量之间正交)

降维后的信息占比定义为
η = ∑ k λ i 2 ∑ n λ i 2 \eta = \sqrt \frac{\sum^k\lambda_i^2}{\sum^n\lambda_i^2} η=nλi2kλi2

1.2 最小平方误差角度

PCA求解的其实是最佳投影方向,也就是一条直线,可以用线性回归的角度解释。
以二维空间为例,找到一条直线,使所有的样本点到直线投影点的距离和最小。

R n R^n Rn高维空间中,要找到一个k维的超平面,使数据点到超平面的距离平方和最小。

  • 设k维超平面的标准正交基 W = { w 1 , ⋯   , w k } W=\{ w_1,\cdots,w_k \} W={w1,,wk}
  • 样本 x x x在超平面上的投影向量为 x ~ \tilde x x~
  • 投影向量可以表示为 x ~ = ∑ i = 0 k ( w i T x ) w i \tilde x = \sum_{i=0}^k(w_i^Tx)w_i x~=i=0k(wiTx)wi
    其中 w i T x w_i^Tx wiTx是样本在 w i w_i wi方向的投影长度。

要想使原样本点到投影点的距离之和最小
arg ⁡ min ⁡ w 1 , ⋯   , w k ∑ ∣ ∣ x − x ~ ∣ ∣ 2 2 s . t . w i T w j = δ i j = { 1 , i = j 0 , i ≠ j \begin{aligned} \arg &\min_{w_1,\cdots,w_k} \sum||x -\tilde x||_2^2 \\ s.t. &\quad w_i^Tw_j = \delta_{ij} = \begin{cases}1 ,&i=j \\ 0,&i \quad\neq j\end{cases} \end{aligned} args.t.w1,,wkminxx~22wiTwj=δij={1,0,i=ji̸=j
展开 ∣ ∣ x − x ~ ∣ ∣ 2 2 ||x - \tilde x||_2^2 xx~22
∣ ∣ x − x ~ ∣ ∣ 2 2 = x T x + x ~ T x ~ − 2 x T x ~ x T x ~ = x T ∑ i = 0 k ( w i T x ) w i = ∑ i = 0 k ( w i T x ) x T w i = ∑ i = 0 k w i T x x T w i x ~ T x ~ = ∑ i = 0 k ( w i T x ) w i T ∑ j = 0 k ( w j T x ) w j = ∑ i = 0 k ∑ j = 0 k ( w i T x ) ( w j T x ) w i T w j = ∑ i = 0 k ( w i T x ) ( w i T x ) w i T w i = ∑ i = 0 k w i T x x T w i w i T w i = ∑ i = 0 k w i T x x T w i ∣ ∣ x − x ~ ∣ ∣ 2 2 = − ∑ i = 0 k w i T x x T w i + c o n s t a n t ∑ ∣ ∣ x − x ~ ∣ ∣ 2 2 = − ∑ i = 0 k w i T ( ∑ m = 1 x m x m T ) w i = m ∑ i = 0 k w i T Σ w i \begin{aligned} ||x - \tilde x||_2^2 &= x^Tx + \tilde x^T\tilde x -2x^T\tilde x \\ x^T\tilde x &= x^T\sum_{i=0}^k(w_i^Tx)w_i = \sum_{i=0}^k(w_i^Tx)x^Tw_i = \sum_{i=0}^kw_i^Txx^Tw_i \\ \tilde x^T\tilde x &= \sum_{i=0}^k(w_i^Tx)w_i^T\sum_{j=0}^k(w_j^Tx)w_j = \sum_{i=0}^k\sum_{j=0}^k(w_i^Tx)(w_j^Tx)w_i^Tw_j \\ &= \sum_{i=0}^k (w_i^Tx)(w_i^Tx)w_i^T w_i \\ &= \sum_{i=0}^k w_i^Tx x^Tw_iw_i^T w_i = \sum_{i=0}^kw_i^Txx^Tw_i \\ ||x - \tilde x||_2^2 &= -\sum_{i=0}^kw_i^Txx^Tw_i + constant \\ \sum||x -\tilde x||_2^2 &= - \sum_{i=0}^k w_i^T\Big( \sum_{m=1}x_mx_m^T\Big)w_i = m \sum_{i=0}^k w_i^T\Sigma w_i \end{aligned} xx~22xTx~x~Tx~xx~22xx~22=xTx+x~Tx~2xTx~=xTi=0k(wiTx)wi=i=0k(wiTx)xTwi=i=0kwiTxxTwi=i=0k(wiTx)wiTj=0k(wjTx)wj=i=0kj=0k(wiTx)(wjTx)wiTwj=i=0k(wiTx)(wiTx)wiTwi=i=0kwiTxxTwiwiTwi=i=0kwiTxxTwi=i=0kwiTxxTwi+constant=i=0kwiT(m=1xmxmT)wi=mi=0kwiTΣwi
目标函数转化为
arg ⁡ max ⁡ w 1 , w 2 , ⋯   , w k ∑ i = 0 k w i T Σ w i s . t . w i T w i = 1 , i = 1 , 2 , ⋯   , k \begin{aligned} \arg&\max_{w_1,w_2,\cdots,w_k} \sum_{i=0}^k w_i^T\Sigma w_i \\ s.t.& \quad w_i^Tw_i=1,\quad i=1,2,\cdots,k \end{aligned} args.t.w1,w2,,wkmaxi=0kwiTΣwiwiTwi=1,i=1,2,,k
拉格朗日函数
L = ∑ i = 0 k w i T Σ w i + ∑ i = 1 k λ i ( 1 − w i T w i ) \begin{aligned} L &= \sum_{i=0}^k w_i^T\Sigma w_i+ \sum_{i=1}^k \lambda_i (1-w_i^Tw_i) \\ \end{aligned} L=i=0kwiTΣwi+i=1kλi(1wiTwi)
此时对每个基向量求导与最大方差理论等价

1.3 总结

PCA是一种线性降维方法,虽然经典,但有一定局限性。可以通过核映射对PCA进行扩展,得到核主成分分析(KPCA);或流行映射的降维方法,比如等距映射、局部线性嵌入、拉普拉斯特征映射等。对一些PCA效果不好的复杂数据集进行非线性降维操作。

2.SVD(奇异值分解)

SVD奇异值分解等价于PCA主成分分析。核心都是求解 X T X X^TX XTX的特征值及对应的特征向量。

  1. SVD原理。
    X X X是样本数据,将其分解为以下表达式
    X = U Σ V T X=U\Sigma V^T X=UΣVT
    维度表示如下:

其中,

  • U是 m × m m\times m m×m维矩阵,且 U T U = I , U T = U − 1 U^TU=I,U^T=U^{-1} UTU=I,UT=U1
  • Σ \Sigma Σ m × n m\times n m×n,除了主对角线上的元素以外全部为0
  • V是 n × n n \times n n×n维矩阵,且 V T V = I , V T = V − 1 V^TV=I,V^T=V^{-1} VTV=I,VT=V1
  • 最终X是 m × n m\times n m×n维。
  • 可以限制 Σ \Sigma Σ的维度。
  1. 求解
    X = U Σ V T X=U\Sigma V^T X=UΣVT
  • 求解 U U U
    X X T = U Σ V T V Σ T U T = U m × m Σ m × n Σ n × m T U m × m T \begin{aligned} XX^T &= U\Sigma V^TV\Sigma^T U^T=U_{m\times m}\Sigma_{m\times n}\Sigma^T_{n\times m}U^T_{m\times m} \\ \end{aligned} XXT=UΣVTVΣTUT=Um×mΣm×nΣn×mTUm×mT
    其中 Σ m × n Σ n × m T \Sigma_{m\times n}\Sigma^T_{n\times m} Σm×nΣn×mT m × m m\times m m×m,只有左上角 n × n n\times n n×n的对角线上有数据,其他元素都是0.
    相当于求解 X X T XX^T XXT的特征值和特征向量。
  • 求解 V V V
    X T X = V Σ T U T U Σ V T = V n × n Σ n × m T Σ m × n V n × n T \begin{aligned} X^TX &= V\Sigma^T U^TU\Sigma V^T=V_{n\times n}\Sigma^T_{n\times m}\Sigma_{m\times n}V^T_{n\times n} \\ \end{aligned} XTX=VΣTUTUΣVT=Vn×nΣn×mTΣm×nVn×nT
    其中 Σ n × m T Σ m × n \Sigma^T_{n\times m}\Sigma_{m\times n} Σn×mTΣm×n n × n n\times n n×n,只有对角线上有数据,其他元素都是0.
    相当于求解 X T X X^TX XTX的特征值和特征向量。
  • 求解 Σ \Sigma Σ
    X = U Σ V T X V n × n = U Σ V T V = U m × m Σ m × n X m × n v i n × 1 = σ i u i m × 1 σ i = X v i / u i \begin{aligned} X&= U\Sigma V^T \\ XV_{n\times n} &= U\Sigma V^TV=U_{m\times m}\Sigma_{m\times n}\\ X_{m \times n}v_{i_{n\times 1}}&= \sigma_iu_{i_{m\times 1}} \\ \sigma_i &= Xv_i/u_i \end{aligned} XXVn×nXm×nvin×1σi=UΣVT=UΣVTV=Um×mΣm×n=σiuim×1=Xvi/ui
    其实由求解 U , V U,V U,V的过程可以得到, σ i = λ i \sigma_i = \sqrt{\lambda_i} σi=λi
  1. SVD性质
  • 将奇异值矩阵 Σ \Sigma Σ中按照 σ i \sigma_i σi大小排列,奇异值减少特别的快。在很多情况下,前10% 甚至1%的奇异值就占了全部奇异值之和的99%以上。
  • 可以利用最大k个奇异值和对应的左右奇异向量来描述矩阵。
    A m × n = U m × m Σ m × n V n × n T ≈ U m × k Σ k × k V k × n T A_{m\times n} = U_{m\times m} \Sigma_{m \times n} V^T_{n \times n} \approx U_{m\times k}\Sigma_{k \times k}V^T_{k \times n} Am×n=Um×mΣm×nVn×nTUm×kΣk×kVk×nT
    k比n小很多。
  • SVD中压缩分为两部分
    • U代表对样本维数做压缩,这部分可以用于计算PCA(PCA 计算依赖于斜方差矩阵,很耗资源)
    • V代表对样本数目做压缩。 X d × n = U d × m T X m × n X_{d\times n} = U^T_{d\times m}X_{m\times n} Xd×n=Ud×mTXm×n
  • SVD的左奇异矩阵可以用来计算PCA。

3.LDA,线性判别分析

LDA(linear discriminant analysis),是一种有监督学习算法,常用来对数据进行降维。

  • PCA中,算法不考虑数据的标签,把原始数据映射到一些所有数据间方差较大的方向
  • LDA中,考虑到类别的不同,希望不同类别间所有区分,同类别尽量相同。即最大化类间距离,最小化类内距离。

例如下图,如果是PCA算法,应该将数据映射到y轴;但由于数据是有标签的,映射到x轴是较好的选择,不同类别间能够有所区分。

3.1 二分类情况

数据集D, y i ∈ { 0 , 1 } y_i \in \{0,1\} yi{0,1},两个类别的样本子集为 C 0 , C 1 C_0,C_1 C0,C1。令 X i , μ i , Σ i X_i,\mu_i,\Sigma_i Xi,μi,Σi分别表示第 i ∈ { 0 , 1 } i \in \{0,1\} i{0,1}类的集合,均值向量,协方差矩阵。

如果将两个类别数据投影到 w w w方向上:

  1. 我们希望最大化类间距离。
    类间距离定义为,两个类别投影后均值的距离
    D i s t = ∣ ∣ μ ~ 0 − μ ~ 1 ∣ ∣ 2 2 Dist = ||\tilde \mu_0 - \tilde \mu_1||_2^2 Dist=μ~0μ~122
    其中 μ ~ 1 = w T μ 1 , μ 1 = 1 N 1 ∑ x ∈ C 1 x \tilde \mu_1 = w^T\mu_1,\mu_1 = \frac{1}{N_1}\sum_{x \in C_1} x μ~1=wTμ1,μ1=N11xC1x。优化目标为
    max ⁡ w ∣ ∣ w T ( μ 0 − μ 1 ) ∣ ∣ 2 2 s . t . w T w = 1 \begin{aligned} \max_w&\quad ||w^T(\mu_0-\mu_1)||_2^2 \\ s.t. &\quad w^Tw =1 \end{aligned} wmaxs.t.wT(μ0μ1)22wTw=1
  2. 最小化类内距离。
    类内距离即每个类别的方差。最小化两个类别的方差之和。
    D 0 + D 1 D_0 + D_1 D0+D1
    其中
    D 1 = 1 N 1 − 1 ∑ x ∈ C 1 ( x ′ − μ 1 ′ ) 2 = 1 N 1 − 1 ∑ ( w T x − w T μ 1 ) 2 = w T ( 1 N 1 − 1 ∑ ( x − μ 1 ) ( x T − μ 1 T ) ) w = w T Σ 1 w \begin{aligned} D_1 & = \frac{1}{N_1-1}\sum_{x \in C_1}(x^\prime - \mu_1^\prime)^2\\ & = \frac{1}{N_1-1}\sum(w^Tx - w^T\mu_1)^2\\ &= w^T\Big(\frac{1}{N_1-1}\sum (x-\mu_1)(x^T-\mu_1^T)\Big)w \\ &= w^T\Sigma_1 w\\ \end{aligned} D1=N111xC1(xμ1)2=N111(wTxwTμ1)2=wT(N111(xμ1)(xTμ1T))w=wTΣ1w
    优化目标
    min ⁡ w T ( Σ 0 + Σ 1 ) w \min \quad w^T (\Sigma_0 + \Sigma_1)w minwT(Σ0+Σ1)w
  3. 最大化类间距离,最大化类内距离,得到
    max ⁡ J = ∣ ∣ w T ( μ 0 − μ 1 ) ∣ ∣ 2 w T ( Σ 0 + Σ 1 ) w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w \begin{aligned} \max \quad J &= \frac{||w^T(\mu_0 - \mu_1)||^2}{\quad w^T(\Sigma_0+\Sigma_1)w} \\ &= \frac{w^T(\mu_0 - \mu_1)(\mu_0 - \mu_1)^Tw}{\quad w^T(\Sigma_0+\Sigma_1)w} \end{aligned} maxJ=wT(Σ0+Σ1)wwT(μ0μ1)2=wT(Σ0+Σ1)wwT(μ0μ1)(μ0μ1)Tw
    定义
    S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S w = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T \begin{aligned} S_b &= (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T \\ S_w &= \Sigma_0+\Sigma_1 \\ &= \sum_{x \in X_0} (x-\mu_0)(x-\mu_0)^T + \sum_{x \in X_1} (x-\mu_1)(x-\mu_1)^T \\ \end{aligned} SbSw=(μ0μ1)(μ0μ1)T=Σ0+Σ1=xX0(xμ0)(xμ0)T+xX1(xμ1)(xμ1)T
    其中 S w S_w Sw为类内散度, S b S_b Sb为类间散度。 变换目标函数:
    J = w T S b w w T S w w J=\frac{w^T S_b w}{w^T S_w w} J=wTSwwwTSbw
  4. 求解
    其中如果 w w w是一个解,那么 α w \alpha w αw也是解。令 w T S w w = 1 w^T S_w w=1 wTSww=1.上式等价于
    min ⁡ w − w T S b w s . t . w T S w w = 1 \begin{aligned} \min_w &\quad -w^T S_b w\\ s.t. &\quad w^T S_w w=1 \end{aligned} wmins.t.wTSbwwTSww=1

    L = − w T S b w − λ ( 1 − w T S w w ) ∂ L ∂ w = − ( S b w + S b T w ) + λ ( S w w + S w T w ) = − 2 ( S b w − λ S w w ) = 0 \begin{aligned} L &= -w^T S_b w - \lambda(1-w^T S_w w )\\ \frac{\partial L}{\partial w} &= -( S_b w + S_b^T w) +\lambda(S_w w + S_w^T w)\\ &= -2(S_b w - \lambda S_w w) = 0 \\ \end{aligned} LwL=wTSbwλ(1wTSww)=(Sbw+SbTw)+λ(Sww+SwTw)=2(SbwλSww)=0
    得到
    S b w = λ S w w S_b w = \lambda S_w w Sbw=λSww
    由于
    S b w = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) 1 × n T w n × 1 = ( μ 0 − μ 1 ) ⋅ 某实数 S_b w = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T_{1\times n} w_{n \times 1} = (\mu_0 - \mu_1)\cdot \text{某实数} Sbw=(μ0μ1)(μ0μ1)1×nTwn×1=(μ0μ1)某实数
    因此代入 S b w = λ S w w S_b w = \lambda S_w w Sbw=λSww,得到
    ( μ 0 − μ 1 ) = S w w w = S w − 1 ( μ 0 − μ 1 ) \begin{aligned} (\mu_0 - \mu_1) &= S_w w \\ w &= S_w^{-1}(\mu_0 - \mu_1) \end{aligned} (μ0μ1)w=Sww=Sw1(μ0μ1)

在实践中,对 S w S_w Sw奇异值分解,得到 S w = U Σ V T S_w = U\Sigma V^T Sw=UΣVT,然后 S w − 1 = V Σ − 1 U T S_w^{-1} = V \Sigma^{-1}U^T Sw1=VΣ1UT

3.2 多分类问题

假设存在N分类,第i类样本数目为 m i m_i mi。 最终将特征降至d维。需要找到一个d维的超平面 W = { w 1 , w 2 , ⋯   , w d } W=\{w_1,w_2,\cdots,w_d\} W={w1,w2,,wd}

  • 类内散度矩阵
    S w = ∑ i = 1 N S w i S w i = ∑ x ∈ C i ( x − μ i ) ( x − μ i ) T \begin{aligned} S_w & = \sum_{i=1}^N S_{wi} \\ S_{wi} &= \sum_{x\in C_i} (x-\mu_i)(x-\mu_i)^T \end{aligned} SwSwi=i=1NSwi=xCi(xμi)(xμi)T
  • 定义全局散度矩阵
    S t = S b + S w = ∑ j = 1 m ( x j − μ ) ( x j − μ ) T \begin{aligned} S_t &= S_b + S_w \\ & = \sum_{j=1}^m (x_j - \mu)(x_j - \mu)^T \end{aligned} St=Sb+Sw=j=1m(xjμ)(xjμ)T
    其中 μ \mu μ是所有样本的均值向量
  • 得到 S b S_b Sb
    S b = S t − S w = ∑ j = 1 m ( x j − μ ) ( x j − μ ) T − ∑ i = 1 N ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T = ∑ i = 1 N ∑ x j ∈ X i [ ( x j − μ ) ( x j − μ ) T − ( x − μ i ) ( x − μ i ) T ] = ∑ i = 1 N ∑ x j ∈ X i [ x j x j T − x j μ T − μ x j T + μ μ T − ( x j x j T − x j μ i T − μ i x j T + μ i μ i T ) ] = ∑ i = 1 N m i 1 m i ∑ x j ∈ X i [ − x j μ T − μ x j T + μ μ T + x j μ i T + μ i x j T − μ i μ i T ) ] = ∑ i = 1 N m i [ − μ i μ T − μ μ i T + μ μ T + μ i μ i T ] = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T 1 \begin{aligned} S_b &= S_t - S_w \\ & = \sum_{j=1}^m (x_j - \mu)(x_j - \mu)^T - \sum_{i=1}^N \sum_{x\in X_i} (x-\mu_i)(x-\mu_i)^T\\ &= \sum_{i=1}^N \sum_{x_j\in X_i}[(x_j - \mu)(x_j - \mu)^T - (x-\mu_i)(x-\mu_i)^T]\\ &= \sum_{i=1}^N \sum_{x_j\in X_i}[x_jx_j^T - x_j\mu^T-\mu x_j^T +\mu\mu^T - (x_jx_j^T - x_j\mu_i^T-\mu_i x_j^T +\mu_i\mu_i^T)]\\ &= \sum_{i=1}^N m_i\frac{1}{m_i}\sum_{x_j\in X_i}[ - x_j\mu^T-\mu x_j^T +\mu\mu^T + x_j\mu_i^T+\mu_i x_j^T -\mu_i\mu_i^T)] \\ &=\sum_{i=1}^N m_i\Big[- \mu_i\mu^T - \mu \mu_i^T + \mu\mu^T + \mu_i\mu_i^T \Big] \\ &= \sum_{i=1}^N m_i(\mu_i-\mu)(\mu_i - \mu)^T \end{aligned}1 Sb=StSw=j=1m(xjμ)(xjμ)Ti=1NxXi(xμi)(xμi)T=i=1NxjXi[(xjμ)(xjμ)T(xμi)(xμi)T]=i=1NxjXi[xjxjTxjμTμxjT+μμT(xjxjTxjμiTμixjT+μiμiT)]=i=1Nmimi1xjXi[xjμTμxjT+μμT+xjμiT+μixjTμiμiT)]=i=1Nmi[μiμTμμiT+μμT+μiμiT]=i=1Nmi(μiμ)(μiμ)T1
    此时优化目标
    max ⁡ w t r ( W T S b W ) t r ( W T S w W ) s . t . W T W = I \begin{aligned} \max_w &\quad \frac{tr(W^T S_b W)}{tr(W^T S_w W)}\\ s.t.&\quad W^TW=I \end{aligned} wmaxs.t.tr(WTSwW)tr(WTSbW)WTW=I
    最终
    S b w = λ S w w S_bw = \lambda S_ww Sbw=λSww
    即求解 S w − 1 S b S_w^{-1}S_b Sw1Sb矩阵特征值的前d大对应的特征向量组成的矩阵。
3.3 总结
  • 计算数据集每个类别样本的均值向量 μ j \mu_j μj,及总体的均值 μ \mu μ
  • 计算类内散度矩阵 S w S_w Sw,全局散度矩阵 S t S_t St,得到类间散度矩阵 S b = S t − S w S_b = S_t-S_w Sb=StSw
  • 对矩阵 S w S b S_wS_b SwSb进行特征值分解,将特征值从大到小排列
  • 取特征值前d大的对应特征向量 w 1 , w 2 , ⋯   , w d w_1,w_2,\cdots,w_d w1,w2,,wd,通过以下映射将n维样本映射到d维 x ′ = [ w 1 T x w 2 T x ⋮ w d T x ] x^\prime = \begin{bmatrix}w_1^Tx \\ w_2^Tx\\ \vdots \\ w_d^Tx\end{bmatrix} x=w1Txw2TxwdTx

4.PCA和LDA区别

  • PCA选择投影后方差最大的方向。由于是无监督,假设方差越大,信息量越多,用主成分表示原始数据可以去除冗余的维度,达到降维。
  • LDA选择投影后类内方差小,类间方差大的方向。考虑到了类别标签信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值