理论
什么是PCA
主成分分析(PCA)是一种统计程序,可提取数据集的最重要特征。
考虑到您有一组2D点,如上图所示。 每个维度对应一个您感兴趣的特征。这里有些人可能会争辩说这些点是按随机顺序设置的。 但是,如果你有一个更好的外观,你会发现有一个线性模式(由蓝线表示)很难消除。 PCA的一个关键点是维度降低。 维度减少是减少给定数据集的维数的过程。 例如,在上述情况下,可以将点集合近似为单个线,因此,将给定点的维数从2D减小到1D。
此外,您还可以看到沿着蓝线的点变化最大,而不是沿着Feature 1或Feature 2轴变化。 这意味着,如果您知道沿蓝线的点的位置,您可以获得有关该点的更多信息,而不是您只知道它在Feature 1轴或Feature 2轴上的位置。
因此,PCA允许我们找到数据变化最大的方向。 实际上,在图中的点集上运行PCA的结果包括2个称为特征向量的向量,它们是数据集的主要组成部分。
每个特征向量的大小以相应的特征值编码,并指示数据沿主成分变化的程度。 特征向量的开始是数据集中所有点的中心。 将PCA应用于N维数据集产生N个N维特征向量,N个特征值和1个N维中心点。
如何计算特征向量和特征值
目标是将维度为p的给定数据集X转换为较小维度L的备选数据集Y。等效地,我们寻求找到矩阵Y,其中Y是矩阵X的Karhunen-Loève变换(KLT):
(1)组织数据集
假设您的数据包含一组p变量的观察结果,并且您希望减少数据,以便每个观察结果只能用L个变量来描述,L <p。 进一步假设,数据被排列为一组n个数据向量x1 ... xn,每个xi表示p个变量的单个分组观察。
- 将x1 ... xn写为行向量,每个行向量都有p列。
- 将行向量放入尺寸为n×p的单个矩阵X中。
(2)计算经验均值
- 找出每个维度j = 1,...,p的经验均值。
- 将计算的平均值放入尺寸为p×1的经验平均向量u中。