PCA主成分分析笔记

前言

最近抽时间在选读《统计学习方法》,发现里面的有些内容写的比花书和西瓜书更详细,所以想要将其记录下来,以下的内容在原书中都能找到,该博客算作一篇备忘性质的博文。

正文

大致思想

PCA(principal component analysis)通俗来说就是一种数据降维的方法,将数据中的带有相关性的变量转换成更少的且线性无关的变量表示,以便于人们更好的分析数据信息。以二维空间的数据分布来做一个直观的解释:
如下图所示数据集中的样本由实数空间(正交坐标系中的点表示),空间的一个坐标轴表示一个变量,规范化处理后得到的数据分布在原点附近,从左图可以看出 x 1 , x 2 x_1,x_2 x1​,x2​之间还是有一定的相关性的,确定 x 1 x_1 x1​后 x 2 x_2 x2​的值并不是完全随机的。对这些数据进行主成分分析,相当于将坐标轴进行旋转,旋转后的新的坐标轴就相当于第一主成分和第二主成分,此时 y 1 y_1 y1​确定后 y 2 y_2 y2​的值完全随机。
PCA主成分分析笔记
此时新的坐标轴是所有可能坐标系中,坐标上的方差和最大的那一个(这也是进行PCA的目的),可以引申出:
如下图将坐标系进行旋转变换得到新的坐标轴 y 1 y_1 y1​,那么样本点 A , B , C A,B,C A,B,C在新坐标的上的投影为 A ′ , B ′ , C ′ A',B',C' A′,B′,C′(默认样本点已经进行过规范化处理),那么在新坐标轴上的方差为 O A ′ 2 + O B ′ 2 + O C ′ 2 OA'^2+OB'^2+OC'^2 OA′2+OB′2+OC′2,根据三角形勾股定理,由于点到原点的距离始终没有改变,所以寻找方差和最大的坐标轴可以转换成寻找与三个点距离和最小的坐标轴。
PCA主成分分析笔记

定义与主要性质

总体主成分分析

在这里主要涉及定义与性质的展示陈列,如果读者感兴趣具体的推导过程可以自行深入研究探索:
定义(总体主成分):假设 x x x为m维随机变量,其均值为 μ \mu μ,协方差矩阵为 Σ \Sigma Σ。考虑由 m m m维随机变量 x x x到 m m m维随机变量 y y y的线性变换
y i = α i x = Σ k = 1 m α k i x k , i = 1 , 2 , . . . , m y_i=\alpha_i\pmb x=\Sigma_{k=1}^m\alpha_{k_i}x_k, \quad i=1,2,...,m\\ yi​=αi​xxx=Σk=1m​αki​​xk​,i=1,2,...,m
其中 α i T = ( α 1 i , α 2 i , . . . , α m i ) \alpha_i^T=(\alpha_{1i},\alpha_{2i},...,\alpha_{mi}) αiT​=(α1i​,α2i​,...,αmi​)
如果该线性变换满足以下条件,则称之为总体主成分。

  • α i T α i = 1 , i = 1 , 2 , . . . , m \alpha_i^T\alpha_i=1,i=1,2,...,m αiT​αi​=1,i=1,2,...,m (注意:书中说可以直接由该条件推导出标准正交基,经过思考个人认为大前提已经默认变换前后的变量都是正交的)
  • c o v ( y i , y j ) = 0 ( i ≠ j ) cov(y_i,y_j)=0(i\ne j) cov(yi​,yj​)=0(i​=j)
  • 变量 y 1 y_1 y1​是 x \pmb x xxx的所有线性变换中方差最大的; y 2 y_2 y2​是与 y 1 y_1 y1​不相关的 x \pmb{x} xxx的所有线性变换中方差最大的;一般地, y i y_i yi​是与 y 1 , y 2 , . . . , y i − 1 , ( i = 1 , 2 , . . . , m ) y_1,y_2,...,y_{i-1},(i=1,2,...,m) y1​,y2​,...,yi−1​,(i=1,2,...,m)都不相关的 x \pmb x xxx的所有线性变换中方差最大的;这是分别称为 y 1 , y 2 , . . . , y m y_1,y_2,...,y_m y1​,y2​,...,ym​为 x \pmb x xxx的第一主成分、第二主成分……

