机器学习笔记(15):PCA

前言

参考:

  • 《统计学习》—李航(蓝皮)

PCA(主成分分析)

简介

主成分分析(Pricipal Component Analysis, PCA)是一种常用的无监督学习方法,这一方法利用正交变换把由线性相关变量表示的观测数据转换少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。

主成分的个数通常小于原始变量的个数,所以主成分分析属于降维方法

总体主成分分析

基本想法

统计分析中,数据变量之间可能存在相关性,以致增加了分析的难度。于是,考虑少数不相关的变量来代替相关的变量,用来表示数据,并且要求能够保留数据中的大部分信息。

主成分分析中

  • 首先对给定数据进行规范化,使得数据每一变量的平均值为0(分布在坐标系中心),方差为1(保证以相同比例处理数据)。
  • 之后对数据进行正交变换,使原来由线性相关变量表示的数据,通过正交变换变成若干个线性无关的新变量表示的数据。新变量使可能的正交变换中变量的方差的和(信息保存)最大的,方差表示在新变量上信息的大小。将新变量依次称为第一主成分,第二主成分等。

通过主成分分析,可以利用主成分近似地表示原始数据,这可理解为发现数据的“基本结构”,也可以把数据由少数的主成分表示,这可理解为对数据降维。

在数据总体(Population)上进行的主成分分析称为总体主成分分析,在有限样本上进行的主成分分析称为样本主成分分析,前者是后者的基础

直观解释

下面给出主成分分析的直观解释:
数据集合中的样本由实数空间(正交坐标系)中的点表示,空间的一个坐标轴表示一个变量,规范化处理后得到的数据分布在原点附近。
对原坐标系中的数据进行主成分分析等价于进坐标系旋转变换,将数据投影到新坐标系的坐标轴上,新坐标系的第一坐标轴、第二坐标轴等分别表示第一主成分,第二主成分等,数据在每一轴上的坐标值的平方表示相应变量的方差;并且,这个坐标系是在所有可能的新的坐标系中,坐标轴上的方差的和最大的。

例如:
主成分分析的示例.jpg
数据由两个变量x_1x_2表示,存在于二维空间中,每个点表示一个样本,如图所示。对数据已做规范化处理,可以看出,这些数据分布在以原点为中心的左下至右上倾斜的椭圆之内。很明显在这个数据中x_1,x_2是线性相关的,具体地,当知道其中一个变量x_1的取值时,对另一个变量x_2的预测不是完全随机的,反之亦然

主成分分析对数据进行正交变换,具体地,对原坐标系进行旋转变换,并将数据在新坐标系表示,由变量y_1,y_2表示。主成分分析选择方差最大的方向(第一主成分)作为新坐标系的第一坐标轴,在这里意味着选择椭圆的长轴作为新坐标系的第一坐标轴;之后选择与第一坐标轴正交,且方差次之的方向(第二主成分)作为新坐标系的第二坐标轴,在这里意味着选择椭圆的短轴作为第二坐标轴。在新的坐标系里y_1y_2是线性无关的,当知道其中一个变量y_1的取值时,对另一个变量y_2的预测是完全随机的,反之亦然。如果主成分分析只取第一主成分,即新坐标系的y_1轴,那么等价于将数据投影在椭圆的长轴上,用这个主轴表示数据,将二维空间的数据压缩到一维空间中。

下面再看方差最大的解释:
假设有两个变量x_1,x_2,三个样本点A,B,C,样本分布在由x_1x_2轴组成的坐标系中。
主成分的几何解释.jpg
如上图,对坐标系进行旋转变换,得到新的坐标轴y_1,表示新的变量y_1。样本点A,B,Cy_1轴上投影,得到y_1轴的坐标值A',B',C'。坐标值的平方和OA'^2+OB'^2+OC'^2表示样本在变量y_1上的方差和。主成分分析旨在选取正交变换中方差最大的变量,作为第一主成分,也就是旋转变换中坐标值的平方和最大的轴。
注意到OA^2+OB^2+OC^2不变,由勾股定理,OA'^2+OB'^2+OC'^2最大等价于AA'^2+BB'^2+CC'^2最小。所以,等价地,主成分分析在旋转变换中选取离样本点的距离平方和最小的轴作为第一主成分,第二主成分的选择,在保证与已选坐标轴正交的条件下,类似地进行。

定义和导出

