机器学习基础---降维方法---主成分分析(PCA)推导

主成分分析 PCA

算法概述

相关数学概念:
  • 从矩阵空间角度分析PCA方法

    • 对于原始样本来说,其基向量为d个形如(1,0,0,…,0),(0,1,0,…,0),(0,0,0,…,1)的单位正交向量,这些向量张成d维样本空间,样本点的坐标代表着d个基向量的线性组合:

    x i = ( x i 1 , x i 2 , . . . , x i , d ) T = x i 1 ( 1 , 0 , 0 , . . . , 0 ) T + . . . + x i d ( 0 , 0 , 0 , . . . , 1 ) T x_i=(x_{i1},x_{i2},...,x_{i,d})^T=x_{i1}(1,0,0,...,0)^T+...+x_{id}(0,0,0,...,1)^T xi=(xi1,xi2,...,xi,d)T=xi1(1,0,0,...,0)T+...+xid(0,0,0,...,1)T

    • PCA方法的目的是找到原始样本空间中的m个正交向量p1,p2,…pm,以这些向量张成一个原空间的一个子空间,降维的方法就是将原空间中的样本点映射到子空间中,具体映射方法如下:
      W d ∗ m = [ p 1 , p 2 , . . . , p m ] X = [ x 1 , x 2 , . . . x n ] = [ x 11 x 21 . . . x n 1 x 12 x 22 . . . x n 2 . . . . . . . . . . . . x 1 d x 2 d . . . x n d ] W_{d*m}=[p_1,p_2,...,p_m]\\ X=[x_1,x_2,...x_n]= \left[ \begin{matrix} x_{11} & x_{21} & ... & x_{n1}\\ x_{12} & x_{22} & ... & x_{n2}\\ ... & ... & ... & ...\\ x_{1d} & x_{2d} & ... & x_{nd} \end{matrix} \right] Wdm=[p1,p2,...,pm]X=[x1,x2,...xn]=x11x12...x1dx21x22...x2d............xn1xn2...xnd
      Y = [ y 1 , y 2 , . . . , y n ] = W T X = [ p 1 T , p 2 T , . . . , p m T ] T [ x 1 , x 2 , . . . , x n ]              = [ p 1 T x 1 p 1 T x 2 . . . p 1 T x n p 2 T x 1 p 2 T x 2 . . . p 2 T x n . . . . . . . . . . . . p m T x 1 p m T x 2 . . . p m T x n ] Y=[y_1,y_2,...,y_n]=W^TX=[p_1^T,p_2^T,...,p_m^T]^T[x_1,x_2,...,x_n]\\ \ \ \ \ \ \ \ \ \ \ \ \ = \left[ \begin{matrix} p_1^Tx_1 & p_1^Tx_2 & ... & p_1^Tx_n\\ p_2^Tx_1 & p_2^Tx_2 & ... & p_2^Tx_n\\ ... & ... & ... & ...\\ p_m^Tx_1 & p_m^Tx_2 & ... & p_m^Tx_n\\ \end{matrix} \right] Y=[y1,y2,...,yn]=WTX=[p1T,p2T,...,pmT]T[x1,x2,...,xn]            =p1Tx1p2Tx1...pmTx1p1Tx2p2Tx2...pmTx2............p1Txnp2Txn...pmTxn
      得到目标矩阵Y,是投影到子空间后在新基上的n个新点坐标集合,每个yi是一个m维向量,

    • 低维样本向量 y i y_i yi中的m个值只是新基下的坐标值,为了恢复原始的高维坐标,需要将坐标值与对应基向量相乘并求和

      因此有重构方法:
      X ’ = W W T X = [ p 1 , p 2 , . . . , p m ] d ∗ m [ y 1 , y 2 , . . . , y n ] m ∗ n X’=WW^TX=[p1,p2,...,p_m]_{d*m}[y_1,y_2,...,y_n]_{m*n} X=WWTX=[p1,p2,...,pm]dm[y1,y2,...,yn]mn

  • 协方差矩阵

    • 方差:衡量变量值的分散程度
      V a r ( a ) = 1 N ∑ i = 1 N ( a i − μ a ) 2 Var(a)=\frac1N \sum_{i=1}^N(a_i-\mu_a)^2 Var(a)=N1i=1N(aiμa)2

    • 协方差:协方差可以表示两个变量的相关性,其公式为:
      C o v ( a , b ) = E [ ( a − μ a ) ( b − μ b ) ] = 1 N − 1 ∑ i = 1 N ( a i − μ a ) ( b i − μ b ) Cov(a,b)=E[(a-\mu_a)(b-\mu_b)]=\frac1{N-1}\sum_{i=1}^N(a_i-\mu_a)(b_i-\mu_b) Cov(a,b)=E[(aμa)(bμb)]=N11i=1N(aiμa)(biμb)
      当预先对属性进行规范化(令均值为0,方差为1)后,有:
      C o v ( a , b ) = 1 n − 1 ∑ i = 1 N a i b i ≈ 1 n ∑ i = 1 N a i b i Cov(a,b)=\frac1{n-1}\sum_{i=1}^Na_ib_i\approx\frac1n\sum_{i=1}^Na_ib_i Cov(a,b)=n11i=1Naibin1i=1Naibi

    • 协方差矩阵:

      对含有n个d维数据样本的样本矩阵X
      X = [ x 11 x 21 . . . x n 1 x 12 x 22 . . . x n 2 . . . . . . . . . x 1 d x 2 d . . . x n 3 ] X=\left[ \begin{matrix} x_{11} & x_{21} & ...& x_{n1}\\ x_{12} & x_{22} & ...& x_{n2}\\ ... & ... & ...& \\ x_{1d} & x_{2d} & ...& x_{n3} \end{matrix} \right] X=x11x12...x1dx21x22...x2d............xn1xn2xn3
      其协方差矩阵为
      ∑ d ∗ d = X X T = [ C o v ( a t t r 1 , a t t r 1 ) C o v ( a t t r 1 , a t t r 2 ) . . . C o v ( a t t r 1 , a t t r d ) C o v ( a t t r 2 , a t t r 1 ) C o v ( a t t r 2 , a t t r 2 ) . . . C o v ( a t t r 2 , a t t r d ) . . . . . . . . . . . . C o v ( a t t r d , a t t r 1 ) C o v ( a t t r d , a t t r 2 ) . . . C o v ( a t t r d , a t t r d ) ] \sum_{d*d}=XX^T=\left[ \begin{matrix} Cov(attr_1,attr_1) & Cov(attr_1,attr_2) & ... & Cov(attr_1,attr_d)\\ Cov(attr_2,attr_1) & Cov(attr_2,attr_2) & ... & Cov(attr_2,attr_d)\\ ... & ... & ... & ...\\ Cov(attr_d,attr_1) & Cov(attr_d,attr_2) & ... & Cov(attr_d,attr_d) \end{matrix} \right] dd=XXT=Cov(attr1,attr1)Cov(attr2,attr1)...Cov(attrd,attr1)Cov(attr1,attr2)Cov(attr2,attr2)...Cov(attrd,attr2)............Cov(attr1,attrd)Cov(attr2,attrd)...Cov(attrd,attrd)

