pca主成分分析matlab实现(2维降到1维)

 1 x_avr=0;
 2 y_avr=0;
 3 x=1:1:50;
 4 for i=1:1:50
 5     y(i)=x(i)+2*(rand-1);
 6 end
 7 subplot(2,1,1);
 8 plot(x,y,'*b');
 9 axis([0 50 0 50 ]);
10 for i=1:50
11     x_avr=x_avr+x(i);
12     y_avr=y_avr+y(i);
13 end
14 x_avr=x_avr/50;
15 y_avr=y_avr/50;
16 for i=1:50
17     sig(1)=(x(i)-x_avr)*(x(i)-x_avr);
18     sig(2)=(x(i)-x_avr)*(y(i)-y_avr);
19     sig(3)=sig(2);
20     sig(4)=(y(i)-y_avr)*(y(i)-y_avr);
21 end
22 sig=sig/50;
23 sigma=[sigma(1),sig(2);sig(3),sig(4)];
24 d=[0 0 ; 0 0];
25 v=[0 0 ; 0 0];
26 [v,d]=eig(sigma);
27 
28 %科学技术是第一生产力啊
29 %旋转数据
30 d
31 u2=[v(1,1);v(2,1)]%特征向量是列向量
32 u1=[v(1,2);v(2,2)]
33 for i=1:50
34     xr(i)=u1'*[x(i);y(i)];
35     yr(i)=u2'*[x(i);y(i)]; 
36 end
37 subplot(2,1,2);
38 plot(xr,yr,'*b');
39 axis([-100 100 -100 100])
View Code

 

转载于:https://www.cnblogs.com/cezorzhao/archive/2013/05/27/3100831.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值