假设\mathbf{x}=(x_1,x_2,\cdots,x_m)^Tm维随机变量,其均值是向量是\mathbf{\mu}
::: align-center
\mathbf{\mu}=(\mu_1,\mu_2,\cdots,\mu_m)^T

:::
协方差矩阵是\Sigma
::: align-center
\Sigma=Cov(\mathbf{x,x})=E[(\mathbf{x-\mu})(\mathbf{x-\mu})^T]

:::
考虑由m维随机变量\mathbf{x}m维随机变量\mathbf{y}=(y_1,y_2,\cdots,y_m)^T线性变换
::: align-center
y_i=\alpha_i^T\mathbf{x}=\alpha_{1i}x_1+\cdots+\alpha_{mi}x_m(*)

:::
其中\alpha_i^T=(\alpha_{1i},\alpha_{2i},\cdots,\alpha_{mi}),i=1,2,\cdots,m
由随机变量的性质知
::: align-center
\begin{aligned} &E(y_i)=\alpha_i^T\mu,i=1,2,\cdots,m\\ &Var(y_i)=\alpha_i^T\Sigma\alpha_i,i=1,2,\cdots,m\\ &Cov(y_i,y_j)=\alpha_i^T\Sigma\alpha_j,i=1,2,\cdots,m;j=1,2,\cdots,m \end{aligned}

:::
第二第三条可以由
::: align-center
\begin{aligned} Cov(y_i,y_j)&=E[(y_i-E[y_i])(y_j-E[y_j])]\\ &=E[(\alpha_i^Tx_i-\alpha_i^T\mu)(\alpha_j^Tx_j-\alpha_j^T\mu)]\\ &=E[\alpha_i^T(x_i-\mu)\alpha_j^T(x_j-\mu)]\\ &=E[\alpha_i^T(x_i-\mu)(x_j-\mu)^T\alpha_j]\\ &=\alpha_i^TE[(x_i-\mu)(x_j-\mu)^T]\alpha_j\\ &=\alpha_i^T\Sigma\alpha_j \end{aligned}

:::
这里倒数第四步到倒数第三步可以转置的原因是因为是常数
下面给出总体主成分的定义
定义(总体主成分) 给定一个如式(*)所示的线性变换,如果它们满足下列条件:

  1. 系数向量\alpha_i^T是单位向量,即\alpha_i^T\alpha_i=1,i=1,2,\cdots,m
  2. 变量y_iy_j互不相关,即Cov(y_i,y_j)=0(i\ne j)
  3. 变量y_1\mathbf{x}的所有线性变换中方差最大的;y_2是与y_1不相关的\mathbf{x}的所有线性变换中方差最大的;一般地,y_i是与y_1,y_2,\cdots,y_{i-1}(i=1,2,\cdots,m)都不相关的\mathbf{x}的所有线性变换中方差最大的

这时分别称y_1,y_2,\cdots,y_m\mathbf{x}的第一主成分,第二主成分,\cdots,第m主成分