核心思路:
  • 最大化方差(最大可分性):

    • 直观来讲,PCA方法的目的是在原样本空间中找到m个方向,使原始样本点在这m个方向上的投影尽可能地分散,以此保证原始样本点在投影时不会出现多点投影到一点,进而导致较大信息损失的情况

2dim

如上图,投影到方差小的坐标轴方向会出现多对一的映射,原本可分的样本变得不可分,信息损失较大

同时,对于目标维度d>1的情况,为了尽可能表示更多的原始信息,希望各个基向量不存在线性相关性,即基向量相互正交
  • 目标维度上方差最大化的思路可以用数学语言表示为:
    a r g m a x W = t r ( W T X X T W ) s . t .   W T W = I \underset {W}{argmax} = tr(W^TXX^TW)\\ s.t.\ W^TW=I Wargmax=tr(WTXXTW)s.t. WTW=I

    就目标函数而言,基向量有正交限制,但如果不对基向量的模长进行限制,目标函数无上限,因此该目标函数需要对W进行单位正交限制

  • 最小化重构误差

    • 此为PCA的另一种理解方式,即要求在通过 Y = f ( X ) Y=f(X) Y=f(X)降维之后,再通过 X ′ = f − 1 ( Y ) X'=f^{-1}(Y) X=f1(Y)恢复到原来的高维度,最小化 X X X X ′ X' X的距离(差距)

    • 以线性变换为例,如:对 Y = W T X Y=W^TX Y=WTX,可以通过 X ′ = W W T X X'=WW^TX X=WWTX进行恢复(重构)

    • 最小化重构误差的数学表达:
      a r g m i n W ∣ ∣ X − W W T X ∣ ∣ F 2 s . t .   W T W = I \underset{W}{argmin}||X-WW^TX||_F^2 \\ s.t.\ W^TW=I WargminXWWTXF2s.t. WTW=I

  • 两种思路的一致性:

    • 对于最小化重构误差思路:
      ∣ ∣ X − W W T X ∣ ∣ F 2 = t r [ ( X − W W T X ) ( X − W W T X ) T ] = t r ( X X T − X X T W W T − W W T X X T + W W T X X T W W T ) = t r ( ∑ ) − t r ( W T X X T W ) − t r ( W T X X T W ) + t r ( W T X X T W ) = t r ( ∑ ) − t r ( W T X X T W ) \begin{aligned} ||X-WW^TX||_F^2 &= tr[(X-WW^TX)(X-WW^TX)^T]\\ &=tr(XX^T-XX^TWW^T-WW^TXX^T+WW^TXX^TWW^T)\\ &=tr(\sum)-tr(W^TXX^TW^)-tr(W^TXX^TW)+tr(W^TXX^TW)\\ &=tr(\sum)-tr(W^TXX^TW) \end{aligned} XWWTXF2=tr[(XWWTX)(XWWTX)T]=tr(XXTXXTWWTWWTXXT+WWTXXTWWT)=tr()tr(WTXXTW)tr(WTXXTW)+tr(WTXXTW)=tr()tr(WTXXTW)
      由于协方差阵确定,最小化重构误差即为最大化 t r ( W T X X T W ) tr(W^TXX^TW) tr(WTXXTW),即为最大化方差

