%資料匯入及處理
clcclear all
a=xlsread('coach.xlsx','b2:h16');
%資料標準化處理
a=size(a,1);
b=size(a,2);
for i=1:b
sa(:,i)=(a(:,i)-mean(a(:,i)))/std(a(:,i));
end%計算相關係數矩陣的特徵值和特徵向量
cm=corrcoef(sa);%計算相關係數矩陣
[v,d]=eig(cm);%計算特徵值和特徵向量
for j=1:b
ds(j,1)=d(b+1-j,b+1-j);%對特徵值按降序進行排序
endfor i=1:b
ds(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:b
if ds(k,3)>=t
com_num=k;
break;
endend%提取主成分對應的特徵向量
for j=1:com_num
pv(:,j)=v(:,b+1-j);
end%計算各評價物件的主成分得分
new_score=sa*pv;
for i=1:a
total_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_num
pvdisp('主成分得分及排序(按第4列的總分進行降序排序,前3列為各主成分得分,第5列為企業編號)')
result_report
MATLAB實現主成分分析 PCA
function ds,com num,pv,new score,new score s pca dr a,t pca dr 主成分降維及分析函式 輸入變數 a 原始資料 未標準化處理 t 設定累積貢獻率的閾值 輸出變數 ds 特徵值及貢獻率 com num 閾值t對應的主成分數 pv 閾值t對應的...
Matlab 主成分分析(PCA)
是一種資料降維方法。保留具有代表性的主成分,捨棄比重較小的成分。演算法步驟 matlab 實現 clear all close all clc load data.mat m,n size x step1 預處理資料。均值標準化 零均值 特徵縮放 x x repmat mean x 50,1 s s...
主成分分析
主成分分析 pca 分析乙個隨機向量的中的主成分 主成分一般不是隨機向量中的某乙個分量,而是不同分量的線性組合,根據資訊理論的觀點,資訊的多少與方差有關,所以 主成分是方差最大的幾個成分 主成分分析的方法是求隨機向量的協方差矩陣 用樣本協方差矩陣代替 對於差異較大的資料,可採用相關矩陣代替協方差矩陣...