定义中的条件(1)表明线性变换是正交变换,\alpha_1,\alpha_2,\cdots,\alpha_m是其一组标准正交基
::: align-center
\alpha_i^T\alpha_j=\left\{\begin{matrix} 1,&i=j\\ 0,&i\ne j \end{matrix}\right .

:::
条件(2)(3)给出了一个求主成分的方法:第一步,在\mathbf{x}的所有线性变换
::: align-center
\alpha_1^T\mathbf{x}=\sum_{i=1}^m\alpha_{i1}x_i

:::
中,在\alpha_1^T\alpha_1=1条件下,求方差最大的,得到\mathbf{x}的第一主成分;第二步,在与\alpha_1^T\mathbf{x}不相关的\mathbf{x}的所有线性变换
::: align-center
\alpha_2^T\mathbf{x}=\sum_{i=1}^m\alpha_{i2}x_i

:::
中,在\alpha_2^T\alpha_2=1的条件下,求方差最大的,得到\mathbf{x}的第二主成分
如此继续下去直到得到\mathbf{x}的第m主成分

主要性质

首先叙述一个关于总体主成分的定理。这一定理阐述了总体主成分与协方差矩阵的特征值和特征向量的关系,同时给出了一个求主成分的方法

定理\mathbf{x}m维随机变量,\Sigma\mathbf{x}的协方差矩阵,\Sigma的特征值分别是\lambda_1\ge\lambda_2\ge\cdots\ge\lambda_m\ge 0,特征值对应的单位特征向量分别是\alpha_1,\alpha_2,\cdots,\alpha_m,则\mathbf{x}的第k主成分是
::: align-center
y_k=\alpha_k^T\mathbf{x}=\alpha_{1k}x_1+\alpha_{2k}x_2+\cdots+\alpha_{mk}x_m,k=1,2,\cdots,m

:::
\mathbf{x}的第k主成分的方差是
::: align-center
Var(y_k)=\alpha_k^T\Sigma \alpha_k=\lambda_k,k=1,2,\cdots,m

:::
即协方差矩阵\Sigma的第k个特征值

证:采用拉格朗日乘数法
首先求\mathbf{x}的第一主成分y_1=\alpha_1^T\mathbf{x},即求系数向量\alpha_1。由定义知,第一主成分是在\alpha_1^T\alpha_1=1的条件下,\mathbf{x}的所有线性变换中使方差
::: align-center
Var(\alpha_1^T\mathbf{x})=\alpha_1^T\Sigma\alpha_1

:::
达到最大的

求解约束优化问题
::: align-center
\begin{aligned} &\max_{\alpha_1}\alpha_1^T\Sigma\alpha_1\\ &s.t.\space\alpha_1^T\alpha_1=1 \end{aligned}

:::
定义拉格朗日函数
::: align-center
\alpha_1^T\Sigma \alpha_1-\lambda(\alpha_1^T\alpha_1-1)

:::
\alpha_1求导并令其为0(见这篇文章)得\Sigma^T\alpha_1+\Sigma\alpha_1-2\lambda\alpha_1=0,因协方差矩阵对对称矩阵,故得
::: align-center
\Sigma\alpha_1-\lambda\alpha_1=0

:::
\Sigma\alpha_1=\lambda\alpha_1,因此,\lambda\Sigma的特征值,\alpha_1是对应的单位特征向量。
于是,目标函数变为
::: align-center
\alpha_1^T\Sigma\alpha_1=\lambda\alpha_1^T\alpha=\lambda

:::
假设\alpha_1\Sigma的最大特征值\lambda_1对应的特征向量,显然\alpha_1,\lambda_1是最优化问题的解。

接着求\mathbf{x}的第二主成分,在它是在\alpha_2^T\alpha_2=1,且\alpha_2^T\mathbf{x}\alpha_1^T\mathbf{x}不相关的条件下,\mathbf{x}所有线性变换下使得方差最大的

求解约束优化问题
::: align-center
\begin{aligned} &\max_{\alpha_2}\alpha_2^T\Sigma\alpha_2\\ &s.t.\space\alpha_2^T\alpha_2=1\\ &\alpha_1^T\Sigma\alpha_2=0\space \alpha_2^T\Sigma\alpha_1=0 \end{aligned}

:::
注意到
::: align-center
\alpha_1^T\Sigma\alpha_2=\alpha_2^T\Sigma\alpha_1=\lambda_1\alpha_2^T\alpha_1=\lambda_1\alpha_1^T\alpha_2

:::
以及
::: align-center
\alpha_1^T\alpha_2=0\space \alpha_2^T\alpha_1=0

:::
定义拉格朗日函数
::: align-center
\alpha_2^T\Sigma\alpha_2-\lambda(\alpha_2^T\alpha_2-1)-\phi\alpha_2^T\alpha_1

:::
其中\lambda,\phi是拉格朗日乘子。对\alpha_2求导,并令其为0,得
::: align-center
2\Sigma\alpha_2-2\lambda\alpha_2-\phi\alpha_1=0

:::
将方程左乘\alpha_1^T,有
::: align-center
2\alpha_1^T\Sigma\alpha_2-2\lambda\alpha_1^T\alpha_2-\phi\alpha_1^T\alpha_1=0

:::
此式前两项为0,又\alpha_1^T\alpha_1=1,得\phi=0,因此式子变为
::: align-center
\Sigma\alpha_2-\lambda\alpha_2=0

:::
又可得第二主成分
类似地可得第m主成分,定理证毕

下面叙述总体主成分的性质
(1)总体主成分的协方差矩阵是对角矩阵
::: align-center
Cov(\mathbf{y})=\Lambda=diag(\lambda_1,\lambda_2,\cdots,\lambda_m)

:::
(2)总体主成分\mathbf{y}的方差之和等于随机变量\mathbf{x}的方差之和,即
::: align-center
\sum_{i=1}^m\lambda_i=\sum_{i=1}^m\sigma_{ii}

:::
笔者:可知总体主成分的各个成分的方差就是协方差矩阵的特征值,又因为随机变量的方差就是其协方差矩阵的对角元素,由特征值和矩阵迹的关系可得结论
(3)第k个主成分y_k与变量x_i的相关系数\rho(y_k,x_i)称为因子负荷量(Factor Loading)
::: align-center
\rho(y_k.x_i)=\frac{\sqrt{\lambda_k}\alpha_{ik}}{\sqrt{\sigma_{ii}}}

:::

因为
::: align-center
\rho(y_k.x_i)=\frac{Cov(y_k,x_i)}{\sqrt{Var(y_k)Var(x_i)}}=\frac{Cov(\alpha_k^T\mathbf{x},e_i^T\mathbf{x})}{\sqrt{\lambda_k}\sqrt{\sigma_{ii}}}

:::
其中e_i为基本单位向量,其第i个分量为1其余为0
再由协方差的性质
::: align-center
Cov(\alpha_k^T\mathbf{x},e_i^T\mathbf{x})=\alpha_k^T\Sigma e_i=e_i^T\Sigma\alpha_k=\lambda_k\alpha_{ik}

:::
得结果

即第k个主成分与第i个变量的关系,取决于第i个变量的方差\sigma_{ii},第k个主成分的方差\lambda_k和第i个主成分的第k个量\alpha_{ik}
(4)第k个主成分y_km个变量的因子负荷量满足
::: align-center
\sum_{i=1}^m\sigma_{ii}\rho^2(y_k,x_i)=\lambda_k

:::

由(3)式有
::: align-center
\sum_{i=1}^m\sigma_{ii}\rho^2(y_k,x_i)=\sum_{i=1}^m\lambda_k\alpha_{ik}^2=\lambda_k\alpha_k^T\alpha_k=\lambda_k

:::
(5)m个主成分与第i个变量x_i的因子负荷量满足
::: align-center
\sum_{i=1}^m\rho^2(y_k,x_i)=1

:::

由于y_1,y_2,\cdots,y_m互不相关,故
::: align-center
\rho^2(x_i,(y_1,y_2,\cdots,y_m))=\sum_{i=1}^m \rho^2(y_k,x_i)

:::
又因x_i可以表示为y_1,y_2,\cdots,y_m的线性组合,所以x_iy_1,y_2,\cdots,y_m的相关系数的平方为1,即
::: align-center
\rho^2(x_i,(y_1,y_2,\cdots,y_m))=1

:::
故得结论

样本主成分分析

样本主成分的定义和性质

假设对m维随机变量\mathbf{x}=(x_1,x_2,\cdots,x_m)^T进行n次独立观测,\mathbf{x_1,x_2,\cdots,x_n}表示观测样本,其中\mathbf{x}_j=(x_{1j},x_{2j},\cdots,x_{mj})^T表示第j个观测样本的第i个变量,j=1,2,\cdots,n。观测数据用样本矩阵\mathbf{X}表示,记作
::: align-center
X=\begin{bmatrix}\mathbf{x}_1&\mathbf{x}_2&\cdots&\mathbf{x}_n\end{bmatrix}= \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}

