Факторный анализ с использованием MDP в Python - PullRequest
1 голос
/ 20 мая 2011

Извините за мое невежество, я очень плохо знаком с Python.Я пытаюсь выполнить факторный анализ в Python с использованием MDP (хотя я могу использовать другую библиотеку, если есть лучшее решение).

У меня есть матрица m на n (называемая матрицей), и я попытался сделать:1003 *

import mdp
mdp.nodes.FANode()(matrix)

но я получаю сообщение об ошибке.Я предполагаю, что, возможно, моя матрица сформирована неправильно?Моя цель - выяснить, сколько компонентов содержится в данных, и выяснить, какие строки загружают в какие компоненты.

Вот обратная связь:

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?

Ответы [ 2 ]

4 голосов
/ 07 июня 2011

Как сказал Стивен, данные должны быть массивом.Точнее, это должен быть двумерный массив с первым индексом, представляющим различные выборки, а вторым индексом, представляющим измерения данных (использование неправильного порядка здесь может привести к ошибке «особой матрицы»).также взгляните на документацию MDP , которая должна ответить на все ваши вопросы.Если это не помогает, есть список рассылки пользователей MDP.

4 голосов
/ 20 мая 2011

У меня абсолютно нет опыта работы с mdp, но похоже, что он ожидает, что ваши матрицы будут переданы как массив Numpy вместо списка. Numpy - это пакет для высокопроизводительных научных вычислений. Вы можете перейти на домашнюю страницу Numpy и установить ее. После этого попробуйте изменить код следующим образом:

import mdp, numpy
mdp.nodes.FANode()(numpy.array(matrix))
...