算法推导

  • 矩阵形式目标函数最优化:

    以最大化方差为优化目标:
    目 标 : a r g   m a x W    t r ( W T ∑ W )     s . t .   W T W = I 对 有 约 束 最 优 化 问 题 , 由 拉 格 朗 日 乘 子 法 , 得 :   t r ( W T ∑ W ) − t r ( Λ ( W T W − I ) ) 求 导 并 令 值 为 0 , 得 :   2 ∑ W − 2 W Λ = 0 即 : ∑ W = W Λ 目标:\underset {W}{arg\ max} \ \ tr(W^T\sum W)\ \ \ s.t.\ W^TW=I\\ 对有约束最优化问题,由拉格朗日乘子法,得:\ tr(W^T\sum W)-tr(\Lambda(W^TW-I)) \\ 求导并令值为0,得: \ 2\sum W-2W\Lambda=0 \\ 即:\sum W=W\Lambda \\ Warg max  tr(WTW)   s.t. WTW=I tr(WTW)tr(Λ(WTWI))0: 2W2WΛ=0W=WΛ

    证明一:变换矩阵W中的列向量为协方差矩阵 ∑ \sum 的特征向量
    W d ∗ m = [ p 1 , p 2 , . . . , p m ] ∑ d ∗ d = X X T = [ C o v ( a 1 , a 1 ) C o v ( a 1 , a 2 ) . . . C o v ( a 1 , a d ) C o v ( a 2 , a 1 ) C o v ( a 2 , a 2 ) . . . C o v ( a 2 , a d ) . . . . . . . . . . . . C o v ( a d , a 1 ) C o v ( a d , a 2 ) . . . C o v ( a d , a d ) ] \underset{d*m}W=[p_1,p_2,...,p_m]\\ \\ \sum_{d*d}=XX^T=\left[ \begin{matrix} Cov(a_1,a_1) & Cov(a_1,a_2) & ... & Cov(a_1,a_d)\\ Cov(a_2,a_1) & Cov(a_2,a_2) & ... & Cov(a_2,a_d)\\ ... & ... & ... & ...\\ Cov(a_d,a_1) & Cov(a_d,a_2) & ... & Cov(a_d,a_d) \end{matrix} \right] dmW=[p1,p2,...,pm]dd=XXT=Cov(a1,a1)Cov(a2,a1)...Cov(ad,a1)Cov(a1,a2)Cov(a2,a2)...Cov(ad,a2)............Cov(a1,ad)Cov(a2,ad)...Cov(ad,ad)
    ∑ W d ∗ m = [ ∑ p 1 , ∑ p 2 , . . . , ∑ p m ] Λ m ∗ m = [ λ 1 0 . . . 0 0 λ 2 . . . 0 . . . . . . . . . . . . 0 0 . . . λ m ] \underset{d*m}{\sum W}= [\sum p_1,\sum p_2,...,\sum p_m] \underset {m*m}\Lambda=\left[ \begin{matrix} \lambda_1 & 0 & ... & 0 \\ 0 & \lambda_2 & ... & 0\\ ... & ... & ... & ...\\ 0 & 0 & ... & \lambda_m \end{matrix} \right ] dmW=[p1,p2,...,pm]mmΛ=λ10...00λ2...0............00...λm
    W Λ d ∗ m = [ λ 1 p 1 , λ 2 p 2 , . . . , λ m p m ] \underset {d*m}{W\Lambda}=[\lambda_1p_1, \lambda_2p_2,...,\lambda_mp_m] dmWΛ=[λ1p1,λ2p2,...,λmpm]
    由等式可得:

