2010-04-14 19:57:26 阅读6 评论0 字号:大中小
Principal Components Analysis(PCA):主成分分析
It is a way of identifying patterns in da
Method:
step1: Get some da
输入数据
step2:Subtract the mean
将输入的数据,减去均值。 这样做使得数据集在各个维度上的均值为零。
step3:Calculate the covariance matrix
计算协方差矩阵
注意,通过这一步计算,可以查看非对角线元素的正负性,他们反映的是维度间的相关性。同时可以发现,计算出来的协方差矩阵是一个对称矩阵。
step4:Calculate the eigenvectors and eigenvalues of the covariance matrix
计算协方差矩阵的特征向量和特征值
step5:Choosing components and forming a feature vector
将计算得到的特征值排序,选择特征值大的作为主成分,构造一个特征矩阵
In fact, it turns out that the eigenvector with the highest eigenvalue is the principle component of the da
step6:Deriving the new da
计算得到新 的数据集(即源数据集的投影数据集)
将计算得到的主成分特征向量左乘以原始数据集向量,得到新的(投影后的)数据集。
FinalData = RowFeatureVector*RowDataAdjust
数据恢复:
从上面,{zh1}的数据降维运算等式可知,如果想要恢复数据,那么需要进行如下的操作:
RowDataAdjust = RowFeatureVector^(-1)*FinalData
由于特征向量间是相互正交的一组正交基,因此,对于特征向量的求逆运算,正好等于求转置运算。(可以理解,只有自己与自己相互乘的位置,才不为零。即只有对角线位置的元素乘,不为零)
RowDataAdjust = RowFeatureVector^(T)*FinalData
由于在最初计算的时候,对数据是进行了减去均值操作,因此,想要恢复原始数据,需要在计算出上面的结果后,加上均值矩阵。
RowDataAdjust = RowFeatureVector^(T)*FinalData + OriginalMean
重要的参考文献;
"Face Recognition:Eigenface, Elastic Matching, and Neural Nets" Digital Image Processing . Rafael C.Gonzalez and Paul Wintz.
PCA的应用
1、模式识别
在模式识别的时候,比如在人脸的识别的时候,可以先将人图像图像的元素构造成一个N^2维的一个行向量,这样可以将获取到的M幅图像,组合成为一个M*N^2的原始图像数据矩阵。这样可以求解得到N^2个特征向量,选取这些特征向量构造成一个特征向量矩阵,然后将这个特征矩阵左乘以原始图像数据矩阵,可以降维得到投影后的图形数据矩阵。然后,在这个投影后的空间中,计算新输入的人脸图像与空间中哪个图像最近,这样实现模式匹配。
因此,在这里,进行PCA降维的目的是为了将获取到的不同人脸数据整体投影到一个新的低维空间中。在新的空间中,比较距离。
2、数据压缩
在进行图像数据压缩的时候,构造的数据矩阵与模式识别时不一样的。因为在这个,需要对不同图像同一位置的像素点所在空间进行投影,因此,如果有M幅图像,那么构造的数据向量每一行的维度为M,表示的是在每个样本图像中的对应于同一点的数据值。那么总共就可以得到N^2个这样的向量,表示出图像中对于任何一点的数据分布。
进行PCA降维的时候,是将每一点的可能分布,从原来的M维降低到新的维度,减少每一个像素点的可能分布空间,从而实现数据的压缩操作。