任务二:主成分分析:步骤、应用及代码实现。代码可以用任何你熟悉的编程语言。

Ida ·
更新时间:2024-11-10
· 966 次阅读

任务二:主成分分析:步骤、应用及代码实现。代码可以用任何你熟悉的编程语言。

主成分分析是将多指标化为少数几个综合指标的一种统计分析方法,这种降维的技术而生成的主成分,能够反映原始变量的绝大部分信息,通常表示为原始变量的线性组合。PCA的思想是将n维特征映射到m维上(m<n),这m维是全新的正交特征,称为主成分,这m维的特征是重新构造出来的,不是简单的从n维特征中减去n-m维特征。PCA的核心思想就是将数据沿最大方向投影,数据更易于区分。

PCM降维步骤:

1.我们一般选择一行是一个特征,对每个特征求平均值;原来的数据减去平均值得到新的中心化之后的数据;

2.求特征协方差矩阵;

3.根据协方差矩阵,求特征值与特征向量

4.对特征值按照降序的顺序排列,相应的也给出特征向量,选择几个主成分,求投影矩阵。

5.根据投影矩阵求出我们降维后的数据。

PCM的应用:

主成分分类

根据主成分分析,通过散点图可以看出,对于不同的指标,将会聚集在一起,故可以进行分类

主成分回归

对自变量出现多重共性的时候,主成分分析能够克服经典回归的不足

matlab代码实现

步骤:

1.把数据中心化

2.求特征协方差矩阵

3.求协方差矩阵的特征值和特征向量

4.将特征值从小到大排序,取最大的k个值,然后把对应的特征向量分别作为列向量组成特征矩阵K

5.把样本点投射到选定的选取的特征向量K

all;

close all;

X=[2.5 2.4;

0.5 0.7;

2.2 2.9;

1.9 2.2;

3.1 3.0;

2.3 2.7;

2 1.6;

1 1.1;

1.5 1.6;

1.1 0.9;];

X=X’

% X=[74 87
84 88 74 86 69 73 64;

%
85 83 83 77 69 84 74 85 84;

%
83 91 89 85 87 86 83 86 85;

%
69 100 82 96 84 82 97 98 76;

%
97 48 89 36 46 53 88 89 97;

%
59 98 93 94 98 100 79 83 61;];

% X=X’;

% X=[2 0
-1.4;

%
2.2 0.2 -1.5;

%
2.4 0.1 -1;

%
1.9 0 -1.2;];

% X=X’;

[a,b]=size(X);

M=sum(X)/a;

for i=1:b

B(:,i)=X(:,i)-M(i); %B=zscore(X);

end

S=1/(a-1)BB’;

[vector,value]=eig(S);

vector

value=diag(value)

varine=sum(value);

[value_sort,subscript]=sort(value,‘descend’);

value_sort;

subscript;

value_sort=value_sort/sum(value_sort);

compare=0;

sign=0;

for i=1:b

if compare<0.9 sign=sign+1; compare=compare+value_sort(i); end

end

for i=1:sign

P(:,i)=vector(:,subscript(i));

end

P

D=zeros(sign,sign);

for i=1:sign

D(i,i)=value(subscript(i));

end

D


作者:ManWen_Li



主成分分析 编程语言

需要 登录 后方可回复, 如果你还没有账号请 注册新账号