1. 什么是主成分分析
主成分分析是一种数据降维技术,可以将特征从高维空间降维到低维空间,从而提高数据特征的处理效率。主成分分析的目的是找到$K$个特征,这$K$个特征是互不相关,而且要求这$K$个特征的方差尽量大。特征之间不相关保证特征之间的独立性,减少冗余信息;特征的方差尽量大则保证数据在特征上取值尽量分散,有利于利用特征区分样本。
2. 主成分分析的步骤
已知数据样本的特征用矩阵$A_{nm}$表示,则PCA的步骤有:
(1) 计算特征的协方差矩阵$B_{mm}=\frac{1}{n}A^TA$。
(2) 计算协方差矩阵的特征值和特征向量。
(3) 选择前$k$大的特征值对应的特征向量组成矩阵$C_{mk}$。
(4) 得到矩阵$D_{nk}=AC$,矩阵$D$就是降维后的特征。
3. 主成分分析的原理
假设我们现在将每个样本映射到一维,映射矩阵只有一列,设该列为$w$,则有:
根据PCA的要求,$y$的方差要最大,已知$y$的方差为:
我们知道$w$是一个权重向量,表示各个特征的权重,新特征是原特征的加权和,所以有约束:
所以现在是要求:
使用拉格朗日乘子法求上述带约束的最优化问题,可以得到:
所以新特征的方差为:
已知$\frac{1}{n}A^TA$是矩阵$A$的协方差矩阵,所以$w$是矩阵$A$协方差矩阵的特征向量,而且方差等于特征向量的特征值。因为要求方差最大,所以选最大的特征值和对应的特征向量,即解得$w$为最大特征值对应的特征向量。
上面的过程是求解只有一个新特征时的降维矩阵,当需要$k$个新特征时,首先需要协方差矩阵是单位矩阵,即各个特征之间是不相关的,其次需要各个特征的方差都尽量大。已知各个特征向量之间是正交的,所以可以取前$k$大的特征值对应的特征向量组成降维矩阵。