PCA
或许大家在看到这篇文章时已经对pca算法的流程有了大致的了解,我写这篇文章目的在于把我的一些心得体会分享给大家,一起进步学习。
PCA算法流程
假如有特征集X, X是n行m列的矩阵,每一行代表一个样本,m每个样本的维度,也就是特征数,有m个特征。
- 首先对数据进行中心化(将数据平移到以原点为中心),就是每一列减去各自的平均值。得到中心化的特征集Y。
- 求解出Y的协方差矩阵A,将问题转化为求解协方差矩阵的特征值与特征向量,选择特征贡献率较大的前几个特征向量构成投影矩阵B,最终降维后的数据data=Y*B,data是一个n行k列的矩阵,k是目标维度,一般我们需要降至2或者3维,这样才能进行可视化表示。
但是在求解协方差是免不了存在一点误差,因此我们想可不可以直接用特征集Y来求解投影矩阵
利用SVD分解
PCA降维用很经典的数学中奇异值分解便可实现,下面我简单推导一下:
-
对于已经中心化的特征集Y,它的协方差矩阵可以表示为A=Y*Y’
-
对Y进行奇异值分解Y=USV’