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

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

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

PCM降维步骤:

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

2.求特征协方差矩阵;

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

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

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

PCM的应用:

  1. 主成分分类
    

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

  2. 主成分回归
    

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

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

发布了2 篇原创文章 · 获赞 0 · 访问量 141

猜你喜欢

转载自blog.csdn.net/ManWen_Li/article/details/104383678