网上有很多关于python基于PCA的实现,但每一个都有各自的出彩之处,本人看起来挺麻烦的,想自己写一篇文章来总结一下自己的感悟。

Pca的原理:

这是一个二维的数据,我们想利用PCA将它降维成一维数据。

基于python的PCA的实现(1)--原理基于python的PCA的实现(1)--原理

①我们首先将数据分成两个方向:U1.U2。我们可以看出U1的变化比U2 大,所以U1为主特征向量,U2为次特征向量。

 基于python的PCA的实现(1)--原理基于python的PCA的实现(1)--原理

②然后想样本点进行旋转,旋转的公式是基于python的PCA的实现(1)--原理, 基于python的PCA的实现(1)--原理就是样本点x在维度 U1上的投影的长度(幅值)。同样的,基于python的PCA的实现(1)--原理 是 X 投影到u2维度上的幅值。这样就可以得到下图:
基于python的PCA的实现(1)--原理

基于python的PCA的实现(1)--原理

③最后我们再降维,丢弃基于python的PCA的实现(1)--原理中后面(取值较小)的成分,就是将这些成分的值近似为零。如下图

基于python的PCA的实现(1)--原理

这样就能得到下图

基于python的PCA的实现(1)--原理基于python的PCA的实现(1)--原理

具体的算法以及数学证明见参考文献,里面有很好的证明过程。如果我们这是想要用PCA,可以不必太关注数学证明,但必须知道简单原理。

参考文献:

主成分分析


相关文章: