PCA的数学原理Matlab演示

关于

PCA(Principal component analysis)主成分分析。是SVD(Singular value decomposition)神秘值分析的一种特殊情况。主要用于数据降维。特征提取。

Matlab演示

生成一个随机矩阵

这里生成一个的小矩阵便于说明。

A = rand(3,3);

特征值分解

[V,D] = eig(A);

V是特征向量,D是特征向量相应的特征值。特征值从小到大依次为20,1.3060,0.0655。最后一个特征很小。由于我们能够舍去。

构造子空间的基

SubSpace = V(:,2:end);

我们选取最大的两个特征值相应的特征向量。构成我们的子空间。

构造子空间上的正交投影

Q = SubSpace * SubSpace ’;

子空间投影

B = Q'*A ;

计算子空间与原始空间的差值

能够看出这里我们使用子空间投影复原的矩阵差异很小,我们能够使用Frobenius范数度量两个矩阵的差异。

 norm(A-B,'fro');

数学好的同学已经看出来了,事实上这也就是矩阵的低秩逼近问题。

完。

Licenses

作者日期联系方式
风吹夏天2015年8月10日wincoder@qq.com