文章目录

主成分分析

主成分分析是最为“简单粗暴”的一种数据降维方法,顾名思义,就是找到数据中最主要的方面,用这些方面来代替原始数据。

算法过程

  1. 对变量进行Z-Score标准化操作,消除变量间量纲不同造成的影响。
  2. 计算数据的协方差矩阵。
  3. 计算所得协方差矩阵的特征值(即主成分方差)和特征向量。
  4. 将所得特征值从大到小排序,并选择最大的k个特征值(即前k个主成分)对应的特征向量。具体k如何选择,需要计算前k个特征值的累计贡献率(碎石图比较不错)来决定。
  5. 将原始数据投影到所选取的k个特征向量组成的低维空间中,转化为新的样本。通过将原始数据乘以这k个特征向量即可得到。

优缺点

优点:

  • 计算方法简单,易于实现
  • 可消除原始变量之间的相关影响,因为主成分分析法在对原始数据变量进行变换后形成了彼此独立的主成分,而且实践证明变量间的相关程度越高,主成分分析效果越好。

缺点:

  • 主成分对数据含义的解释一般多少带有一点模糊性,不像原始变量的含义那么清楚、确切。
  • 方差晓得主成分也可能含有对样本差异的重要信息,丢弃后可能会对后续数据处理有不利影响。

可以看到,将4维降到2维后,数据仍能够清晰地分成三类。这样不仅能削减数据的维度,降低分类任务的计算量,还能减少干扰,保证分类的质量。

注意

  • 原始数据中有多少个特征维度(变量),就会提取出多少个主成分。第一个主成分包含了原始数据中最多的信息,第二个主成分包含了第二多的信息,依次递减。主成分之间互相线性无关;
  • 选择保留多少个主成分,取决于前n个主成分的累计方差占比(累计贡献率)。一般来说,必须保证保留的前几个主成分的累计贡献率在较高水平(>85%);
  • 提取的主成分个数应明显少于原始特征的个数,否则降维带来的利可能还抵不过信息量损失所带来的弊。

示例demo:利用PCA进行mnist图像压缩

上面两幅图中第一列均为原始数据,第2、3、4、5列对应的主成分数目分别为5、15、35、87,可见当主成分数目为85时,图像已经相当清晰了(毕竟总共有784个特征)。