PCA

principal components analysis(PCA)

PCA称为主成分分析或者主分量分析,是一种降低特征维度的方法。


相关背景

在许多领域中,需要对多变量的数据进行观测与分析。这些变量之间,往往存在着相关性,提高了数据分析的复杂度;若是对每个变量单独进行分析,则会导致无法完全利用数据,往往因此丢失一些重要的信息。

同时,对于一些维度较高的数据来说,降低其维度往往能够减少许多工作量。因此,我们的目标是在减少数据量的同时,需要尽可能的保留数据中原有的信息。


数据降维的优点

  • 降低数据分析难度
  • 可除去不重要的特征
  • 可除去噪声

对于PCA的理解

PCA的出发点是将原先相关的特征通过找到一组相互正交新基进行变换去除相关性($Y = P^TX$, P为新基,X为初始数据集,Y为降维之后的数据集),将原本数据的维度投影到低维,这群新基称为主成分。

那么,选取这些新基的依据是什么呢?

新基选取过程:首先选取数据集中,方差最大的方向为第一个主成分的方向,再选择与第一个主成分正交的平面上的一个方差最大的方向作为第二个主成分,以此类推。我们发现,大部分的方差都基本包含在前k个主成分上,后面的方差基本上为0,因此,选取这k个主成分而忽略方差基本为0的主成分即可获得系统中主要的方差,这个过程可以可以去除一些不重要的特征,从而达到降维的目的。


PCA过程

  1. 数据集为n个m维样本X,并计算每个特征的期望值${\mu}_i = \frac {1}{n}\sum_{i=1}^nx_i$
  2. 对这些样本进行去中心化(减去期望值)$x_i := x_i - \mu_i$
  3. 求解随机变量间的协方差矩阵$C = \frac {1}{n}XX^T$(由于已中心化,因此协方差矩阵可化成与该简单形式)
  4. 求解协方差矩阵$C$的特征值以及特征向量
  5. 按特征值从大到小排序,取前k个相应的特征向量组成矩阵$P:[P_1,P_2,…,P_k]$(特征向量组成的矩阵维度为m*k)
  6. 变换之后的数据样本为$Y = P^TX$,从而将数据样本的特征降到了k维

PCA具体的数学解释

转自原文.

编码与解码

PCA的构建需要编码器与解码器,编码器可以理解为将原数据样本投影到低维的矩阵,解码器可以理解维将投影之后的低维矩阵重新投影到高维的矩阵,以下为编码器与解码器的推导:

PCA构建

推导过程

编码器与解码器推导

其中,$c = D^Tx$表示满足使得解码后的数据与原矩阵误差最小的最优解,该形式正好是可得到编码器:

$f(x) = D^Tx$

$r(x)$重构操作的意义为先编码再将其解码,可以以此为优化条件求得编码矩阵(或解码矩阵)的最优解。

编码(矩阵)优化过程

推导过程用到了在优化问题中经常使用的拉格朗日乘子法,该方法适用于一些有约束条件的优化问题。最终,优化结果为对拉格朗日函数求偏导$\frac{\partial L}{\partial d} = 0$,得。而$XX^T$的形式刚好与中心化下写协方差矩阵的表达式“一致”(差一个$\frac{1}{n}$),因此PCA过程中求解协方差矩阵等效于求得该优化过程的最有解。


K-L离散变换与PCA的区别

K-L离散变换对其自相似矩阵$R = XX^T$求特征值与特征向量,其他步骤与PCA相同:将特征值从大到小排列,最终取前k个特征值对应的特征向量。

实际上,K-L变换的变换矩阵可以有很多种:二阶矩阵、协方差矩阵、总类内离散度矩阵等等,当变换矩阵为协方差矩阵时,K-L与PCA等价。