下面,根据我们上文的推理,将协方差矩阵C对角化。注意到,这里的矩阵C是是对称矩阵,对称矩阵对角化就是找到一个正交矩阵P,满足:
具体操作是:先对C进行特征值分解,得到特征值矩阵(对角阵)即为Λ,得到特征向量矩阵并正交化即为P。显然,
。假如我们取最大的前p(p<d)个特征值对应的维度,那么这个p个特征值组成了新的对角阵,对应的p个特征向量组成了新的特征向量矩阵。实际上,这个新的特征向量矩阵P1就是投影矩阵,为什么这么说呢?假设PCA降维后的样本矩阵为S1,显然,根据PCA的目的,S1中的各个维度间的协方差基本为零,也就是说,S1的协方差矩阵应该为Λ1。即满足:
Matlab中PCA实战
首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。
S = fix(rand(10,3)*50);