求主成分方法:由上述定义的后两个条件,可以推导出如下的PCA求法:
假设 x \pmb x xxx是 m m m维的随机变量,其协方差矩阵是 Σ \Sigma Σ, Σ \Sigma Σ的特征值分别为 λ 1 ≥ λ 2 ≥ . . . ≥ λ m ≥ 0 \lambda_1\ge\lambda_2\ge...\ge \lambda_m\ge0 λ1​≥λ2​≥...≥λm​≥0,特征值对应的单位特征向量分别是 α 1 , α 2 , . . . α m \alpha_1,\alpha_2,...\alpha_m α1​,α2​,...αm​,则 x \pmb x xxx的第 i i i主成分可以写作:
y i = α i T x = Σ k = 1 m α k i x k , i = 1 , 2 , . . . , m y_i=\alpha_i^T\pmb x=\Sigma_{k=1}^m\alpha_{ki}x_k,\quad i=1,2,...,m yi​=αiT​xxx=Σk=1m​αki​xk​,i=1,2,...,m
并且, x \pmb x xxx的第 i i i主成分的方差是协方差矩阵 Σ \Sigma Σ的第 i i i个特征值,即
v a r ( y i ) = α i T σ α i = λ i var(y_i)=\alpha_i^T\sigma\alpha_i=\lambda_i var(yi​)=αiT​σαi​=λi​
性质一:主成分 y \pmb y y​y​​y的协方差矩阵是对角矩阵(其实很好理解,因为各变量需要线性无关/正交)
c o v ( y ) = Λ = d i a g ( λ 1 , λ 2 , . . . , λ m ) cov(\pmb y) = \Lambda = diag(\lambda_1,\lambda_2,...,\lambda_m) cov(y​y​​y)=Λ=diag(λ1​,λ2​,...,λm​)
性质二:主成分的方差之和等于随机变量 x \pmb x xxx的方差之和
Σ i = 1 m λ i = Σ i = 1 m σ i i \Sigma_{i=1}^m\lambda_i=\Sigma_{i=1}^m\sigma_{ii} Σi=1m​λi​=Σi=1m​σii​
其中 σ i i \sigma_{ii} σii​是 x i x_i xi​的方差,即协方差矩阵 Σ \Sigma Σ的对角线元素。
性质三:主成分 y k y_k yk​与变量 x i x_i xi​的相关系数 ρ ( y k , x i ) \rho(y_k,x_i) ρ(yk​,xi​)称为因子负荷量,他表示第 k k k个主成分 y k y_k yk​与变量 x i x_i xi​的相关系数,即 y k y_k yk​对 x i x_i xi​的贡献程度。
ρ ( y k , x i ) = λ k α i k σ i i \rho(y_k,x_i)=\frac{\sqrt{\lambda_k}\alpha_{ik}}{\sqrt{\sigma_{ii}}} ρ(yk​,xi​)=σii​ ​λk​ ​αik​​

样本主成分分析

