主成分分析计算步骤:
1、计算协方差矩阵
2、求出相应的特征值及相应的正交化单位向量
3、选择主成分
4、计算主成分载荷
5、计算主成分得分
clearclose all
%%%%%%%%%%%%%%%%%%%%%%%%%生成实验数据集
rand('state',0)
sigma_matrix1=eye(2)
sigma_matrix2=50*eye(2)
u1=[0,0]
u2=[30,30]
m1=100
m2=300%样本数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm1数据集
Y1=multivrandn(u1,m1,sigma_matrix1)
Y2=multivrandn(u2,m2,sigma_matrix2)
scatter(Y1(:,1),Y1(:,2),'bo')
hold on
scatter(Y2(:,1),Y2(:,2),'r*')
title('SM1数据集')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm2数据集
u11=[0,0]
u22=[5,5]
u33=[10,10]
u44=[15,15]
m=600
sigma_matrix3=2*eye(2)
Y11=multivrandn(u11,m,sigma_matrix3)
Y22=multivrandn(u22,m,sigma_matrix3)
Y33=multivrandn(u33,m,sigma_matrix3)
Y44=multivrandn(u44,m,sigma_matrix3)
figure(2)
scatter(Y11(:,1),Y11(:,2),'bo')
hold on
scatter(Y22(:,1),Y22(:,2),'r*')
scatter(Y33(:,1),Y33(:,2),'go')
scatter(Y44(:,1),Y44(:,2),'c*')
title('SM2数据集')
end
function Y = multivrandn(u,m,sigma_matrix)
%%生成指定均值和协方差矩阵的高斯数据
n=length(u)
c = chol(sigma_matrix)
X=randn(m,n)
Y=X*c+ones(m,1)*u
end