matlab princomp,princomp 与pca的区别与联系

在网上下到一个程序:

里面有个函数是princomp  可能是因为matlab 版本的问题:

我的matlab(14a) 只能支持pca,但是要把princomp  转成pca 貌似还是需要一点小技巧的:

参考博客:http://www.cnblogs.com/haore147/p/3630002.html

princomp  的用法为:

[COEFF,SCORE,latent,tsquare] = princomp(X)

我们以

X=[ 7    26     6    60

1    29    15    52

11    56     8    20

11    31     8    47

7    52     6    33

11    55     9    22

3    71    17     6

1    31    22    44

2    54    18    22

21    47     4    26

1    40    23    34

11    66     9    12

10    68     8    12]

因为后面的主要是使用了score ,所以我们的目的是找出来怎么样 利用pca 函数算出来score

在晚上找出来的计算方法:

COEFF(T)为特征向量矩阵 SCORE(Y)为得分矩阵 LATENT(R)为特征值矩阵 X的方差协方差矩阵为S,则

S=cov(x)

那么S 的结果为:

S=[

34.6026   20.9231  -31.0513  -24.1667

20.9231  242.1410  -13.8782 -253.4167

-31.0513  -13.8782   41.0256    3.1667

-24.1667 -253.4167    3.1667  280.1667

]T*R*T'=S, T'*S*T=R Y=T'*X

[U,mu,vars]=pca(X)  我们得到的结果是:

U =

0.1289    0.5651    0.2445   -0.0000

0.1453    0.4630   -0.1598   -0.0000

0.3097   -0.0673    0.1482   -0.0000

0.1418    0.3611    0.2336   -0.0000

0.3035    0.1325    0.1598   -0.0000

0.3000   -0.0418    0.1283   -0.0000

0.4139   -0.2805   -0.3149    0.0000

0.1384    0.3390   -0.3772    0.0000

0.3007   -0.0152   -0.3150    0.0000

0.2236    0.0005    0.4952   -0.0000

0.1959    0.1787   -0.4359    0.0000

0.3738   -0.2076    0.0979    0.0000

0.3939   -0.2079    0.1040         0

此处的U 即使 princomp 里面的 score 。

但是我们发现其实 score 的值与PCA 求出来的U 的值不是一样的。

score =

36.8218 -6.8709 -4.5909 0.3967

29.6073 4.6109 -2.2476 -0.3958

-12.9818 -4.2049 0.9022 -1.1261

23.7147 -6.6341 1.8547 -0.3786

-0.5532 -4.4617 -6.0874 0.1424

-10.8125 -3.6466 0.9130 -0.1350

-32.5882 8.9798 -1.6063 0.0818

22.6064 10.7259 3.2365 0.3243

-9.2626 8.9854 -0.0169 -0.5437

-3.2840 -14.1573 7.0465 0.3405

9.2200 12.3861 3.4283 0.4352

-25.5849 -2.7817 -0.3867 0.4468

-26.9032 -2.9310 -2.4455 0.4116

我就把U暂时代替score。

score 与 U 之间有什么关系. 需要进一步探究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值