【发布时间】:2017-02-26 15:45:45
【问题描述】:
我正在将Simple Bayesian Network via Monte Carlo Markov Chain 的示例从PyMC2 移植到PyMC3,它可以工作。
结果可以在GitHub上的pymc3_rain_sprinkler_grass_simple_bayesian_network.py.文件pymc3_rain_sprinkler_grass_simple_bayesian_network.py.
我想通过提供证据来扩展原始示例,例如草是湿的,然后让PyMC3 给我回答“如果草是湿的,下雨的概率是多少?”。
似乎生成的跟踪是“恒定的”,例如它不再有随机性的元素。查看要点中的pymc3_rain_sprinkler_grass_simple_bayesian_network_with_evidence.py 并执行df.drop_duplicates() 以了解我的意思。
我做错了什么?
【问题讨论】:
-
我已经用
PyMC2中的相同代码更新了要点。PyMC2版本不会遇到与 PyMC3 版本相同的问题。有什么想法吗? -
在pymc3-multiple-observed-values 中,我发现了以下声明:“除了任何贝叶斯 MCMC 分析的缺陷外,您的方法没有任何根本性错误:(1) 不收敛,(2)先验,(3)模型。”我认为我这里的情况是类似的情况,我将继续调整解决方案。如果我提供草不湿而不是草湿的证据,
PyMC3版本也可以。我将继续在这里和要点中更新我的发现。