我正在尝试在矩阵(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()
谢谢!
答案 0 :(得分:1)
pca(x,** kwargs)通过它过滤多维数据输入数据 主要组成部分。
对同一变量的观察存储在不同的行上 变量存储在列上。
这是相应节点node.PCANode的快捷方式。 如果指定了任何关键字参数,则将它们传递给它 构造
这相当于mdp.nodes.PCANode(** kwargs)(x)
要解决此问题,这意味着您将关键字参数发送到PCANode
以设置构造函数,然后使用__call__
方法,根据PCANode
文档,实际上调用execute
method,执行以下操作:
执行(self,x,n = None)
在第一个'n'主体上投射输入 组件。如果未设置“n”,请使用所有可用组件。
所以你得到一个投影矩阵,如上所述(在行上观察相同的变量,在列上观察不同的变量)