∑ W = W Λ [ ∑ p 1 , ∑ p 2 , . . . , ∑ p m ] = [ λ 1 p 1 , λ 2 p 2 , . . . , λ m p m ] \sum W = W\Lambda \\ [\sum p_1,\sum p_2,...,\sum p_m] = [\lambda_1p_1, \lambda_2p_2,...,\lambda_mp_m] W=WΛ[p1,p2,...,pm]=[λ1p1,λ2p2,...,λmpm]
即得到等式组:
{ ∑ p 1 = λ 1 p 1 ∑ p 2 = λ 1 p 2 . . . ∑ p m = λ 1 p m \left \{ \begin{aligned} \sum p_1&=\lambda_1p_1\\ \sum p_2&=\lambda_1p_2\\ ...\\ \sum p_m&=\lambda_1p_m \end{aligned} \right. p1p2...pm=λ1p1=λ1p2=λ1pm

同时存在单位正交约束:
{ p i p j = 0     i ≠ j p i p j = 1     i = j \left \{ \begin{aligned} p_ip_j=0 \ \ \ i\neq j\\ p_ip_j=1 \ \ \ i=j \end{aligned} \right. {pipj=0   i=jpipj=1   i=j

因此可证得, p i p_i pi为协方差矩阵特征向量, x i x_i xi 为特征值。即满足该条件时,该最优化问题取得极值

证明二:当选取的特征向量是对应特征值最大的m个时,方差最大

优化目标: t r ( W T ∑ W ) = t r ( W T W Λ ) = t r ( Λ ) tr(W^T\sum W)=tr(W^TW\Lambda)=tr(\Lambda) tr(WTW)=tr(WTWΛ)=tr(Λ)
因此最大化方差等价于最大化对角阵 Λ \Lambda Λ的迹,即最大化m个特征向量对应的特征值之和

算法流程

1)标准化样本矩阵X,使样本均值为0,方差为1

2)计算协方差矩阵,进行特征值分解,获取<特征值,特征向量>对

3)选取最大m个特征值对应的特征向量 p 1 , . . . p m p_1,...p_m p1,...pm,组成变换矩阵W

4)通过 Y = W T X Y=W^TX Y=WTX的变换,将样从d维降至m维

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值