在二级MATLAB的pca上设计新点

问题描述 投票:1回答:1

我正在尝试使用PCA来可视化我的k-means算法的实现。我正在关注this link中关于主成分系数,分数和方差的教程。

我使用以下命令:[coeff,score,~]=pca(X');其中X是我的数据。

我的数据是30乘455矩阵,即30个特征,455个样本。我已成功使用score参数创建2D图以用于可视化目的。现在我希望将30维中心投射到那个平原上。我试过coeff*centers(:,1),但我不明白这是否正确用法。

如何将新的30维点投影到第一个与第二个pca组件的2D?

matlab k-means pca
1个回答
2
投票

我假设通过centers(:, 1)你表示一个新的观察。要在主要组件中表达这种观察,你应该写

[coeff, score, ~, ~, ~, mu]=pca(X');   %return the estimated mean "mu"
tmp = centers(:, 1) - mu';   %remove mean since pca() by default centers data
coeff' * tmp;   % the new observation expressed in the principal components

请注意,您必须减去均值,因为pca()默认将数据居中。另外,请注意cosff上的转置'。事实上它应该是inv(coeff),但由于coefforthogonal matrix,我们可以使用转置。

© www.soinside.com 2019 - 2024. All rights reserved.