您的位置:首页 > 其它

princomp 与pca的区别与联系

2015-04-24 10:42 1121 查看
在网上下到一个程序:

里面有个函数是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 之间有什么关系. 需要进一步探究。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: