【问题标题】:MATLAB perform PCA on the correlation matrixMATLAB 对相关矩阵执行 PCA
【发布时间】:2015-06-11 16:05:33
【问题描述】:

据我了解,PCA 是在协方差矩阵上执行的。有没有办法改用相关矩阵? latent 输出是否对应特征值?

【问题讨论】:

  • 根据该链接,“潜在”变量输出“主成分方差” - 所以不,它不会输出所有特征值,除非我猜它们都相等。至于相关矩阵,我不太确定你的意思——但我猜你的意思是在两组数据之间,我不确定你为什么要这样做。你当然可以这样做,但我不清楚这种事情的含义以及你将如何处理这些信息。你能解释更多吗?
  • @ABC 你知道我怎样才能得到特征值吗?
  • 取决于你的特征值是什么以及你想用它们做什么。通常,PCA 用于减少数据集中的特征数量——通过数据的协方差或奇异值分解来找到该数据的特征值——这会告诉你哪些特征贡献了最多的信息——然后你将所有的较小的特征值,因此减少了特征。如果你想要数据的特征值,你可以做一个 SVD 并以这种方式得到它们。或者您可以将 eig 与 X(正方形)或 X^TX(否则)一起使用。我认为你需要更多地解释你的目标是什么。
  • @ABC 感谢您的回答。我会尝试更好地解释自己:我最近从 SPSS 迁移到 MATLAB。问题是,在 SPSS 中运行 PCA 时,我试图获得与在 MATLAB 中相同的结果。但结果不同。这是SPSS中的过程图片imgur.com/e4cW7iA
  • 好的,这澄清了一些事情:)我不确定为什么两者的结果不同,但我通过一些挖掘发现相关性是标准化数据的协方差矩阵 - 它重新调整和移动 -这样就可以回答您最初的问题,您可以查找这些详细信息并进行相同的标准化。如果您要比较两个程序中的协方差方法,原因可能是实现可能会有所不同。您可以通过在 cmd 中键入“edit ”来查看 matlab 版本。抱歉,我帮不上忙。

标签: matlab pca


【解决方案1】:

虽然这是一篇相当老的帖子,但我发现可以通过指定名称-值对 'VariableWeights','variance' 将其设置为基于相关矩阵计算 PCA。可以参考pca-VariableWeights

【讨论】:

    猜你喜欢
    • 2012-11-15
    • 2016-02-09
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    相关资源
    最近更新 更多