PCA缩放和中心文档错误?

13次浏览(最近30天)
Ari保罗
Ari保罗 2015年3月24日
回答: 骑自行车的人 2019年6月26日
pca()文档说原始数据自动集中在过程的开始。如果为真,那么pca(X)应该等于pca(Y),其中Y =居中数据。但它们不是(具体数据如下)。此外,当我使用eig()或svd()来计算主成分时,我只能在使用pca()之前手动居中数据时得到它们来匹配主成分输出。归根结底,我的问题只是如何正确计算原始数据的主要成分?即,我是否需要手动居中和缩放它首先?只有手动中心吗?只有手动规模?
样本数据:X =
1.0000 -3.0000 -1.0000;2.0000 -2.0000 -0.5000;3.0000 -0.5000 0.2500;4.0000 2.0000 1.0000;5.0000 5.0000 2.5000;
定心X -> Y= -2.000 -3.3000 -1.4500;-1.0000 -2.3000 -0.9500;0 -0.8000 - -0.2000;1.0000 1.7000 0.5500;2.0000 4.7000 2.0500;
pca(X) = -0.7360 -0.6037 -0.3062;-0.6688 0.7186 0.1907;-0.1049 -0.3452 0.9327;
pca (Y) =
0.4058 0.8414 0.3569
0.9124 -0.3960 -0.1036
0.0542 0.3676 -0.9284
svd(Y) = 0.4058 0.9124 0.0542;0.8414 -0.3960 0.3676;0.3569 -0.1036 -0.9284;
eig(cov(Y)) = 0.0542 0.9124 0.4058;0.3676 -0.3960 0.8414;-0.9284 -0.1036 0.3569;这是相同的输出,只是顺序不同。

答案(2)

Sagar
Sagar 2015年8月9日
你有点搞错了。当您执行PCA(Y)时,默认情况下,PCA再次居中数据。因此,如果你想获得与PCA(X)相同的值,使用'centered', 'off'名称-值对选项:现在它肯定等于PCA(X)

骑自行车的人
骑自行车的人 2019年6月26日
回答了无数年后的问题,因为我在自己的研究中发现了这个。
X = [1.0000 -3.0000 -1.0000;2.0000 -2.0000 -0.5000;3.0000 -0.5000 0.2500;4.0000 2.0000 1.0000;5.0000 5.0000 2.5000);
Y = X -均值(X);
pca (X)
pca (Y)
两者都给我相同的PCA结果,在MATLAB在线(当我回答这个问题时)。
所以,要么是有问题解决了,要么就是你犯了个错误。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!