:::

给定样本矩阵\mathbf{X},可以估计样本均值,以及样本协方差。
样本均值向量\bar{x}
::: align-center
\bar{x}=\frac{1}{n}\sum_{j=1}^n \mathbf{x}_j

:::
样本协方差矩阵S
::: align-center
\begin{aligned} &S=[s_{ij}]_{m\times n}\\ &s_{ij}=\frac{1}{n-1}\sum_{k=1}^n(x_{ik}-\bar{x}_i)(x_{jk}-\bar{x}_j),i,j=1,2,\cdots,m \end{aligned}

:::
其中\bar{x}_i=\frac{1}{n}\sum_{k=1}^nx_{ik}为第i个变量的样本均值,\bar{x}_j=\frac{1}{n}\sum_{k=1}^nx_{jk}为第j个变量的样本均值

样本的相关矩阵R
::: align-center
R=[r_{ij}]_{m\times m},r_{ij}=\frac{s_{ij}}{\sqrt{s_{ii}s_{jj}}},i,j=1,2,\cdots,m

:::

定义m维向量到n维向量的线性变换
::: align-center
\mathbf{y}=A^T\mathbf{x}

:::
其中
::: align-center
A=\begin{bmatrix}a_1&a_2&\cdots&a_m\end{bmatrix}=\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}

