python数据分析之主成分分析

Python016

python数据分析之主成分分析,第1张

成分分析,又称PCA,是指将多个变量通过线性变换以后选出较少个重要变量的一种多元统计方法。

主成分分析计算步骤:

1、计算协方差矩阵

2、求出相应的特征值及相应的正交化单位向量

3、选择主成分

4、计算主成分载荷

5、计算主成分得分

clear 

close 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