机器学习——主成分分析PCA

机器学习——主成分分析PCA


主成分分析(principal component analysis,PCA)是一种常用的 无监督学习方法,把由 线性相关变量表示的观测数据 转换为少数几个由线性无关变量表示的数据, 线性无关的变量称为主成分。主成分的个数通常小于原始变量的个数,所以主成分分析属于 降维方法

基本思想

首先,对数据进行规范化,平均值为0,方差为1.
之后,对数据进行正交变换,通过正交变换变成由若干个线性无关的新变量表示的数据。
新变量是可能的正交变换中变量的方差的和最大的,即信息保存的最多的。

主成分

考虑有 m m m维随机变量 x = ( x 1 , x 2 , ⋯   , x m ) T \boldsymbol { x } = \left( x _ { 1 } , x _ { 2 } , \cdots , x _ { m } \right) ^ { \mathrm { T } } x=(x1,x2,,xm)T m m m维随机变量 y = ( y 1 , y 2 , ⋯   , y m ) T \boldsymbol { y } = \left( y _ { 1 } , y _ { 2 } , \cdots , y _ { m } \right) ^ { \mathrm { T } } y=(y1,y2,,ym)T的线性变换
y i = α i T x = α 1 i x 1 + α 2 i x 2 + ⋯ + α m i x m y _ { i } = \alpha _ { i } ^ { \mathrm { T } } \boldsymbol { x } = \alpha _ { 1 i } x _ { 1 } + \alpha _ { 2 i } x _ { 2 } + \cdots + \alpha _ { m i } x _ { m } yi=αiTx=α1ix1+α2ix2++αmixm
由随机变量的性质可知,
E ( y i ) = α i T μ , i = 1 , 2 , ⋯   , m var ⁡ ( y i ) = α i T Σ α i , i = 1 , 2 , ⋯   , m cov ⁡ ( y i , y j ) = α i T Σ α j , i = 1 , 2 , ⋯   , m ; j = 1 , 2 , ⋯   , m \begin{array} { l } E \left( y _ { i } \right) = \alpha _ { i } ^ { \mathrm { T } } \mu , \quad i = 1,2 , \cdots , m \\ \operatorname { var } \left( y _ { i } \right) = \alpha _ { i } ^ { \mathrm { T } } \Sigma \alpha _ { i } , \quad i = 1,2 , \cdots , m \\ \operatorname { cov } \left( y _ { i } , y _ { j } \right) = \alpha _ { i } ^ { \mathrm { T } } \Sigma \alpha _ { j } , \quad i = 1,2 , \cdots , m ; \quad j = 1,2 , \cdots , m \end{array} E(yi)=αiTμ,i=1,2,,mvar(yi)=αiTΣαi,i=1,2,,mcov(yi,yj)=αiTΣαj,i=1,2,,m;j=1,2,,m
主成分定义,给定一个线性变换,如果满足下列条件:
(1)系数向量 α i T \alpha _ { i } ^ { \mathrm { T } } αiT是单位向量,即 α i T α i = 1 , i = 1 , 2 , ⋯   , m \alpha _ { i } ^ { \mathrm { T } } \alpha _ { i } = 1 , i = 1,2 , \cdots , m αiTαi=1,i=1,2,,m
(2)变量 y i y_i yi y j y_j yj互不相关,即 cov ⁡ ( y i , y j ) = 0 ( i ≠ j ) \operatorname { cov } \left( y _ { i } , y _ { j } \right) = 0 ( i \neq j ) cov(yi,yj)=0(i=j)
(3) y i y_i yi是与 y 1 , y 2 , ⋯   , y i − 1 ( i = 1 , 2 , . . . , m ) y _ { 1 } , y _ { 2 } , \cdots , y _ { i - 1 } \quad (i = 1,2, ..., m) y1,y2,,yi1(i=1,2,...,m)都互不相关的 x \boldsymbol { x } x的所有线性变换中方差最大的,这时分别称 y 1 , y 2 , ⋯   , y m y _ { 1 } , y _ { 2 } , \cdots , y _ { m } y1,y2,,ym x \boldsymbol { x } x的第一主成分、第二主成分、…、第 m m m主成分。

主要性质