:::
考虑上式的任意一个线性变换
::: align-center
\mathbf{y}_i=a_i^T\mathbf{x}=a_{1i}\mathbf{x}_1+a_{2i}\mathbf{x}_2+\cdots+a_{mi}\mathbf{x}_m,i=1,2,\cdots,m

:::
其中y_im维向量\mathbf{y}的第i个变量,相应于容量为n的样本\mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_ny_i的样本均值\bar{y}_i
::: align-center
\bar{y}_i=\frac{1}{n}\sum_{j=1}^na_i^T\mathbf{x}_j=a_i^T\bar{\mathbf{x}}

:::
其中\bar{\mathbf{x}}是随机向量\mathbf{x}的样本均值
::: align-center
\bar{\mathbf{x}}=\frac{1}{n}\sum_{j=1}^nx_j

:::
y_i的样本方差Var(y_i)
::: align-center
\begin{aligned} &Var(y_i)=\frac{1}{n-1}\sum_{j=1}^n(a_i^T\mathbf{x}_j-a_i^T\bar{\mathbf{x}})^2\\ &=a_i^T[\frac{1}{n-1}\sum_{j=1}^n(\mathbf{x_j-\bar{\mathbf{x}}})(\mathbf{x_j-\bar{\mathbf{x}}})^T]a_i=a_i^TSa_i \end{aligned}

:::
对任意两个线性变换y_i=\alpha_i^T\mathbf{x},y_k=\alpha_i^T\mathbf{x},相应于容量为n的样本\mathbf{x_1,x_2,\cdots,x_n}y_i,y_k样本的协方差为
::: align-center
Cov(y_i,y_k)=a_i^TSa_k

