我正在为 Windows 上的 python3.x 寻找最合适的工具来创建贝叶斯网络,从数据中学习其参数并执行推理。
The network structure I want to define myself as follows:
它取自this https://ieeexplore.ieee.org/document/6697180 paper.
除了“Size”和“GraspPose”之外,所有变量都是离散的(并且只能采用 2 种可能的状态),它们是连续的,应建模为高斯混合。
作者使用期望最大化算法学习条件概率表的参数和连接树算法计算精确的推论。
据我了解,所有这些都是通过 Murphy 的贝叶斯网络工具箱在 MatLab 中实现的。
我尝试在 python 中搜索类似的内容,这是我的结果:
-
Python 贝叶斯网络工具箱http://sourceforge.net/projects/pbnt.berlios/ http://sourceforge.net/projects/pbnt.berlios/ (http://pbnt.berlios.de/ http://pbnt.berlios.de/)。网站无法运行,项目似乎不受支持。
-
BayesPy https://github.com/bayespy/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/ http://pythonhosted.org/libpgm/)。正是我需要的,不幸的是 python 3.x 不支持
- 非常有趣的积极开发库:PGMPY。不幸的是,尚不支持连续变量和从数据中学习。https://github.com/pgmpy/pgmpy/ https://github.com/pgmpy/pgmpy/
任何建议和具体例子将受到高度赞赏。
看起来像石榴 https://github.com/jmschrei/pomegranate最近更新为包括贝叶斯网络。我自己还没有尝试过,但界面看起来不错,而且很像 sklearn 风格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)