matlab 主成分 分类,matlab主成分分析
%求出累積貢獻(xiàn)率大于85%的主成分
NEW=z*v(:,1:i)%輸出產(chǎn)生的新坐標(biāo)下的數(shù)據(jù)
W=100*eig1/sum(eig1)
figure(1)
pareto(W);%畫(huà)出貢獻(xiàn)率的直方圖
%主成分分析 PAC 的Matlab實(shí)現(xiàn)
clc
clear all
A=xlsread("D:\evaluation.xlsx",1,"B2:I16");% 數(shù)據(jù)的輸入及處理
%數(shù)據(jù)的標(biāo)準(zhǔn)化處理
a=size(A,1);%獲得矩陣A的行大小
b=size(A,2);%獲得矩陣A的列大小
for i=1:b
SA(:,i)=(A(:,i)-mean(A(:,i)))/std(A(:,i));%std函數(shù)是用來(lái)求向量的標(biāo)準(zhǔn)差
end
% %計(jì)算相關(guān)系數(shù)矩陣的特征值和特征向量
CM=corrcoef(SA);%計(jì)算相關(guān)系數(shù)矩陣
[V,D]=eig(CM);%計(jì)算特征值和特征向量
for j=1:b
DS(j,1)=D(b+1-j,b+1-j);%對(duì)特征值按降序排列
end
for i=1:b
DS(i,2)=DS(i,1)/sum(DS(:,1));%貢獻(xiàn)率
DS(i,3)=sum(DS(1:i,1))/sum(DS(:,1));%累計(jì)貢獻(xiàn)率
end
% % 選擇主成分及對(duì)應(yīng)的特征向量
T=0.9;%主成分信息保留率
for k=1:b
if DS(k,3)>=T
Com_num=k;
break;
end
end
%提取主成分對(duì)應(yīng)的特征向量
for j=1:Com_num
PV(:,j)=V(:,b+1-j);
end
% % 計(jì)算各評(píng)價(jià)對(duì)象的主成分得分
new_score=SA*PV;
for i=1:a
total_score(i,1)=sum(new_score(i,:));
total_score(i,2)=i;
end
result_report=[new_score,total_score];%將各主成分得分與總分放在同一個(gè)矩陣中
result_report=sortrows(result_report,-4);%按總分降序排序
% % 輸出模型及結(jié)果報(bào)告
disp("特征值及其貢獻(xiàn)率,累加貢獻(xiàn)率:")
DS
disp("信息保留率T對(duì)應(yīng)的主成分?jǐn)?shù)與特征向量:")
Com_num
PV
disp("主成分得分及排序(按第四列的總分進(jìn)行排序,前三列為個(gè)主成分得分,第五列為企業(yè)編號(hào))")
result_report
總結(jié)
以上是生活随笔為你收集整理的matlab 主成分 分类,matlab主成分分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jmeter执行python脚本,Jme
- 下一篇: matlab仿真图片png,Simuli