PCA 小代码 仅做一下小的测试 了解PCA的功能 将2维数据降成一维后 与原数据对比
Row=2;
Col=10;
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.';
average=zeros(Row,1);
for m=1:Row
average(m)=sum(X(m,:))/Col;
end
XX=zeros(Row,Col);
for n=1:Col
XX(:,n)=X(:,n)-average;
end
S=XX*XX'/(Col-1);
[V,D]=eig(S);
% 是否去掉比较小的特征根对应的特征向量上的信息
% V(1,1)=0;
% V(2,1)=0;
Y=V'*XX
YY=V*Y
Col=10;
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.';
average=zeros(Row,1);
for m=1:Row
average(m)=sum(X(m,:))/Col;
end
XX=zeros(Row,Col);
for n=1:Col
XX(:,n)=X(:,n)-average;
end
S=XX*XX'/(Col-1);
[V,D]=eig(S);
% 是否去掉比较小的特征根对应的特征向量上的信息
% V(1,1)=0;
% V(2,1)=0;
Y=V'*XX
YY=V*Y