目录
老饼讲解:一步一步上手学习

【原理】PCA主成分-求解原理

作者 : 老饼 发表日期 : 2026-01-07 09:59:27 更新日期 : 2026-05-17 14:50:41
老饼讲解-简单易懂,干货满满,爽过嗦螺!


本文讲解主成份分析PCA中主成份系数矩阵是怎么求解出来的,并用代码实现及验证与sklearn包的结果是否一致。

一、PCA主成份-数学表述

PCA中的主成份系数矩阵A是怎么求解出来的?本节我们先梳理PCA问题的数学表达。

1.1. PCA问题-数学表达

PCA就是求一个旋转变换,使变换之后每维之间不相关,即要求一个标准正交矩阵A,使得XA列列之间的协方差为0,也即XA的协方差矩阵是对角矩阵。总的来说,PCA的数学问题表达如下:

求一标准正交矩阵A,使它满足  

这里我们忽略了数据的中心化,下面的推导也忽略数据的中心化,事实上,下面我们就会看到,中不中心化并不影响PCA的求解原理。

1.2. PCA问题-简化表述

由于

  

上述第1到第2个等号中是需要证明的,这里省略,通过上式,可知PCA问题可以化简为:

求一个标准正交矩阵A,使得

可以看到,这是一个经典的矩阵对角化问题,由于是对称矩阵,所以必能找到一个标准正交矩阵A。

事实上,只要仔细思考一下就会发现,数据中不中心化,经过化简后的PCA问题都是一样的。

二、主成份PCA问题的求解方法

本节讲解求解PCA问题的两种求解方法:特征值法及SVD法。

2.1. PCA求解-方法一:使用特征值求解PCA 

PCA问题的求解其实就是矩阵对角化的问题。

数学上常用的方法是先求出的特征值,再求得对应的特征向量,将特征向量标准化后组合在一起就是所需求解的、让 对角化的标准正交矩阵A。

备注:将特征向量组合成A的时候需要根据特征值由大到小对应的特征向量进行组合,具体操作这里不再细说,矩阵对角化,懂的都懂。

2.2. PCA求解-方法二:通过SVD分解求解PCA

实际中更常用的是通过SVD分解来求得PCA问题中的A。

SVD分解是指将一个的矩阵分解成三个矩阵的积,其中U、V分别是的酉矩阵,是对角矩阵。

注意到

 

只需将进行SVD分解,即有 

 

易知,当就是对角矩阵,如下

 

根据以上的原理,可以将PCA的求解方法总结如下:

进行SVD分解,得到

  (1) 就是所求                                               

  (2)就是                                       

用SVD来求解PCA就是这么简单,只需要进行SVD分解一下就可以得到系数矩阵A和方差了。

总结

总的来说,PCA其实就是求一个标准正交矩阵A,使得,也就是求的对角化矩阵,而是对称矩阵,所以必能求得A。另一方面,由于是对称矩阵,用SVD分解来求A会更为方便。



图标 评论
添加评论