x \boldsymbol { x } x m m m维随机变量, Σ \Sigma Σ x \boldsymbol { x } x的协方差矩阵, Σ \Sigma Σ的特征值分别是 λ 1 ⩾ λ 2 ⩾ ⋯ ⩾ λ m ⩾ 0 \lambda _ { 1 } \geqslant \lambda _ { 2 } \geqslant \cdots \geqslant \lambda _ { m } \geqslant 0 λ1λ2λm0特征值对应的单位特征向量分别是 α 1 , α 2 , ⋯   , α m \alpha _ { 1 } , \alpha _ { 2 } , \cdots , \alpha _ { m } α1,α2,,αm,则 x \boldsymbol { x } x的第 k k k主成分是
y k = α k T x = α 1 k x 1 + α 2 k x 2 + ⋯ + α m k x m , k = 1 , 2 , ⋯   , m y _ { k } = \alpha _ { k } ^ { \mathrm { T } } \boldsymbol { x } = \alpha _ { 1 k } x _ { 1 } + \alpha _ { 2 k } x _ { 2 } + \cdots + \alpha _ { m k } x _ { m } , \quad k = 1,2 , \cdots , m yk=αkTx=α1kx1+α2kx2++αmkxm,k=1,2,,m
x \boldsymbol { x } x的第 k k k主成分的方差是
var ⁡ ( y k ) = α k T Σ α k = λ k , k = 1 , 2 , ⋯   , m \operatorname { var } \left( y _ { k } \right) = \alpha _ { k } ^ { \mathrm { T } } \Sigma \alpha _ { k } = \lambda _ { k } , \quad k = 1,2 , \cdots , m var(yk)=αkTΣαk=λk,k=1,2,,m
即协方差矩阵 Σ \Sigma Σ的第 k k k个特征值。

求第一主成分就是求解约束最优化问题:
max ⁡ α 1 α 1 T Σ α 1  s.t.  α 1 T α 1 = 1 \begin{array} { l l } \max _ { \alpha _ { 1 } } & \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } \\ \text { s.t. } & \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 1 } = 1 \end{array} maxα1 s.t. α1TΣα1α1Tα1=1
α 1 T x \alpha _ { 1 } ^ { \mathrm { T } } x α1Tx构成第一主成分,其方差等于协方差矩阵的最大特征值 var ⁡ ( α 1 T x ) = α 1 T Σ α 1 = λ 1 \operatorname { var } \left( \alpha _ { 1 } ^ { \mathrm { T } } \boldsymbol { x } \right) = \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } = \lambda _ { 1 } var(α1Tx)=α1TΣα1=λ1

求解过程
定义拉格朗日函数 α 1 T Σ α 1 − λ ( α 1 T α 1 − 1 ) \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } - \lambda \left( \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 1 } - 1 \right) α1TΣα1λ(α1Tα11),对其求导得到 Σ α 1 − λ α 1 = 0 \Sigma \alpha _ { 1 } - \lambda \alpha _ { 1 } = 0 Σα1λα1=0,于是目标函数 α 1 T Σ α 1 = α 1 T λ α 1 = λ α 1 T α 1 = λ \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } = \alpha _ { 1 } ^ { \mathrm { T } } \lambda \alpha _ { 1 } = \lambda \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 1 } = \lambda α1TΣα1=α1Tλα1=λα1Tα1=λ

求解第二主成分需要求解约束最优化问题
max ⁡ α 2 α 2 T Σ α 2  s.t.  α 1 T Σ α 2 = 0 , α 2 T Σ α 1 = 0 α 2 T α 2 = 1 \begin{aligned} \max _ { \alpha _ { 2 } } & \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } \\ \text { s.t. } & \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } = 0 , \quad \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } = 0 \\ & \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 2 } = 1 \end{aligned} α2max s.t. α2TΣα2α1TΣα2=0,α2TΣα1=0α2Tα2=1
α 2 T x \alpha _ { 2 } ^ { \mathrm { T } } x α2Tx构成第二主成分,其方差等于协方差矩阵的第二大特征值, var ⁡ ( α 2 T x ) = α 2 T Σ α 2 = λ 2 \operatorname { var } \left( \alpha _ { 2 } ^ { \mathrm { T } } \boldsymbol { x } \right) = \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } = \lambda _ { 2 } var(α2Tx)=α2TΣα2=λ2

