失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 主成分分析法PCA——MATLAB实现

主成分分析法PCA——MATLAB实现

时间:2019-12-24 11:15:40

相关推荐

主成分分析法PCA——MATLAB实现

1.基本原理

将原来众多具有一定相关性的变量,重新组合为一组新的相互无关的综合变量来代替原来的变量

2.方法步骤

1)对原始数据进行标准化处理

2)计算样本相关系数矩阵

3)计算相关系数矩阵R的特征值和相应的特征向量

4)选择重要的主成分,并写出主成分表达式

5)计算主成分得分

6)依据主成分得分的数据,进一步对问题进行后续的分析和建模(主成分回归、变量子集合的选择、综合评价等)

3.参考代码

%% 数据导入处理clcclear allA = xlsread('/Users/macbookpro/Documents/t3.xlsx','B2:I16');%% 数据标准化处理a = size(A,1);b = size(A,2);for i = 1:bSA(:,i) = (A(:,i) - mean(A(:,i)))/std(A(:,i));end%% 计算相关系数矩阵的特征值和特征向量CM = corrcoef(SA);%计算相关系数矩阵[V,D] = eig(CM); %计算特征值和特征向量for j = 1:bDS(j,1)=D(b+1-j,b+1-j); %对特征值按降序排列endfor i = 1:bDS(i,2) = DS(i,1)/sum(DS(:,1)); %贡献率DS(i,3) = sum(DS(1:i,1))/sum(DS(:,1)); %累计贡献率end%% 选择主成分及对应的特征向量T = 0.9; %主成分保留率for K = 1:bif DS(K,3) >= TCom_num = K;breakendend%% 提取主成分对应的特征向量for j = 1:Com_numPV(:,j)=V(:,b+1-j);end%% 计算个评价对象的主成分的分new_score = SA*PV;for i = 1:atotal_score(i,1)= sum(new_score(i,:));total_score(i,2)= i;endresult_report = [new_score,total_score]; %将各主成分的分与总分放在同一个举证中result_report = sortrows(result_report,-4); %将总分降序排列%% 输出模型及结果报告disp('特征值及其贡献率、累计贡献率:')DSdisp('信息保留率T对应的主成分与特征向量:')Com_numPVdisp('主成分的分及排序(按第四列的总分进行降序排列,前3列为各主成分得分,第五列为企业编号)')result_report

原始数据:

运行结果:

如果觉得《主成分分析法PCA——MATLAB实现》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。