PCA算法学习

PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。

一、算法原理

PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。

其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。

通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处 理。
二、算法步骤

1.输入样本矩阵
假设样本x1,x2,…,xN,共N个样本,每个样本以列向量的形式表示,每个样本有M维。X=[x1 x2 … xN]MxN。
2.计算样本中每一维的均值,然后计算观察值与均值之间的偏差,再计算协方差矩阵,根据协方差函数,首先要求出每一维的均值,然后再计算观察值与均值之间的偏差,再计算协方差矩阵

3.计算协方差矩阵其中的特征值和特征向量矩阵
根据协方差矩阵就可以求出特征值和特征向量,然后给特征值进行降序排序,相应的特征向量也要按照特征值的排序做出相应的调整,这样主要是为下一步的提取少量的特征值做准备。
4.计算总能量,并选取贡献率最大的特征值总能量的计算就是全部的特征值之和,而贡献率就是用前p个特征值去除以全部特征值之和,如果前p个特征值之和占全部特征值之和的90%以上,就提取前p个特征值和前p个特征值所对应的特征向量,这样就减少了维数。
5.计算前p个特征值所对应的的特征向量组成的矩阵,计算降维后的样本矩阵根据上一步得到的新的特征向量,用原始的协方差矩阵去乘以此新的特征向量组成的新矩阵,就可以得到降维后的样本矩阵。
参考链接:https://blog.csdn.net/weixin_45442965/article/details/106344307

posted @ 2021-12-17 21:05  不正从心szd  阅读(88)  评论(0编辑  收藏  举报