求解过程
α 1 T Σ α 2 = α 2 T Σ α 1 = α 2 T λ 1 α 1 = λ 1 α 2 T α 1 = λ 1 α 1 T α 2 \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } = \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 1 } = \alpha _ { 2 } ^ { \mathrm { T } } \lambda _ { 1 } \alpha _ { 1 } = \lambda _ { 1 } \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 1 } = \lambda _ { 1 } \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 2 } α1TΣα2=α2TΣα1=α2Tλ1α1=λ1α2Tα1=λ1α1Tα2,以及 α 1 T α 2 = 0 , α 2 T α 1 = 0 \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 2 } = 0 , \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 1 } = 0 α1Tα2=0,α2Tα1=0
定义拉格朗日函数 α 2 T Σ α 2 − λ ( α 2 T α 2 − 1 ) − ϕ α 2 T α 1 \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } - \lambda \left( \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 2 } - 1 \right) - \phi \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 1 } α2TΣα2λ(α2Tα21)ϕα2Tα1,求导得 2 Σ α 2 − 2 λ α 2 − ϕ α 1 = 0 2 \Sigma \alpha _ { 2 } - 2 \lambda \alpha _ { 2 } - \phi \alpha _ { 1 } = 0 2Σα22λα2ϕα1=0
左乘 α 1 T \alpha_1^T α1T有, 2 α 1 T Σ α 2 − 2 λ α 1 T α 2 − ϕ α 1 T α 1 = 0 2 \alpha _ { 1 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } - 2 \lambda \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 2 } - \phi \alpha _ { 1 } ^ { \mathrm { T } } \alpha _ { 1 } = 0 2α1TΣα22λα1Tα2ϕα1Tα1=0,前两项为0,导出 ϕ = 0 \phi = 0 ϕ=0
因此 Σ α 2 − λ α 2 = 0 \Sigma \alpha _ { 2 } - \lambda \alpha _ { 2 } = 0 Σα2λα2=0,于是有 α 2 T Σ α 2 = α 2 T λ α 2 = λ α 2 T α 2 = λ \alpha _ { 2 } ^ { \mathrm { T } } \Sigma \alpha _ { 2 } = \alpha _ { 2 } ^ { \mathrm { T } } \lambda \alpha _ { 2 } = \lambda \alpha _ { 2 } ^ { \mathrm { T } } \alpha _ { 2 } = \lambda α2TΣα2=α2Tλα2=λα2Tα2=λ

一般地,第 k k k主成分的方差等于 Σ \Sigma Σ的第 k k k个特征值, var ⁡ ( α k T x ) = α k T Σ α k = λ k \operatorname { var } \left( \alpha _ { k } ^ { \mathrm { T } } \boldsymbol { x } \right) = \alpha _ { k } ^ { \mathrm { T } } \Sigma \alpha _ { k } = \lambda _ { k } var(αkTx)=αkTΣαk=λk
下面叙述总体主成分的性质:
(1) 总体主成分 y \boldsymbol { y } y的协方差矩阵是对角矩阵
cov ⁡ ( y ) = Λ = diag ⁡ ( λ 1 , λ 2 , ⋯   , λ m ) \operatorname { cov } ( \boldsymbol { y } ) = \Lambda = \operatorname { diag } \left( \lambda _ { 1 } , \lambda _ { 2 } , \cdots , \lambda _ { m } \right) cov(y)=Λ=diag(λ1,λ2,,λm)

推导:
Σ α k = λ k α k , k = 1 , 2 , ⋯   , m Σ A = A Λ Σ = A Λ A T y = A T x \Sigma \alpha _ { k } = \lambda _ { k } \alpha _ { k } , \quad k = 1,2 , \cdots , m \\ \Sigma A = A \Lambda \quad \Sigma = A \Lambda A ^ { \mathrm { T } } \quad \boldsymbol { y } = A ^ { \mathrm { T } } \boldsymbol { x } Σαk=λkαk,k=1,2,,mΣA=AΛΣ=AΛATy=ATx

