PCA主成分分析
概述
主成分分析(Principal Component Analysis, PCA),是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。
其目的是找到k个坐标轴使得数据集在新的坐标轴下的方差最大。
计算过程
1.样本矩阵进行均值化;
2.计算协方差矩阵;
3.通过特征值分解或SVD分解计算协方差矩阵的特征值与特征向量;
4. 对特征值从大到小排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵P;
5.将数据转换到k个特征向量构建的新空间中,即Y=PX。
求解协方差矩阵的特征值和特征向量
两种方法:
1.特征值分解协方差矩阵
2.奇异值分解协方差矩阵
求解可以参考SVD博客
PCA与SVD的联系
PCA在过程中要计算协方差矩阵,当样本数和特征数很多的时候,这个计算量是相当大的。
PCA仅仅使用了SVD的右奇异矩阵V,没有使用左奇异矩阵U。左奇异矩阵可以用于行数的压缩。右奇异矩阵可以用于列数即特征维度的压缩,也就是PCA降维。SVD可以获取另一个方向上的主成分,而PCA只能获得单个方向上的主成分。
如果用SVD分解协方差矩阵实现PCA,则可以得到两个方向的PCA降维(即行和列两个方向)。
SVD可以输入稀疏矩阵。因为PCA需要进行去均值化处理,所以不可避免的破坏了矩阵的稀疏性。所以,对于稀疏矩阵来说,SVD更适用,这样对于大数据来说节省了很大空间。