【问题标题】:Projecting new points on pca of second degree MATLAB在二级MATLAB的pca上投影新点
【发布时间】:2017-12-22 08:52:34
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: matlab k-means pca


    【解决方案1】:

    我假设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() 将数据居中。另外,请注意 coeff 上的转置 '。实际上它应该是inv(coeff),但由于coefforthogonal matrix,我们可以使用转置来代替。

    【讨论】:

    • centers(:, 1) 表示集群的 k-means 中心。我想在 2D 中可视化那个中心在哪里。
    • 如果我在使用 pca 之前已经对数据进行了归一化和居中,我还需要从新点中减去平均值吗?
    • 如果数据已经居中,则不必减去 mu。您可以通过检查 mu 是否为零来验证数据是否居中。 mumean(X') 相同。
    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    相关资源
    最近更新 更多