python中的PCA,并将前2个组件相互映射

时间:2012-08-24 22:05:42

标签: python pca

我正在尝试在矩阵(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()

谢谢!

1 个答案:

答案 0 :(得分:1)

来自mdp docs on mdp.pca

  

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

     

对同一变量的观察存储在不同的行上   变量存储在列上。

     

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

     

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

要解决此问题,这意味着您将关键字参数发送到PCANode以设置构造函数,然后使用__call__方法,根据PCANode文档,实际上调用execute method,执行以下操作:

  

执行(self,x,n = None)

     

在第一个'n'主体上投射输入   组件。如果未设置“n”,请使用所有可用组件。

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