:::
现在给出样本主成分的定义
定义(样本主成分) 给定样本矩阵\mathbf{X},样本第一主成分y_1=a_1^T\mathbf{x}是在a_1^Ta_1=1条件下,使得a_1^T\mathbf{x}_j(j=1,2,\cdots,n)的样本方差a_1^TSa_1最大的\mathbf{x}的线性变换;样本第二主成分y_2=a_2^T\mathbf{x}是在a_2^Ta_2=1的条件下,使得a_2^T\mathbf{x}_j(j=1,2,\cdots,n)的样本方差a_2^TSa_2最大的\mathbf{x}的线性变换;一般地,样本第i主成分y_i=a_i^T\mathbf{x}是在a_i^Ta_i=1a_i^T\mathbf{x}_ja_k^T\mathbf{x}_j(k的样本协方差a_k^TSa_i=0的条件下,使得a_i^T\mathbf{x}_j(j=1,2,\cdots,n)的样本方差a_i^TSa_i最大的\mathbf{x}的线性变换

样本主成分与总体主成分有同样的性质。这从样本主成分的定义容易看出。只要以样本协方差矩阵S代替总体协方差矩阵\Sigma即可。样本主成分的性质不再重述

在使用样本主成分时,一般假设样本数据是规范化的,即对样本矩阵作如下变换:
::: align-center
x_{ij}^*=\frac{x_{ij}-\bar{x}_i}{\sqrt{s_{ii}}},i=1,2,\cdots,m\space j=1,2,\cdots,n

:::
其中
::: align-center
\begin{aligned} &\bar{x}_i=\frac{1}{n}\sum_{j=1}^nx_{ij},i=1,2,\cdots,m\\ &s_{ii}=\frac{1}{n-1}\sum_{j=1}^n(x_{ij}-\bar{x}_i)^2,i=1,2,\cdots,m \end{aligned}

:::
为了方便,以下将规范化变量x_{ij}^*仍记作x_{ij},规范化的样本矩阵仍然记作X。这时,样本协方差矩阵S就是样本相关矩阵R
::: align-center
R=\frac{1}{n-1}XX^T

:::

样本协方差矩阵S是总体协方差矩阵\Sigma的无偏估计,样本相关矩阵R是总体相关矩阵的无偏估计,S的特征值和特征向量是\Sigma的特征值和特征向量的极大似然估计

相关矩阵的特征值分解算法

传统的主成分分析通过数据的协方差矩阵的特征值分解进行,现在常用的方法是通过矩阵的奇异值分解进行。首先叙述数据的协方差矩阵或相关矩阵的特征值分解方法。

给定样本矩阵X,利用数据的样本协方差矩阵或者样本相关矩阵的特征值分解进行主成分分析,具体步骤如下。
(1)对观测数据按上一节提到的方法进行规范化处理,得到规范化数据矩阵,仍以X表示。
(2)依据规范化数据矩阵,根据上一节的方法,计算样本相关矩阵R
(3)求样本相关矩阵Rk个特征值和对应的k个单位特征向量。
求解R的特征方程
::: align-center
|R-\lambda I|=0

:::
Rm个特征值
::: align-center
\lambda_1\ge\lambda_2\ge\cdots\ge\lambda_m

:::
求方差贡献率\sum_{i=1}^k\eta_i达到预定值的主成分个数k
其中
::: align-center
\eta_i=\frac{\lambda_i}{\sum_{i=1}^m\lambda_i}

:::
求前k个特征值对应的单位特征向量
::: align-center
a_i=(a_{1i},a_{2i},\cdots,a_{mi})^T,i=1,2,\cdots,k

:::
(4)求k个样本主成分
k个单位特征向量为系数进行线性变换,求出k个样本主成分
::: align-center
y_i=a_i^T\mathbf{x},i=1,2,\cdots,k

:::
(5)计算k个主成分y_j与原变量x_i的相关系数\rho(x_i,y_j),以及k个主成分对原变量x_i的贡献率v_i
其中贡献率计算公式为
::: align-center
v_i=\rho^2(x_i,(y_1,y_2,\cdots,y_k))=\sum_{j=1}^k\rho^2(x_i,y_j)=\sum_{j=1}^k\frac{\lambda_j\alpha_{ij}^2}{\sigma_{ii}}

:::
(6)计算n和样本的k个主成分值
将规范化样本数据代入(4)k个主成分式,得到n个样本的主成分值。第j个样本\mathbf{x}_j=(x_{1j},x_{2j},\cdots,x_{mj})^T的第i主成分值是
::: align-center
\begin{aligned} &y_{ij}=(a_{1i},a_{2i},\cdots,a_{mi})(x_{1j},x_{2j},\cdots,x_{mj})^T=\sum_{l=1}^ma_{li}x_{lj}\\ &i=1,2,\cdots,m\space j=1,2,\cdots,n \end{aligned}

:::
主成分分析得到的结果可以用于其他机器学习方法的输入。比如,将样本点投影到以主成分为坐标轴的空间中,然后应用聚类算法,就可以对样本点进行聚类。

数据矩阵的奇异值分解算法

给定样本矩阵X,利用数据矩阵奇异值分解进行主成分分析。具体过程如下

对于m\times n实矩阵A,假设其秩为r,0,则可以将矩阵A进行截断奇异值分解
::: align-center
A\approx U_k\Sigma_kV_k^T

:::
式中U_km\times k矩阵,V_kn\times k矩阵,\Sigma_kk阶对角矩阵;U_k,V_k分别由取A的完全奇异值分解分解的矩阵\Sigma的前k个对角线元素得到

定义一个新的n\times m矩阵X'
::: align-center
X=\frac{1}{\sqrt{n-1}}X^T

:::
X'的每一列均值为零,不难得知
::: align-center
X'^TX'=\frac{1}{n-1}XX^T

:::
X'^TX'等于X的协方差矩阵S_X

主成分分析归结于求协方差矩阵S_X的特征值和对应的单位特征向量,所以问题转化为求矩阵X'^TX'的特征值和对应的单位特征向量

假设X'的紧截断奇异值分解为X'=U\Sigma V^T,那么V的列向量就是S_X=X'^TX'的单位特征向量(见上一节奇异值分解SVD)。因此,V的列向量构成X的主成分的正交直角坐标系。于是,求X主成分可以通过求X'的奇异值分解来实现。具体算法如下。
算法(主成分分析算法)
输入:m\times n样本矩阵X,其每一行元素均值为零
输出:k\times n样本主成分矩阵Y
参数:主成分个数k
(1)构造新的n\times m矩阵
::: align-center
X'=\frac{1}{\sqrt{n-1}}X^T

:::
X'每一列的均值为零
(2)对矩阵X'进行截断奇异值分解,得到
::: align-center
X'=U\Sigma V^T

:::
k个奇异值、奇异向量。矩阵V^TX的乘积构成样本主成分矩阵
(3)求k\times n样本主成分矩阵
::: align-center
Y=V^TX

:::

游客

全部评论 (0)

暂无评论,快来抢沙发吧~