机器学习:主成分分析(PCA)

1. 什么是主成分分析?(Principle Component Analysis,PCA)

设数据 X = ( x 1 , x 2 , . . x n ) X=(x_1,x_2,..x_n) X=(x1,x2,..xn)具有n个属性(还有很多其他命名,比如分量,指标),属性值分别是 x 1 , x 2 , . . x n x_1,x_2,..x_n x1,x2,..xn

那么主成分分析就是把原来具有相关关系的多个指标(属性)简化为少数几个新的综合指标的多元统计方法。

这里的主成分就是指的是原始指标(属性)形成的几个新指标。

主成分与原始变量之间的关系是:

(1)主成分保留了原始变量绝大多数信息。
(2)主成分的个数大大少于原始变量的数目
(3)各个主成分之间互不相关。
(4)每个主成分都是原始变量的线性组合。

容易知道,想要获得低维的向量,可以对原始的高维空间做一个线性变换,即:
Z = W T X \mathbf{Z}=\mathbf{W^TX} Z=WTX

其中 X = ( x 1 , x 2 , . . . x m ) ∈ R d × m X=(x_1,x_2,...x_m) \in \mathbb{R}^{d\times m} X=(x1,x2,...xm)Rd×m, W ∈ R d × d ′ \mathbf{W} \in \mathbb{R}^{d \times d^{\prime}} WRd×d, Z ∈ R d ′ × m \mathbf{Z} \in \mathbb{R}^{d^{\prime} \times m} ZRd×m

这个W也可以看成是低维空间的标准正交基,因为根据标准正交基的性质 W T = W − 1 W^T=W^{-1} WT=W1

于是我们有

X = W Z X = WZ X=WZ

也就是说原来的X在新的基底W下的坐标表示为Z。

2. 如何进行主成分分析

主成分分析的目标就是寻得合适的 W \mathbf{W} W,使得高维空间的样本映射到低维空间空间,并使其满足以下原则。

主成分分析的原则:

最大可分性:样本点在低维空间中的投影能过尽可能地分开。

根据这个原则,容易想到,我们只要令在低维空间中的坐标表示Z的方差越大越好。即:
max ⁡ W ∑ i ∣ ∣ z i − 0 ∣ ∣ 2 = max ⁡ W ∑ i t r ( z i z i T ) = max ⁡ W ∑ i t r ( W T x i x i T W ) = max ⁡ W t r ( W T ∑ i x i x i T W ) \begin{aligned} \max\limits_{W} \sum _i ||z_i-0||^2 &= \max\limits_{W} \sum _i tr(z_iz_i^T)=\max\limits_{W} \sum_{i} tr(\mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \mathbf{W} )\\ &=\max\limits_{W} tr(\mathbf{W}^{\mathrm{T}}\sum_{i} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \mathbf{W} )\\ \end{aligned} Wmaxi∣∣zi0∣2=Wmaxitr(ziziT)=Wmaxitr(WTxixiTW)=Wmaxtr(WTixixiTW)

于是我们的优化目标变成:
max ⁡ W tr ⁡ ( W T X X T W )  s.t.  W T W = I \begin{aligned} &\max _{\mathbf{W}} \operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{X X}^{\mathrm{T}} \mathbf{W}\right) \\ &\text { s.t. } \mathbf{W}^{\mathrm{T}} \mathbf{W}=\mathbf{I} \end{aligned} Wmaxtr(WTXXTW) s.t. WTW=I

因此使用拉格朗日算子法,我们有
L ( W , Λ ) = −  tr  ( W T X X T W ) +  tr  ( Λ T ( W T W − I ) ) L(\mathbf W,\Lambda)=-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\text { tr }\left(\Lambda^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right) L(W,Λ)= tr (WTXXTW)+ tr (ΛT(WTWI))

以下求解内容来自南瓜书,此书甚佳,可看原书推导(地址见参考资料)

对拉格朗日函数关于 W \mathbf{W} W求导可得 ∂ L ( W , Λ ) ∂ W = ∂ ∂ W [ −  tr  ( W T X X T W ) +  tr  ( Λ T ( W T W − I ) ) ] = − ∂ ∂ W  tr  ( W T X X T W ) + ∂ ∂ W  tr  ( Λ T ( W T W − I ) )   \begin{aligned} \cfrac{\partial L(\mathbf W,\Lambda)}{\partial \mathbf W}&=\cfrac{\partial}{\partial \mathbf W}\left[-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\text { tr }\left(\Lambda^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right)\right] \\ &=-\cfrac{\partial}{\partial \mathbf W}\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\cfrac{\partial}{\partial \mathbf W}\text { tr }\left(\Lambda^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right) \ \end{aligned} WL(W,Λ)=W[ tr (WTXXTW)+ tr (ΛT(WTWI))]=W tr (WTXXTW)+W tr (ΛT(WTWI)) 