(2) 总体主成分 y \boldsymbol { y } y的方差之和等于随机变量x的方差之和,即
∑ i = 1 m λ i = ∑ i = 1 m σ i i \sum _ { i = 1 } ^ { m } \lambda _ { i } = \sum _ { i = 1 } ^ { m } \sigma _ { i i } i=1mλi=i=1mσii
(3) 第 k k k个主成分 y k y_k yk与变量 x i x_i xi的相关系数 ρ ( y k , x i ) \rho \left( y _ { k } , x _ { i } \right) ρ(yk,xi)称为因子负荷量(factor loading),它表示第 k k k分主成分 y k y_k yk与变量 x i x_i xi的相关关系。计算公式如下:
ρ ( y k , x i ) = cov ⁡ ( y k , x i ) var ⁡ ( y k ) var ⁡ ( x i ) = cov ⁡ ( α k T x , e i T x ) λ k σ i i = λ k α i k σ i i , k , i = 1 , 2 , ⋯   , m \rho \left( y _ { k } , x _ { i } \right) = \frac { \operatorname { cov } \left( y _ { k } , x _ { i } \right) } { \sqrt { \operatorname { var } \left( y _ { k } \right) \operatorname { var } \left( x _ { i } \right) } } = \frac { \operatorname { cov } \left( \alpha _ { k } ^ { \mathrm { T } } \boldsymbol { x } , e _ { i } ^ { \mathrm { T } } \boldsymbol { x } \right) } { \sqrt { \lambda _ { k } } \sqrt { \sigma _ { i i } } } = \frac { \sqrt { \lambda _ { k } } \alpha _ { i k } } { \sqrt { \sigma _ { i i } } } , \quad k , i = 1,2 , \cdots , m ρ(yk,xi)=var(yk)var(xi) cov(yk,xi)=λk σii cov(αkTx,eiTx)=σii λk αik,k,i=1,2,,m
(4) 第 k k k个主成分 y k y_k yk m m m个变量的因子负荷量满足
∑ i = 1 m σ i i ρ 2 ( y k , x i ) = ∑ i = 1 m λ k α i k 2 = λ k α k T α k = λ k \sum _ { i = 1 } ^ { m } \sigma _ { i i } \rho ^ { 2 } \left( y _ { k } , x _ { i } \right) = \sum _ { i = 1 } ^ { m } \lambda _ { k } \alpha _ { i k } ^ { 2 } = \lambda _ { k } \alpha _ { k } ^ { \mathrm { T } } \alpha _ { k } = \lambda _ { k } i=1mσiiρ2(yk,xi)=i=1mλkαik2=λkαkTαk=λk

主成分个数

主成分分析的主要目的是降维,对任意正整数 q , 1 ⩽ q ⩽ m q , 1 \leqslant q \leqslant m q,1qm,考虑正交线性变换
y = B T x \boldsymbol { y } = B ^ { \mathrm { T } } \boldsymbol { x } y=BTx
其中 y \boldsymbol { y } y q q q维向量, B T B ^ { \mathrm { T } } BT q × m q \times m q×m矩阵,令 y \boldsymbol { y } y的协方差矩阵为
Σ y = B T Σ B \Sigma _ { \boldsymbol { y } } = B ^ { \mathrm { T } } \Sigma B Σy=BTΣB
Σ y \Sigma _ { \boldsymbol { y } } Σy的迹 tr ⁡ ( Σ y ) \operatorname { tr } \left( \Sigma _ { \boldsymbol { y } } \right) tr(Σy) B = A q B = A_q B=Aq时取得最大值,其中矩阵 A q A_q Aq由正交矩阵 A A A的前 q q q列组成。
k k k主成分 y k y_k yk的方差贡献率定义为 y k y_k yk的方差与所有方差之和的比,记作 η k \eta _ { k } ηk
η k = λ k ∑ i = 1 m λ i \eta _ { k } = \frac { \lambda _ { k } } { \sum _ { i = 1 } ^ { m } \lambda _ { i } } ηk=i=1mλiλk
k k k个主成分 y 1 , y 2 , ⋯   , y k y _ { 1 } , y _ { 2 } , \cdots , y _ { k } y1,y2,,yk的累计方差贡献率定义为 k k k个方差之和与所有方差之和的比
∑ i = 1 k η i = ∑ i = 1 k λ i ∑ i = 1 m λ i \sum _ { i = 1 } ^ { k } \eta _ { i } = \frac { \sum _ { i = 1 } ^ { k } \lambda _ { i } } { \sum _ { i = 1 } ^ { m } \lambda _ { i } } i=1kηi=i=1mλii=1kλi
累计方差贡献率放映了主成分保留信息的比例。
在实际问题中,不同变量可能有不同的量纲,常常对各个随机变量实施规范化,使其均值为0,方差为1。显然规范化随机变量的协方差矩阵就是相关矩阵 R R R

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值