样本主成分分析就是基于样本协方差矩阵的主成分分析。
给定样本矩阵
X = [ x 1 x 2 . . . x n ] = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋮ x m 1 x m 2 ⋯ x m n ] X=[\pmb{x}_1\quad\pmb{x}_2\quad...\quad\pmb{x}_n]= \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1n}\\ x_{21} & x_{22} & \cdots & x_{2n}\\ \vdots & \vdots & & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \end{bmatrix} X=[xxx1​xxx2​...xxxn​]=⎣⎢⎢⎢⎡​x11​x21​⋮xm1​​x12​x22​⋮xm2​​⋯⋯⋯​x1n​x2n​⋮xmn​​⎦⎥⎥⎥⎤​
其中 x j = ( x 1 j , x 2 j , . . . , x m j ) T \pmb x_j=(x_{1j},x_{2j},...,x_{mj})^T xxxj​=(x1j​,x2j​,...,xmj​)T是 x \pmb x xxx的第 j j j个独立观测样本, j = 1 , 2 , 3 , . . . , n j=1,2,3,...,n j=1,2,3,...,n。
X的样本协方差矩阵
S = [ s i j ] m × n , s i j = 1 n − 1 Σ k = 1 n ( x i k − x ‾ i ) ( x j k − x ‾ j ) i = 1 , 2 , . . . , m , j = 1 , 2 , . . . , m S=[s_{ij}]_{m\times n},\quad s_{ij}=\frac{1}{n-1}\Sigma_{k=1}^n(x_{ik}-\overline x_i)(x_{jk}-\overline x_j)\\ i=1,2,...,m,\quad j=1,2,...,m S=[sij​]m×n​,sij​=n−11​Σk=1n​(xik​−xi​)(xjk​−xj​)i=1,2,...,m,j=1,2,...,m
其中 x ‾ i = 1 n Σ k = 1 n x i k \overline x_i=\frac{1}{n}\Sigma_{k=1}^nx_{ik} xi​=n1​Σk=1n​xik​。
给定样本数据矩阵 X X X,考虑向量 x \pmb x xxx到 y \pmb y y​y​​y的线性变换
y = A T x \pmb y=A^T\pmb x y​y​​y=ATxxx
这里
A = [ a 1 a 2 . . . a m ] = [ a 11 a 12 ⋯ a 1 m a 21 a 22 ⋯ a 2 m ⋮ ⋮ ⋮ a m 1 a m 2 ⋯ a m m ] A=[a_1\quad a_2\quad...\quad a_m]= \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1m}\\ a_{21} & a_{22} & \cdots & a_{2m}\\ \vdots & \vdots & & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mm} \end{bmatrix} A=[a1​a2​...am​]=⎣⎢⎢⎢⎡​a11​a21​⋮am1​​a12​a22​⋮am2​​⋯⋯⋯​a1m​a2m​⋮amm​​⎦⎥⎥⎥⎤​
定义:如果该线性变换满足以下条件,则称之为样本主成分。
样本第一主成分 y 1 = a 1 T x y_1=a_1^T\pmb x y1​=a1T​xxx是在 a 1 T a 1 = 1 a_1^Ta_1=1 a1T​a1​=1条件下,使得 a 1 T x j ( j = 1 , 2 , . . . , n ) a_1^T\pmb x_j\quad(j=1,2,...,n) a1T​xxxj​(j=1,2,...,n)的样本方差 a 1 T S a 1 a_1^TSa_1 a1T​Sa1​最大的 x \pmb x xxx的线性变换;
样本第二主成分 y 2 = a 2 T x y_2=a_2^T\pmb x y2​=a2T​xxx是在 a 2 T a 2 = 1 a_2^Ta_2=1 a2T​a2​=1和 a 2 T x j a_2^T\pmb x_j a2T​xxxj​与 a 1 T x j ( j = 1 , 2 , . . . , n ) a_1^T\pmb x_j\quad(j=1,2,...,n) a1T​xxxj​(j=1,2,...,n)的样本协方差 a 2 T S a 2 a_2^TSa_2 a2T​Sa2​最大的 x \pmb x xxx的线性变换;
一般地,样本第 i i i主成分 y i = a i T x y_i=a_i^T\pmb x yi​=aiT​xxx是在 a i T a i = 1 a_i^Ta_i=1 aiT​ai​=1和 a i T x j a_i^T\pmb x_j aiT​xxxj​与 a k T x j ( k < i , j = 1 , 2 , . . . , n ) a_k^T\pmb x_j\quad (k<i,j=1,2,...,n) akT​xxxj​(k<i,j=1,2,...,n)的样本协方差 a k T S a i = 0 a_k^TSa_i=0 akT​Sai​=0条件下,使得 a i T ( j = 1 , 2 , . . . , n ) a_i^T(j=1,2,...,n) aiT​(j=1,2,...,n)的样本方差 a i S a i a_iSa_i ai​Sai​最大的 x \pmb x xxx的线性变换。
求解主成分分析的方法
方法一:相关矩阵的特征值分解法
针对 m × n m\times n m×n样本矩阵 X X X,求样本相关矩阵
R = 1 n − 1 X X T R=\frac{1}{n-1}XX^T R=n−11​XXT
再求样本相关矩阵的 k k k个特征值和对应的单位特征向量,构造正交矩阵
V = ( x 1 , v 2 , . . . , v n ) V=(x_1,v_2,...,v_n) V=(x1​,v2​,...,vn​)
V的每一列对应一个主成分,得到 k × n k\times n k×n样本主成分矩阵
Y = V T X Y=V^TX Y=VTX
方法二:矩阵 X X X的奇异值分解法。
针对 m × n m\times n m×n样本矩阵 X X X
X ′ = 1 n − 1 X T X'=\frac{1}{\sqrt{n-1}}X^T X′=n−1 ​1​XT
对矩阵 X ′ X' X′进行阶段奇异值分解,保留k个奇异值、奇异向量,得到
X ′ = U S V T X'=USV^T X′=USVT
V V V的每一列对应一个主成分,得到 k × n k\times n k×n样本主成分矩阵 Y Y Y
Y = V T X Y=V^TX Y=VTX

结束

本来想将推导过程也一并附上,但是碍于篇幅限制,暂时搁置,如有错误,欢迎大家指正!!!!

上一篇:Gauss消元法的原理及Java实现


下一篇:11