一、什么是PCA:摘用一下百度百科的解释
PCA(Principal Component Analysis),主成分分析,是一种统计方法,通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
二、PCA的用途及原理:
- 用途:数据降维
- 原理:线性映射(或线性变换),简单的来说就是将高维空间数据投影到低维空间上,那么在数据分析上,我们是将数据的主成分(包含信息量大的维度)保留下来,忽略掉对数据描述不重要的成分。即将主成分维度组成的向量空间作为低维空间,将高维数据投影到这个空间上就完成了降维的工作。
三、PCA的算法实现:
- 算法思想:选取数据差异最大的方向(方差最大的方向,方差反应的是数据与其方差(均值)之间的偏离程度,我们通常认为方差越大数据的信息量就越大)作为第一个主成分,第二个主成分选择方差次大的方向,并且与第一个主成分正交。不断重复这个过程直到找到n个主成分。
- 算法步骤:
- 输入:数据集D={x1,x2,x3,x4,....xm},低维空间维数 n(xi表示数据的第i维,m表示数据维度为m,n表示最终要变换的维度)
- 操作:1.对所有样本进行中心化,(对每个维度减去这个维度的数据均值)
- 2.计算样本的协方差矩阵
- 3.对协方差矩阵做特征值分解(特征分解(Eigendecomposition),又称谱分解(Spectral decomposition)是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。需要注意只有对可对角化矩阵才可以施以特征分解。)
- 4.选取前n个最大的特征值对应的的特征向量构成特征向量矩阵W
- 输出:Wm*n*Dh*m = D′(一个m*n的矩阵乘以数据集h*m的矩阵得到h*n的矩阵D′)D′就是降维后的数据集h*m->h*n(m<n)