PCA
主成分分析(Principal Component Analysis, PCA)是最为常用的降维方法之一。它对原始数据做基变换,经过坐标轴选择和坐标原点平移,使变换之后数据具有最大方差。具体过程是依次选取原始数据中方差最大的方向作为坐标轴方向,每个新的坐标轴需要与之前选定的坐标轴正交,这样确定了前 k 个坐标轴后,就能够得到原始数据降到 k 维的结果数据。
通过特征值分解和协方差矩阵来实现 PCA 算法的具体步骤如下:
- 对于原始数据集 X=x1, x2, x3, ……,xn 进行 n 维到 k 维的降维时,首先
对其去中心化,即每个元素减去这一行的均值 - 求出数据集的协方差矩阵 S m×m = Cov(X)
- 通过特征值分解法求得矩阵 S 的特征值及其对应的特征向量
- 对特征值降序排列并保留前 k 个特征值,以及它们所对应的特征向量,将这 k 个特征向量按顺序组合为特征向量矩阵 M,也即投影矩阵
- 将原始数据与投影矩阵相乘即得出降维到 k 维后的数据,算法结束。
优缺点
PCA 满足降维过程中的最近重构性和最大可分性。不过 PCA 也存在不足之处,它需要用户根据先验知识对算法进行干预,将数据的特征纳入考虑,才能得到较符合预期的降维结果。由于数据被噪声所影响,数据标准化的过程对于受噪声污染的数据和未受噪声污染的数据是不一样的。对于受噪声污染的数据,噪声对其放大作用更明显。因此如果不使用参数化方法对降维过程进行合理干预,PCA 可能不能充分够保留有效的数据信息。
同时 PCA 不能够处理数据间的非线性相关性。由于它假设原始数据服从高斯分布,假设独立和不相关等价,对于非高斯分布数据不能达到预期效果。