主成分分析

在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

简介

在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

PCA方法主要是通过对协方差矩阵进行特征分解,以得出数据的主成分(即特征向量)与它们的权值(即特征值)。PCA是最简单的以特征量分析多元统计分布的方法。其结果可以理解为对原数据中的方差做出解释:哪一个方向上的数据值对方差的影响最大?换而言之,PCA提供了一种降低数据维度的有效办法;如果分析者在原数据中除掉最小的特征值所对应的成分,那么所得的低维度数据必定是最优化的(也即,这样降低维度必定是失去讯息最少的方法)。主成分分析在分析复杂数据时尤为有用,比如人脸识别。

PCA是最简单的以特征量分析多元统计分布的方法。通常情况下,这种运算可以被看作是揭露数据的内部结构,从而更好的解释数据的变量的方法。如果一个多元数据集能够在一个高维数据空间坐标系中被显现出来,那么PCA就能够提供一幅比较低维度的图像,这幅图像即为在讯息最多的点上原对象的一个‘投影’。这样就可以利用少量的主成分使得数据的维度降低了。

PCA跟因子分析密切相关,并且已经有很多混合这两种分析的统计包。而真实要素分析则是假定底层结构,求得微小差异矩阵的特征向量。

数学定义:

PCA的数学定义是:一个正交化线性变换,把数据变换到一个新的坐标系统中,使得这一数据的任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。

定义一个$n \times m$的矩阵,$X^{T}$为去平均值(以平均值为中心移动至原点)的数据,其行为数据样本,列为数据类别(注意,这里定义的是$X^{T}$而不是X)。则X的奇异值分解为$X = W\sum V^{T}$,其中$m \times m$矩阵W是$XX^{T}$的本征矢量矩阵,Σ是$m \times n$的非负矩形对角矩阵,V是$n \times n$的$X^{T}X$的本征矢量矩阵。据此,

当m < n − 1时,V在通常情况下不是唯一定义的,而Y则是唯一定义的。W是一个正交矩阵,

$Y^{T}W^{T}=X^{T}$,且$Y^{T}$的第一列由第一主成分组成,第二列由第二主成分组成,依此类推。

为了得到一种降低数据维度的有效办法,我们可以利用$W_{L}$把X映射到一个只应用前面L个向量的低维空间中去:

其中$\sum_{L}=I_{L \times m}\sum$,且$I_{L \times m}$为L × m的单位矩阵。

X的单向量矩阵W相当于协方差矩阵的本征矢量$C= XX^{T}$,

在欧几里得空间给定一组点数,第一主成分对应于通过多维空间平均点的一条线,同时保证各个点到这条直线距离的平方和最小。去除掉第一主成分后,用同样的方法得到第二主成分。依此类推。在Σ中的奇异值均为矩阵$XX^{T}$的本征值的平方根。每一个本征值都与跟它们相关的方差是成正比的,而且所有本征值的总和等于所有点到它们的多维空间平均点距离的平方和。PCA提供了一种降低维度的有效办法,本质上,它利用正交变换将围绕平均点的点集中尽可能多的变量投影到第一维中去,因此,降低维度必定是失去讯息最少的方法。

主成分分析实例:

一个平均值为(1, 3)、标准差在(0.878, 0.478)方向上为3、在其正交方向为1的高斯分布。这里以黑色显示的两个向量是这个分布的协方差矩阵的特征向量,其长度按对应的特征值之平方根为比例,并且移动到以原分布的平均值为原点。

[描述来源:维基百科;URL:https://zh.wikipedia.org/wiki/%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90]

在机器学习方面的应用:

PCA是一种寻找高维数据(图像等)模式的工具。机器学习实践上经常使用PCA对输入神经网络的数据进行预处理。通过聚集、旋转和缩放数据,PCA算法可以去除一些低方差的维度而达到降维的效果,这样操作能提升神经网络的收敛速度和整体效果。

[描述来源:机器之心;URL:https://www.jiqizhixin.com/articles/2017-07-05-2]

发展历史

描述

主成分分析由卡尔·皮尔逊于1901年发明,用于分析数据及建立数理模型。1930s由哈罗德·霍特林演进并命名。根据应用领域不同,PCA也衍生出不同名称。在信号处理中称之为离散KL变换,在多变量品控中称为霍特林变换,机械工程中称为特征正交分解,线性代数中称为奇异值分解和特征根分解等。在模式识别中,PCA现在是一种很流行且主要的技术。

主要事件

年份

事件

相关论文/Reference

1901

Karl Pearson发明主成分分析法

Peason, K. (1901). On lines and planes of closest fit to systems of point in space. Philosophical Magazine, 2(11), 559-572.

1933

哈罗德·霍特林正式命名主成分分析

Hotelling, H. (1933). Analysis of a complex of statistical variables into principal components. Journal of educational psychology, 24(6), 417.

1991

在神经网络中采用非线性PCA技术

Kramer, M. A. (1991). Nonlinear principal component analysis using autoassociative neural networks. AIChE journal, 37(2), 233-243.

1997

将PCA用于人脸识别

Belhumeur, P. N., Hespanha, J. P., & Kriegman, D. J. (1997). Eigenfaces vs. fisherfaces: Recognition using class specific linear projection. IEEE Transactions on pattern analysis and machine intelligence, 19(7), 711-720.

2004

将PCA用于K-means聚类

Ding, C., & He, X. (2004, July). K-means clustering via principal component analysis. In Proceedings of the twenty-first international conference on Machine learning (p. 29). ACM.

发展分析

瓶颈

PCA具有保持子空间拥有最大方差的最优正交变换的特性。然而,当与离散余弦变换相比时,它需要更大的计算需求代价。非线性降维技术相对于PCA来说则需要更高的计算要求。

PCA对变量的缩放很敏感。如果我们只有两个变量,而且它们具有相同的样本方差,并且成正相关,那么PCA将涉及两个变量的主成分的旋转。但是,如果把第一个变量的所有值都乘以100,那么第一主成分就几乎和这个变量一样,另一个变量只提供了很小的贡献,第二主成分也将和第二个原始变量几乎一致。这就意味着当不同的变量代表不同的单位(如温度和质量)时,PCA是一种比较武断的分析方法。但是在Pearson的题为"On Lines and Planes of Closest Fit to Systems of Points in Space"的原始文件里,是假设在欧几里得空间里不考虑这些。一种使PCA不那么武断的方法是使用变量缩放以得到单位方差。

未来发展方向

在原有PCA技术上衍生出非线性PCA技术,用于模式识别以及神经网络中,提升计算速度和增强训练效果。

Contributor: Yueqin Li

相关人物
Jon Shlen
Jon Shlen
David J. Kriegman
David J. Kriegman
Joao Hespanha
Joao Hespanha
简介
相关人物