主成分分析Matlab實現

2021-07-04 18:31:23 字數 1130 閱讀 2580

%資料匯入及處理

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 分析乙個隨機向量的中的主成分 主成分一般不是隨機向量中的某乙個分量,而是不同分量的線性組合,根據資訊理論的觀點,資訊的多少與方差有關,所以 主成分是方差最大的幾個成分 主成分分析的方法是求隨機向量的協方差矩陣 用樣本協方差矩陣代替 對於差異較大的資料,可採用相關矩陣代替協方差矩陣...