由矩阵微分公式 ∂ ∂ X  tr  ( X T B X ) = B X + B T X , ∂ ∂ X  tr  ( B X T X ) = X B T + X B \cfrac{\partial}{\partial \mathbf{X}} \text { tr }(\mathbf{X}^{\mathrm{T}} \mathbf{B} \mathbf{X})=\mathbf{B X}+\mathbf{B}^{\mathrm{T}} \mathbf{X},\cfrac{\partial}{\partial \mathbf{X}} \text { tr }\left(\mathbf{B X}^{\mathrm{T}} \mathbf{X}\right)=\mathbf{X B}^{\mathrm{T}} +\mathbf{X B} X tr (XTBX)=BX+BTX,X tr (BXTX)=XBT+XB (对这个不熟悉的小伙伴可以参考数学资源分享:矩阵求导公式

可得 ∂ L ( W , Λ ) ∂ W = − 2 X X T W + W Λ + W Λ T = − 2 X X T W + W ( Λ + Λ T ) = − 2 X X T W + 2 W Λ \begin{aligned} \cfrac{\partial L(\mathbf W,\Lambda)}{\partial \mathbf W}&=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+\mathbf{W}\Lambda+\mathbf{W}\Lambda^{\mathrm{T}} \\ &=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+\mathbf{W}(\Lambda+\Lambda^{\mathrm{T}} ) \\ &=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+2\mathbf{W}\Lambda \end{aligned} WL(W,Λ)=2XXTW+WΛ+WΛT=2XXTW+W(Λ+ΛT)=2XXTW+2WΛ

∂ L ( W , Λ ) ∂ W = 0 \cfrac{\partial L(\mathbf W,\Lambda)}{\partial \mathbf W}=\mathbf 0 WL(W,Λ)=0可得
− 2 X X T W + 2 W Λ = 0   X X T W = W Λ   \begin{aligned} -2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+2\mathbf{W}\Lambda&=\mathbf 0\ \mathbf X\mathbf X^{\mathrm{T}} \mathbf W&=\mathbf{W}\Lambda\ \end{aligned} 2XXTW+2WΛ=0 XXTW=WΛ  W \mathbf W W Λ \Lambda Λ展开可得 X X T w i = λ i w i , i = 1 , 2 , . . . , d ′ \mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i=\lambda i\boldsymbol w_i,\quad i=1,2,...,d^{\prime} XXTwi=λiwi,i=1,2,...,d 显然,此式为矩阵特征值和特征向量的定义式,其中 λ i , w i \lambda_i,\boldsymbol w_i λi,wi分别表示矩阵 X X T \mathbf X\mathbf X^{\mathrm{T}} XXT的特征值和单位特征向量。由于以上是仅考虑约束 w i T w i = 1 \boldsymbol{w}i^{\mathrm{T}}\boldsymbol{w}i=1 wiTwi=1所求得的结果,而 w i \boldsymbol{w}i wi还需满足约束 w i T w j = 0 ( i ≠ j ) \boldsymbol{w}{i}^{\mathrm{T}}\boldsymbol{w}{j}=0(i\neq j) wiTwj=0(i=j)。观察 X X T \mathbf X\mathbf X^{\mathrm{T}} XXT的定义可知, X X T \mathbf X\mathbf X^{\mathrm{T}} XXT是一个实对称矩阵,实对称矩阵的不同特征值所对应的特征向量之间相互正交,同一特征值的不同特征向量可以通过施密特正交化使其变得正交,所以通过上式求得的 w i \boldsymbol w_i wi可以同时满足约束 w i T w i = 1 , w i T w j = 0 ( i ≠ j ) \boldsymbol{w}i^{\mathrm{T}}\boldsymbol{w}i=1,\boldsymbol{w}{i}^{\mathrm{T}}\boldsymbol{w}{j}=0(i\neq j) wiTwi=1,wiTwj=0(i=j)。(此处推理依照线性代数或矩阵分析中的定理)

根据拉格朗日乘子法的原理可知,此时求得的结果仅是最优解的必要条件,而且 X X T \mathbf X\mathbf X^{\mathrm{T}} XXT d d d个相互正交的单位特征向量,所以还需要从这 d d d个特征向量里找出 d ′ d^{\prime} d个能使得目标函数达到最优值的特征向量作为最优解。将 X X T w i = λ i w i \mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i=\lambda i\boldsymbol w_i XXTwi=λiwi代入目标函数可得 min ⁡ W −  tr  ( W T X X T W ) = max ⁡ W  tr  ( W T X X T W ) = max ⁡ W ∑ i = 1 d ′ w i T X X T w i = max ⁡ W ∑ i = 1 d ′ w i T ⋅ λ i w i = max ⁡ W ∑ i = 1 d ′ λ i w i T w i = max ⁡ W ∑ i = 1 d ′ λ i   \begin{aligned} \min\limits_{\mathbf W}-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W) &=\max\limits_{\mathbf W}\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W) \\ &=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\boldsymbol w_i^{\mathrm{T}}\mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i \\ &=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\boldsymbol w_i^{\mathrm{T}}\cdot\lambda i\boldsymbol w_i \\ &=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\lambda i\boldsymbol w_i^{\mathrm{T}}\boldsymbol w_i \\ &=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\lambda _i \ \end{aligned} Wmin tr (WTXXTW)=Wmax tr (WTXXTW)=Wmaxi=1dwiTXXTwi=Wmaxi=1dwiTλiwi=Wmaxi=1dλiwiTwi=Wmaxi=1dλi 

显然,此时只需要令 λ 1 , λ 2 , . . . , λ d ′ \lambda_1,\lambda_2,...,\lambda_{d^{\prime}} λ1,λ2,...,λd w 1 , w 2 , … , w d ′ \boldsymbol{w}{1}, \boldsymbol{w}{2}, \ldots, \boldsymbol{w}_{d^{\prime}} w1,w2,,wd分别为矩阵 X X T \mathbf X\mathbf X^{\mathrm{T}} XXT的前 d ′ d^{\prime} d个最大的特征值和单位特征向量就能使得目标函数达到最优值。

至此,我们找到了满足目标原则的W,使得样本从高维空间映射到低维空间,也就是完成了主成分分析。

参考资料:

[1] 《机器学习》周志华
[2]《南瓜书PumpkinBook》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值