主成分分析的步骤应用及代码实现

主成分分析

什么是主成分分析
主成分分析(PCA技术)是一种对数据进行分析的技术,是对数据进行降维的处理。我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。

步骤

1.将数据用矩阵形式表示
2.求出矩阵的协方差矩阵
3.计算其特征值和特征向量
4.根据特征值和特征来确定降维后的维数
5.将得到的矩阵与原数据矩阵相乘得到一个新矩阵即降维后数据

主成分分析的应用

数据表示
对于一个N*N的图像,可以将图像的像素一行行的头尾相接成一个一维向量。
模式识别
可以用PCA方法提取人脸的内在结构,当用新的图像与原有图像比较时,只需在变换后的主元维度上进行比较,来衡量新图与原有数据集的相似度。
图像信息压缩
使用PCA方法处理一个图像序列,提取其中的主元。然后根据主元的排序去除其中次要的分量,然后变换回原空间,则图像序列因为维数降低得到很大的压缩。

MATLAB中的实现

clc;
clear all;
X=load('exam.txt')
z=zscore(X)                %矩阵化
M=cov(z)                   %求协方差矩阵
[V,D]=eig(M);              %计算协方差矩阵的特征向量、特征根
d=diag(D);                 %取出特征根矩阵列向量

eig1=sort(d,'descend')     %将贡献率按从大到小元素排列
v=fliplr(V)                %重新排列特征向量

S=0;
i=0;
while S/sum(eig1)<0.8    
    i=i+1;    
    S=S+eig1(i);
end                         %求出贡献率大于80%的主成分

NEW=z*v(:,1:i)              %输出产生的新坐标下的数据
发布了3 篇原创文章 · 获赞 2 · 访问量 96

猜你喜欢

转载自blog.csdn.net/qq_45422269/article/details/104493276