matlab如何实现主成分分析?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 20:32:25

matlab如何实现主成分分析?

function [lambda,T,fai]=MSA2(A)
%求标准化后的协差矩阵,再求特征根和特征向量
%标准化处理
[p,n]=size(A);
for j=1:n
mju(j)=mean(A(:,j));
sigma(j)=sqrt(cov(A(:,j)));
end
for i=1:p
for j=1:n
Y(i,j)=(A(i,j)-mju(j))/sigma(j);
end
end
sigmaY=cov(Y);
%求X标准化的协差矩阵的特征根和特征向量
[T,lambda]=eig(sigmaY);
Xsum=sum(sum(lambda,2),1);
for i=1:n
fai(i)=lambda(i,i)/Xsum;
end
%方差贡献率