我有一个大小为A
的数据矩阵N-by-M
。
我希望使用PCA
来减少维数。我想将尺寸设置为' k
'。
据我所知,在提取特征后,我应该得到一个Nxk矩阵。
我已尝试pcares
如下,
[residuals,reconstructed] = pcares(A,k)
但这对我没有帮助。
我也在尝试使用博士工具箱(here)
这会返回k-by-k
矩阵。我该如何进一步处理?
任何帮助都将不胜感激。
谢谢
答案 0 :(得分:2)
pcares
给出残差,这是用重建输入减去输入时的误差。您可以使用pca
命令。它返回一个MxM
矩阵,其列是主要组件。您可以使用它们的第一个k
来构建该功能,只需执行以下操作即可
X = bsxfun(@minus, A, mean(A)) * coeff(:, 1:k);
,其中coeff
是从pca
命令返回的内容。使用bsxfun
的函数调用会减去均值(数据居中,因为这是pca
在计算输出coeff
时所做的事情。)