Я ищу наиболее подходящий инструмент для python3.x для Windows, чтобы создать Bayesian Network, узнать его параметры из данных и выполнить вывод.
Я хочу определить структуру сети следующим образом:
Из этот документ.
Все переменные дискретны (и могут принимать только 2 возможных состояния), за исключением "Размер" и "GraspPose", которые являются непрерывными и должны быть смоделированы как смесь гауссиан.
Авторы используют алгоритм ожидания-максимизации, чтобы узнать параметры для таблиц условной вероятности и алгоритм Junction-Tree для вычисления точного вывода.
Как я понимаю, все реализовано в MatLab с помощью Bayes Net Toolbox от Murphy.
Я попытался найти что-то подобное в python, и вот мои результаты:
- Python Bayesian Network Toolbox http://sourceforge.net/projects/pbnt.berlios/ (http://pbnt.berlios.de/). Веб-сайт не работает, проект, похоже, не поддерживается.
- BayesPy https://github.com/bayespy/bayespy Я думаю, что это то, что мне действительно нужно, но я не могу найти некоторые примеры, подобные моему делу, чтобы понять, как подойти к построению сетевой структуры.
-
PyMC кажется мощным модулем, но у меня проблемы с импортом его в Windows 64, python 3.3. Я получаю ошибку при установке версии разработки
ПРЕДУПРЕЖДЕНИЕ (theano.configdefaults): g++ не обнаружено! Theano не сможет выполнить оптимизированные C-реализации (как для CPU, так и для GPU) и по умолчанию будет реализовывать Python. Производительность будет сильно ухудшена. Чтобы удалить это предупреждение, установите флаги Theano cxx в пустую строку.
UPDATE:
- libpgm (http://pythonhosted.org/libpgm/). То, что мне нужно, к сожалению, не поддерживается python 3.x
- Очень интересная активно развивающаяся библиотека: PGMPY. К сожалению, непрерывные переменные и обучение по данным еще не подтверждены. https://github.com/pgmpy/pgmpy/
Любые советы и конкретные примеры будут высоко оценены.