function main() %*************主成份分析************ %读入文件数据 X=load('data.txt'); %==========方法1:求标准化后的协差矩阵,再求特征根和特征向量================= %标准化处理 [p,n]=size(X); for j=1:n mju(j)=mean(X(:,j)); sigma(j)=sqrt(cov(X(:,j))); end for i=1:p for j=1:n Y(i,j)=(X(i,j)-mju(j))/sigma(j); end end sigmaY=cov(Y); %求X标准化的协差矩阵的特征根和特征向量 [T,lambda]=eig(sigmaY); disp('特征根(由小到大):'); disp(lambda); disp('特征向量:'); disp(T); %方差贡献率;累计方差贡献率 Xsum=sum(sum(lambda,2),1); for i=1:n fai(i)=lambda(i,i)/Xsum; end for i=1:n psai(i)= sum(sum(lambda(1:i,1:i),2),1)/Xsum; end disp('方差贡献率:'); disp(fai); disp('累计方差贡献率:'); disp(psai); %综合评价....略 %+============方法2:求X的相关系数矩阵,再求特征根和特征向量================ %X的标准化的协方差矩阵就是X的相关系数矩阵 R=corrcoef(X); %求X相关系数矩阵的特征根和特征向量 [TR,lambdaR]=eig(R); disp('特征根(由小到大):'); disp(lambdaR); disp('特征向量:'); disp(TR);
主成份分析
最新推荐文章于 2024-08-11 23:49:39 发布