首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用MDP进行因子分析

在Python中使用MDP进行因子分析
EN

Stack Overflow用户
提问于 2011-05-20 10:46:32
回答 2查看 1.9K关注 0票数 1

请原谅我的无知,我对Python非常陌生。我正在尝试使用MDP在Python中执行因子分析(如果有更好的解决方案,我可以使用其他库)。

我有一个m乘n的矩阵(称为矩阵),我试着这样做:

代码语言:javascript
复制
import mdp
mdp.nodes.FANode()(matrix)

但是我得到了一个错误。我猜可能是我的矩阵没有正确形成?我的目标是找出数据中有多少个组件,并找出哪些行加载到哪些组件上。

下面是回溯:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "mdp/signal_node.py", line 630, in __call__
    return self.execute(x, *args, **kwargs)
  File "mdp/signal_node.py", line 611, in execute
    self._pre_execution_checks(x)
  File "mdp/signal_node.py", line 480, in _pre_execution_checks
    self.train(x)
  File "mdp/signal_node.py", line 571, in train
    self._check_input(x)
  File "mdp/signal_node.py", line 429, in _check_input
    if not x.ndim == 2:
AttributeError: 'list' object has no attribute 'ndim'

有没有人知道这是怎么回事,想给Python新手解释一下?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-20 20:56:15

我完全没有使用mdp的经验,但看起来它希望您的矩阵作为Numpy数组传递,而不是列表。Numpy是一个用于高性能科学计算的软件包。您可以转到Numpy home page并安装它。这样做之后,尝试将您的代码修改为:

代码语言:javascript
复制
import mdp, numpy
mdp.nodes.FANode()(numpy.array(matrix))
票数 4
EN

Stack Overflow用户

发布于 2011-06-07 15:58:27

正如Stephen所说,数据必须是numpy数组。更准确地说,它必须是一个二维数组,第一个索引表示不同的样本,第二个索引表示数据维度(这里使用错误的顺序可能会导致“奇异矩阵”错误)。

您还应该看看MDP documentation,它可以回答您的所有问题。如果这还不能解决问题,这里有MDP用户邮件列表。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6066974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档