PCA主成分分析

主成分分析(PCA)

1. PCA思想总结

  1. PCA就是将高维的数据通过线性变换投影到低维空间上去。
  2. 投影思想:找出最能够代表原始数据的投影方法。被PCA降掉的那些维度只能是那些噪声或是冗余的数据。
  3. 去冗余:去除可以被其他向量代表的线性相关向量,这部分信息量是多余的。
  4. 去噪声,去除较小特征值对应的特征向量,特征值的大小反映了变换后在特征向量方向上变换的幅度,幅度越大,说明这个方向上的元素差异也越大,要保留。
  5. 对角化矩阵,寻找极大线性无关组,保留较大的特征值,去除较小特征值,组成一个投影矩阵,对原始样本矩阵进行投影,得到降维后的新样本矩阵。
  6. 完成PCA的关键是——协方差矩阵。协方差矩阵,能同时表现不同维度间的相关性以及各个维度上的方差。协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。
  7. 之所以对角化,因为对角化之后非对角上的元素都是0,达到去噪声的目的。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。所以我们只取那些含有较大能量(特征值)的维度,其余的就舍掉,即去冗余。

2. 图解PCA

​ PCA可解决训练数据中存在数据特征过多或特征累赘的问题。核心思想是将m维特征映射到n维(n < m),这n维形成主元,是重构出来最能代表原始数据的正交特征。

​ 假设数据集是m个n维,(X(1),X(2)……..X(n)), 如果n=2​,需要降维到n’=1,现在想找到某一维度方向代表这两个维度的数据。下图有u1, u2​两个向量方向,但是哪个向量才是我们所想要的,可以更好代表原始数据集的呢?

从图可看出,u1,u2好,为什么呢?有以下两个主要评价指标:

  1. 样本点到这个直线的距离足够近。
  2. 样本点在这个直线上的投影能尽可能的分开。

如果我们需要降维的目标维数是其他任意维,则:

  1. 样本点到这个超平面的距离足够近。
  2. 样本点在这个超平面上的投影能尽可能的分开。

3. PCA算法推理

下面以基于最小投影距离为评价指标推理:

​ 假设数据集是m个n维, (X(1),X(2)……..X(n)),且数据进行了中心化。经过投影变换得到新坐标为 {w_1,w_2,…,w_n},其中 w 是标准正交基,即 || w ||^2 = 1,w^T(i) w(j) = 0。

​ 经过降维后,新坐标为 { w_1,w_2,…,w_n },其中 n’ 是降维后的目标维数。样本点 x^(i)在新坐标系下的投影为 z^(i) = (z^(i)1, z^(i)2, …, z^(i)n’ ),其中 z^(i)j = w^Tj x^(i)x^(i)$在低维坐标系里第 j 维的坐标。

​ 如果用 $z^{(i)} $ 去恢复 $x^{(i)} $ ,则得到的恢复数据为

其中 W​为标准正交基组成的矩阵。

​ 考虑到整个样本集,样本点到这个超平面的距离足够近,目标变为最小化

对此式进行推理,可得:

​ 在推导过程中,分别用x^(i) = Wz^(i), 矩阵转置公式 (AB)^T = B^T A^T,W^T W = I,z^(i) = W^T x^(i), 以及矩阵的迹,最后两步是将代数和转为矩阵形式。
​ 由于W 的每一个向量 wj是标准正交基,

是数据集的协方差矩阵, 是一个常量。最小化 又可等价于

利用拉格朗日函数可得到:

​ 对 W 求导,可得 , X X^T 是 n’ 个特征向量组成的矩阵,lambda为XX^T 的特征值。W 即为我们想要的矩阵。
​ 对于原始数据,只需要 z^(i) = W^T X^(i) ,就可把原始数据集降维到最小投影距离的 n’$维数据集。

4. PCA算法主要优缺点

优缺点 简要说明
优点 1. 仅仅需要以方差衡量信息量,不受数据集以外的因素影响。 2.各主成分之间正交,可消除原始数据成分间的相互影响的因素。3. 计算方法简单,主要运算是特征值分解,易于实现。
缺点 1.主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。2. 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

5. 降维的必要性及目的

降维的必要性

  1. 多重共线性和预测变量之间相互关联。多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯。
  2. 高维空间本身具有稀疏性。一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有2%。
  3. 过多的变量,对查找规律造成冗余麻烦。
  4. 仅在变量层面上分析可能会忽略变量之间的潜在联系。例如几个预测变量可能落入仅反映数据某一方面特征的一个组内。

降维的目的

  1. 减少预测变量的个数。
  2. 确保这些变量是相互独立的。
  3. 提供一个框架来解释结果。相关特征,特别是重要特征更能在数据中明确的显示出来;如果只有两维或者三维的话,更便于可视化展示。
  4. 数据在低维下更容易处理、更容易使用。
  5. 去除数据噪声。
  6. 降低算法运算开销。

6. KPCA( 核主成分分析 )与PCA的区别

​ 应用PCA算法前提是假设存在一个线性超平面,进而投影。那如果数据不是线性的, 就需要KPCA,数据集从 $n$ 维映射到线性可分的高维 N >n​,然后再从 ​N​维降维到一个低维度 n’(n’<n<N)$。

​ KPCA用到了核函数思想,使用了核函数的主成分分析一般称为核主成分分析(简称KPCA)。

假设高维空间数据由 n 维空间的数据通过映射产生。

​ $n$ 维空间的特征分解为:

​ 其映射为:

​ 通过在高维空间进行协方差矩阵的特征值分解,然后用和PCA一样的方法进行降维。由于KPCA需要核函数的运算,因此它的计算量要比PCA大很多。

7. LDA和PCA区别

异同点 LDA PCA
相同点 1. 两者均可以对数据进行降维;
2. 两者在降维时均使用了矩阵特征分解的思想;
3. 两者都假设数据符合高斯分布;
不同点 有监督的降维方法; 无监督的降维方法;
降维最多降到k-1维; 降维多少没有限制;
可以用于降维,还可以用于分类; 只用于降维;
选择分类性能最好的投影方向; 选择样本点投影具有最大方差的方向;
更明确,更能反映样本间差异; 目的较为模糊;