1、在多元统计分析中,主成分分析(英语:Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。主成分分析由 卡尔皮尔逊 于 1901 年发明 1,用于分析数据及建立数理模型。其方法主要是通过对协方差矩阵进行特征分解 2,以得出数据的主成分(即特征向量)与它们的权值(即特征值 3)。PCA 是最
2、简单的以特征量分析多元统计分布的方法。其结果可以理解为对原数据中的方差做出解释:哪一个方向上的数据值对方差的影响最大?换而言之,PCA 提供了一种降低数据维度的有效办法;如果分析者在原数据中除掉最小的 特征值所对应的成分,那么所得的低维度数据必定是最优化的(也即,这样降低维度必定是失去讯息最少的方法)。主成分分析在分析复杂数据时尤为有用,比如人脸识别。PCA 是最简单的以特征量分析多元统计分布的方法。通常情况下,这种运算可以被看作是揭露数据的内部结构,从而更好的解释数据的变量的方法。如果一个多元数据集能够在一个高维数据空间坐标系中被显现出来,那么 PCA 就能够提供一幅比较低维度的图像,这副图
3、像即为在讯息最多的点上原对象的一个 投影。这样就可以利用少量的主成分使得数据的维度降低了。PCA 跟因子分析密切相关,并且已经有很多混合这两种分析的统计包。而真实要素分析则是假定底层结构,求得微小差异矩阵的特征向量。数学定义PCA 的数学定义是:一个正交化线性变换,把数据变换到一个新的坐标系统中,使得这一数据的任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推 4。定义一个 n m 的矩阵, XT 为去平均值(以平均值为中心移动至原点)的数据,其行为数据样本,列为数据类别(注意,这里定义的是 XT 而不是 X)。则 X 的奇异值分解为 X =
4、 WVT,其中 m m 矩阵 W 是 XXT 的本征矢量矩阵, 是 m n 的非负矩形对角矩阵,V 是 n n 的 XTX 的本征矢量矩阵。据此,当 m n 1 时,V 在通常情况下不是唯一定义的,而 Y 则是唯一定义的。W 是一个正交矩阵,Y T 是 XT的转置,且 YT 的第一列由第一主成分组成,第二列由第二主成分组成,依此类推。为了得到一种降低数据维度的有效办法,我们可以把 X 映射到一个只应用前面 L 个向量的低维空间中去,WL:where with the rectangular identity matrix.X 的单向量矩阵 W 相当于协方差矩阵的本征矢量 C = X XT,在欧
5、几里得空间给定一组点数,第一主成分对应于通过多维空间平均点的一条线,同时保证各个点到这条直线距离的平方和最小。去除掉第一主成分后,用同样的方法得到第二主成分。依此类推。在 中的奇异值均为矩阵 XXT 的本征值的平方根。每一个本征值都与跟它们相关的方差是成正比的,而且所有本征值的总和等于所有点到它们的多维空间平均点距离的平方和。PCA 提供了一种降低维度的有效办法,本质上,它利用正交变换将围绕平均点的点集中尽可能多的变量投影到第一维中去,因此,降低维度必定是失去讯息最少的方法。PCA 具有保持子空间拥有最大方差的最优正交变换的特性。然而,当与离散余弦变换相比时,它需要更大的计算需求代价。非线性降
6、维技术相对于 PCA 来说则需要更高的计算要求。PCA 对变量的缩放很敏感。如果我们只有两个变量,而且它们具有相同的样本方差,并且成正相关,那么 PCA 将涉及两个变量的主成分的旋转。但是,如果把第一个变量的所有值都乘以 100,那么第一主成分就几乎和这个变量一样,另一个变量只提供了很小的贡献,第二主成分也将和第二个原始变量几乎一致。这就意味着当不同的变量代表不同的单位(如温度和质量)时,PCA 是一种比较武断的分析方法。但是在 Pearson 的题为 “On Lines and Planes of Closest Fit to Systems of Points in Space“的原始文件
7、里,是假设在欧几里得空间里不考虑这些。一种使 PCA 不那么武断是方法是使用变量缩放以得到单位方差。编辑讨论通常,为了确保第一主成分描述的是最大方差的方向,我们会使用平均减法进行主成分分析。如果不执行平均减法,第一主成分有可能或多或少的对应于数据的平均值。另外,为了找到近似数据的最小均方误差,我们必须选取一个零均值 5。假设零经验均值,数据集 X 的主成分 w1 可以被定义为:为了得到第 k 个主成分,必须先从 X 中减去前面的 个主成分:然后把求得的第 k 个主成分带入数据集,得到新的数据集,继续寻找主成分。PCA 相当于在气象学中使用的经验正交函数(EOF),同时也类似于一个线性隐层神经网
8、络。隐含层 K 个神经元的权重向量收敛后,将形成一个由前 K 个主成分跨越空间的基础。但是与 PCA 不同的是,这种技术并不一定会产生正交向量。PCA 是一种很流行且主要的的模式识别技术。然而,它并不能最优化类别可分离性 6 。另一种不考虑这一点的方法是线性判别分析。编辑符号和缩写表Symbol 符号 Meaning 意义Dimensions 尺寸Indices 指数由所有数据向量集组成的数据矩阵,一列代表一个向量数据集中列向量的个数 标量每个列向量的元素个数 标量子空间的维数, 标量经验均值向量经验标准方差向量所有的单位向量对均值的偏离向量Z-分数,利用均值和标准差计算得到协方差矩阵相关矩阵
9、C 的所有特征向量集主对角线为特征值的对角矩阵基向量矩阵X 和 W 矩阵的投影矩阵编辑主成分分析的属性和限制如上所述,主成分分析的结果取决于变量的缩放。主成分分析的适用性受到由它的派生物产生的某些假设 7 的限制。编辑使用统计方法计算 PCA以下是使用统计方法计算 PCA 的详细说明。但是请注意,如果利用奇异值分解(使用标准的软件)效果会更好。我们的目标是把一个给定的具有 M 维的数据集 X 变换成具有较小维度 L 的数据集 Y。现在要求的就是矩阵 Y, Y 是矩阵 X KarhunenLove 变换。:编辑组织数据集假设有一组 M 个变量的观察数据,我们的目的是减少数据,使得能够用 L 个向
10、量来描述每个观察值,L M。进一步假设,该数据被整理成一组具有 N 个向量的数据集,其中每个向量都代表 M 个变量的单一观察数据。 为列向量,其中每个列向量有 M 行。 将列向量放入 M N 的单矩阵 X 里。编辑计算经验均值 对每一维 m = 1, ., M 计算经验均值 将计算得到的均值放入一个 M 1 维的经验均值向量 u 中编辑计算平均偏差对于在最大限度地减少近似数据的均方误差的基础上找到一个主成分来说,均值减去法是该解决方案的不可或缺的组成部分 8 。因此,我们继续如下步骤: 从数据矩阵 X 的每一列中减去经验均值向量 u 将平均减去过的数据存储在 M N 矩阵 B 中where h
11、 is a 1 N row vector of all 1s:其中 h 是一个全 1s:的 1 N 的行向量编辑求协方差矩阵 从矩阵 B 中找到 M M 的经验协方差矩阵 C其中 为期望值是最外层运算符是共轭转置运算符。请注意,如果 B 完全由实数组成,那么共轭转置与正常的转置一样。编辑查找协方差矩阵的特征值和特征向量 计算矩阵 V 的特征向量其中,D 是 C 的特征值对角矩阵,这一步通常会涉及到使用基于计算机的计算特征值和特征向量的算法。在很多矩阵代数系统中这些算法都是现成可用的,如 R 语言,MATLAB ,910 Mathematica,11SciPy, IDL(交互式数据语言), 或者
12、 GNU Octave 以及 OpenCV。 矩阵 D 为 M M 的对角矩阵 各个特征值和特征向量都是配对的,m 个特征值对应 m 个特征向量。【1】 Pearson, K On Lines and Planes of Closest Fit to Systems of Points in Space (PDF). Philosophical Magazine. 1901, 2 (6): 559572.【2】 Abdi. H., & Williams, L.J Principal component analysis Wiley Interdisciplinary Reviews: Comp
13、utational Statistics,. 2010, 2: 433459.【3】 Shaw P.J.A. (2003) Multivariate statistics for the Environmental Sciences, Hodder-Arnold. ISBN 0-3408-0763-6.页码请求 【4】 Jolliffe I.T. Principal Component Analysis, Series: Springer Series in Statistics, 2nd ed., Springer, NY, 2002, XXIX, 487 p. 28 illus. ISBN
14、 978-0-387-95442-4【5】 A. A. Miranda, Y. A. Le Borgne, and G. Bontempi. New Routes from Minimal Approximation Error to Principal Components, Volume 27, Number 3 / June, 2008, Neural Processing Letters, Springer【6】 Fukunaga, Keinosuke. Introduction to Statistical Pattern Recognition. Elsevier. 1990. I
15、SBN 0122698517.【7】 Jonathon Shlens, A Tutorial on Principal Component Analysis.【8】 A.A. Miranda, Y.-A. Le Borgne, and G. Bontempi. New Routes from Minimal Approximation Error to Principal Components, Volume 27, Number 3 / June, 2008, Neural Processing Letters, Springer【9】 eig function Matlab documen
16、tation【10】 MATLAB PCA-based Face recognition software【11】 Eigenvalues function Mathematica documentation【12】 The Numerical Algorithms Group. NAG Library Routine Document: nagf_mv_prin_comp (g03aaf). NAG Library Manual, Mark 23 2012-02-16.【13】 The Numerical Algorithms Group. NAG Library Routine Document: nag_mv_prin_comp (g03aac). NAG Library Manual, Mark 9 2012-02-16.【14 】【15 】