python-3.x - 使用 Python3.x 创建贝叶斯网络并学习参数

标签 python-3.x machine-learning scikit-learn probability bayesian-networks

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

1年前关闭。




Improve this question




我正在为 Windows 上的 python3.x 寻找最合适的工具来创建贝叶斯网络,从数据中学习其参数并执行推理。

我想自己定义的网络结构如下:
enter image description here

取自 this纸。

除了“Size”和“GraspPose”之外,所有变量都是离散的(只能采用两种可能的状态),它们是连续的,应该建模为高斯混合。

作者使用期望最大化算法来学习条件概率表的参数和连接树算法来计算精确的推理。

据我所知,Murphy 在 MatLab 中使用 Bayes Net Toolbox 实现了所有功能。

我试图在 python 中搜索类似的东西,这是我的结果:

  • Python 贝叶斯网络工具箱 http://sourceforge.net/projects/pbnt.berlios/ (http://pbnt.berlios.de/)。网站不工作,项目似乎不被支持。
  • 贝叶斯https://github.com/bayespy/bayespy
    我认为这是我真正需要的,但我找不到一些与我的案例相似的例子,以了解如何处理网络结构的构建。
  • PyMC 似乎是一个强大的模块,但我在 Windows 64、python 3.3 上导入它时遇到问题。安装开发版时出现错误

    警告(theano.configdefaults):未检测到 g++! Theano 将无法执行优化的 C 实现(针对 CPU 和 GPU),并将默认使用 Python 实现。性能会严重下降。要删除此警告,请将 Theano flags cxx 设置为空字符串。

  • 更新:
  • libpgm (http://pythonhosted.org/libpgm/)。正是我需要的,不幸的是 python 3.x 不支持
  • 非常有趣的积极开发库:PGMPY。不幸的是,还不支持连续变量和从数据中学习。 https://github.com/pgmpy/pgmpy/

  • 任何建议和具体示例将不胜感激。

    最佳答案

    看起来像 pomegranate最近更新以包括贝叶斯网络。我自己没有尝试过,但界面看起来不错,而且是 sklearn-ish。

    关于python-3.x - 使用 Python3.x 创建贝叶斯网络并学习参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28431350/

    相关文章:

    python - 将列插入数据框而不修改原始框架

    Python:有没有一种线程安全的方法来知道lock.acquire()是否已阻塞(并继续阻塞)?

    python - 为什么生成随机数时迭代次数很重要?

    java - 如何使用算法对未知短信进行分组?

    python - sklearn.linear_model.SGDClassifier 中损失函数的精确定义

    python - 来自 scikits cross_val_score 的所有类别的 f1 分数

    python - 在不失去值(value)重要性的情况下进行扩展 Python Sklearn

    machine-learning - 如何使用 tensorflow 实现这个神经网络架构?

    python - 集成 10 倍模型

    python - 如何在 pandas 数据帧上使用 sklearn TFIdfVectorizer