资源简介
由于本人最近需要处理的数据特征太多,导致分类不准确,特此学习了两天的PCA,找了许多资料。整理了各位博主的伪代码,并写成matlab程序,然后自己利用matlab自带的pca函数进行计算,两种方法进行比较,程序已全副武装,只需要导入自己数据就能运行。
代码片段和文件信息
%% 感谢@chenyu19880302 博主的博客内容,它用通俗易懂的语言介绍了pca算法的原理和代码,
%%% 本人将它的代码进行整理,并换成自己的数据进行运算,发现它没有用matlab自带的pca函数
%%% 由于本人研究的是ERP内容,数据格式可能不一样,所以运行的时候请自行修改一些参数
%%% 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
%%% 本文链接:https://blog.csdn.net/chenyu19880302/article/details/9163303
%%% 导入数据格式为n*m,n为样本数,m为特征数
%% 第一步:输入样本矩阵%%%%%%%%%%%%%% 500个样本 62导联 24个维度
vector=dataA; % 此为导入数据,只需要修改dataA为自己的数据即可运行
newfeature=[];
%现对其进行pca降维
for chan=1:62
%第二步:计算样本中每一维的均值,然后计算观察值与均值之间的偏差,再计算协方差矩阵
feature=vector(:(chan-1)*24+1:(chan*24)); % 按导联分开
s=sum(feature1);%计算每一列的均值
[nSmpnFea] = size(feature);
feature=feature-repmat(mean(feature)nSmp1);%把每一维的均值复制成nSmp*nFea矩阵,然后计算偏差
W=zeros(nFeanFea);%建立一个nFea*nFea的零矩阵
W=W+feature‘*feature;
W=W/(nSmp-1);%根据协方差公式计算协方差,得到协方差矩阵W
%第三步:计算协方差矩阵的特征值和特征向量矩阵
fprintf(1‘Calculating generalized eigenvectors and eigenvalues...\n‘);
[eigvectors eigvalues] = eig(W);%eigvectors为特征向量组成的矩阵,eigvalues特征值组成的对角矩阵
fprintf(1‘Sorting eigenvectors according to eigenvalues...\n‘);
d1=diag(eigvalues);%返回对角矩阵上的值
[d2index]=sort(d1); %以升序排序,d2为排列后的值,index为索引值
cols=size(eigvectors2);% 特征向量矩阵的列数
for i=1:cols
vsort(:i) = eigvectors(: index(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量每一列构成一个特征向量
dsort(i) = d1( index(cols-i+1) ); % dsort 保存的是按降序排列的特征值,是一维行向量
end %完成降序排列
%第四步:计算总能量,并选取贡献率最大的特征值
dsum = sum(dsort);%对所有的特征值求和
dsum_extract = 0;%求前几个特征值之和当前几个特征值之和大于预设值时,可以认为这几个特征值可以表征当前矩阵
p = 0;
- 上一篇:matlab读取hdf文件
- 下一篇:含过时信息多智能体系统一致性Matlab仿真
相关资源
- 高光谱图像pca分析特征提取
- pca源码matlab
- PCA人脸识别Eigenface特征脸Matlab
- RPCA图像去噪算法
- MATLAB 对iris数据集进行PCA
- 遥感影像融合_数字图像处理的matlab程
- 基于TE过程的PCA程序matlab
- 基于PCA和SVM的人脸识别.zip
- PCA算法实现人脸识别基于matlab GUI界面
- 基于matlab的人脸识别271850
- 2D2DPCA人脸识别matlab代码/ORL库
- PCA人脸识别MATLAB代码/ORL库
- PCA人脸识别论文附MATLAB程序
- KPCA matlab实现
- 基于K-L变换的人脸识别系统
- 基于PCA使用Yale人脸数据库的人脸识别
- 降维技术matlab工具箱
- 2dpca的matlab源码
- 基于pca的图像压缩与重建代码
- 基于pca的图像压缩算法
- 2DPCA的matlab代码
- 基于PCA算法实现人脸识别完整代码文
- MATLAB下人脸图像的PCA重构
- LDA与PCA的讲解与matlab演示
- 基于PCA的点云位姿估计与粗拼接,m
- 基于PCA的人脸识别matlab)
- Matlab人脸识别-PCA算法
- 基于PCA对人脸图像做特征选择matlab程
- 基于PCA算法的人脸识别包含人脸库
- 表情识别 源码Matlab LBP+LPQ SVM PCA
川公网安备 51152502000135号
评论
共有 条评论