0

我试图在矩阵 (C) 上执行 PCA,其中每一列代表不同的时间点,每一行代表一个特征,我试图找到顶部的主成分并将它们相互绘制。我正在使用 mdp 模块,如果该模块返回矩阵,其中每一行代表一个主成分,其中最重要的成分按降序排列,我会感到困惑。

import mdp
C=mdp.pca(C)
print C

import matplotlib.pyplot as plt

plt.plot(C[2,:C.shape[1]], C[1,:C.shape[1]], 'r*')
plt.show()

谢谢!

4

1 回答 1

1

来自mdp.pca 上的 mdp 文档:

pca(x, **kwargs) 通过其主成分过滤多维输入数据。

相同变量的观察值存储在行上,不同的变量存储在列上。

这是对应节点nodes.PCANode的快捷函数。如果指定了任何关键字参数,则将它们传递给其构造函数。

这相当于 mdp.nodes.PCANode(**kwargs)(x)

为了打破这一点,这意味着您将关键字参数发送到PCANode以设置构造函数,然后使用它的__call__方法,根据PCANode文档,该方法实际上调用了它的execute方法,它执行以下操作:

执行(自我,x,n=无)

将输入投影到前“n”个主成分上。如果未设置“n”,则使用所有可用组件。

所以你得到一个投影矩阵,如上所述(行上相同变量的观察,列上不同变量的观察)

于 2012-08-25T00:12:55.903 回答