PCA原理:
主成分分析 ( Principal Component Analysis , PCA )是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。计算主成分的目的是将高纬数据投影到较低维空间。给定 n 个变量的 m个观察值,形成一个 n *m 的数据矩阵,n通常比较大。对于一个由多个变量描述的复杂事物,认识难度会很大,于是我们可以抓住事物主要方面进行重点分析,如果事物的主要方面刚好体现在几个主要变量上,那么我们只需要将体现事物主要方面的较少的几个主要变量分离出来,对此进行详细分析。但是,在一般情况下,并不能直接找出这样的关键变量。这时我们可以用原有变量的线性组合来表示事物的主要方面, PCA 就是这样一种分析方法。
具体的步骤:-
把原始数据中每个样本用一个向量表示,然后把所有样本组合起来构成一个矩阵。当然了,为了避免样本的单位的影响,样本集需要标准化。
-
求该矩阵的协防差矩阵(关于协方差的介绍可以参考下面)。
-
求步骤2中得到的协方差矩阵的特征值和特征向量。
-
将求出的特征向量按照特征值的大小进行组合形成一个映射矩阵,并根据指定的PCA保留的特征个数取出映射矩阵的前n行或者前n列作为最终的映射矩阵。
-
用步骤4的映射矩阵对原始数据进行映射,达到数据降维的目的
协方差矩阵:
在统计学与概率论中,协方差矩阵(covariance matrix)是一个矩阵,其每个元素是各个向量元素之间的协方差。协方差矩阵能导出一个变换矩阵,这个矩阵能使数据完全去相关(decorrelation),它是从标量随机变量到高维度随机向量的自然推广。在图像处理中称为Karhunen-Loève变换(KL-变换)。
首先要清楚一般出现协方差矩阵时就会出现多维列向量,这里假设为n维,另外既然有协方差字眼,那肯定是一个随机变量。这里假设有d个随机变量x1,x2,x3,…,xd,只不过每个随机变量x又是由n个标量组成的列向量。简单的理解就是说在n维空间中有d个随机的点。现在我们需要求的是关于n维空间中这d个点的协方差矩阵。
用uk列向量表示d个点的平均值,uk中的每一个元素对应d个点中相应维数的平均数。并且μk是其第k个元素的期望值。即,μk=E[X];所以协方差矩阵为n*n维的。其每个元素的计算公式如下:
(这个公式是从百度百科上截的,貌似这里的X1,X2,...,Xn和我上面描述的不同,该公式里面指的是由每一维的d个值构成的向量...不管怎样,该博客中文字的描述是正确的)
其数学含义是协方差矩阵的第i行第j列的元素表示为,d个随机变量点中的第i维和第j维的协方差。因为每一维的d个数都可以看做算是一维空间中的d个实数,因此它有自己的平均数和方差,每2维之间也就有协方差。