如何在MATLAB中找到PCA的投影矩阵?

时间:2015-01-07 23:53:05

标签: matlab machine-learning data-mining projection pca

我正在尝试使用PCA降低数据的维度。

所以我致电[COEFF, SCORE] = princomp(data);根据this answer,我可以使用SCORE * COEFF' + Mean重建我的数据,并且它可以正常工作。

但我正在尝试找到投影矩阵P,其中任何给定的矢量x都可以转换为其在PCA空间中的投影。

我的直觉告诉我,我应该能够通过以下方式投射x

proj = ((x-m) * inv(C)) + m

其中m是我的数据的平均值。

所以我选择x作为我数据的第一次观察来测试这一点,我希望proj应该非常接近SCORE的第一行。但事实并非如此。

那我在哪里做错了?我怎样才能找到投影矩阵?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

哎呀,现在我看到了我的错误。

首先,COEFF是正交的(不确定)所以inv(COEFF) == COEFF'

,投影由

找到
proj = COEFF' * (x-m)