问题标签 [pgmpy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pgmpy - Pgmpy:贝叶斯推理
我在使用 pgmpy 进行贝叶斯推理时遇到了一些困难,因为我是对变量和证据的推理,我在目标变量的所有值上输出均匀分布的概率。我正在对注释使用变量消除推断。我想知道数据的可变性导致均匀分布的问题。任何建议都会有很大帮助!先感谢您
python - 使用 Kevin Murphy 的贝叶斯网络工具箱学习稀疏数据
我在使用通过Kevin Murphy 的贝叶斯网络工具箱(以下简称 BNT)训练的贝叶斯网络中学习到的参数时遇到问题。
最终,我想将训练后的参数导出到 Python 中的另一个包,例如pgmpy。当我这样做时,我注意到局部条件属性的总和不等于一。实际上,如果尝试使用贝叶斯网络进行预测,但不满足此条件,则 pgmpy 会引发错误。
我认为这是由于在稀疏数据上使用 BNT 学习参数造成的,其中一些变量的估值实际上并未出现在数据中。最初,我使用期望最大化和连接树算法训练一个带有隐藏变量的复杂网络遇到了这个问题。但是,我可以使用简单的马尔可夫链和最大似然估计 (MLE) 重现相同的问题。在这个例子中,我们定义了一个网络来采样一些测试数据。然后我们创建该网络的新版本,该版本具有不会出现在测试数据中的新“虚构”状态。
所以我的问题是:
- BNT 工作正常吗?我不是要在稀疏数据上训练它吗?
- 如果我想将这些参数加载到另一个包中,我可以将这些“空”分布设置为均匀,即所有系数 1/n,其中 n 是变量可以采用的状态数?
PS 我觉得麻烦的一件事是,如果学习是以小批量方式进行的,那么学习过程似乎会完全忘记一些局部条件概率,只是因为数据集中没有出现特定值。
python - 使用 PGMPY 推理,我得到了所有值的均匀分布概率的输出。有人可以向我解释为什么吗?
我已经离散化了我的数据,因为它是大数据,但是当我进行推理时,我总是有一个均匀的分布,有人可以向我解释为什么吗?
python - 在 pgmpy 的 map_query 中查找单次出现的概率
我正在研究一个看起来像这样的贝叶斯网络
我想找到 P(+j|-e) 的概率,这意味着在给定地震的情况下找到 JohnCalls 为真的概率是错误的。这是我编写的包含网络的代码
我得到以下输出
我得到答案作为输出,但我认为 +j 意味着只输出 JohnCalls(1)
我正在提交它,但它仍然显示格式错误的反馈错误,这意味着我的代码中有一些错误。代码正在编译,我得到了输出,但我认为它不是预期输出的形式,因此反馈格式错误。
有没有其他方法可以只提取 JohnCalls(1)。任何帮助将不胜感激
python-3.x - 如何使用 pgmpy 获取贝叶斯网络中新事件的概率?
我已经使用 pgmpy 库训练了一个贝叶斯网络。我希望找到一个新事件的联合概率(作为给定其父母的每个变量的概率的乘积,如果有的话)。
目前我正在做
这x_test
是测试数据框。
这result
是非常大的输出,包含所有训练数据及其概率的组合。
请帮助我了解如何找出新事件的概率(即测试数据中的一行)。概率表达式为P(data_devicetype, data_username, data_applicationtype, event_type, servicename, data_applicationname, tenantname, data_origin, geoip_country_name)
python - 如何从 pgmpy 打印打印的完整 cpd?
我试图让贝叶斯网络的保险数据表示中的示例起作用。请参阅最大似然估计部分。我从 R 中的 bnlearn 包中获得的数据,然后将其上传到我的谷歌驱动器。数据
下图显示......我相信这显示了缺失的列。如何修复代码以显示正确的信息?
注1:从R获取数据的代码
注意 2:如果你在 colab 中运行它,你需要安装包
python - 将 pgmpy infer_non_adjust.query 与 tkinter 一起使用
我正在尝试创建一个允许自定义infer_non_adjust.query()
功能的 Tkinter GUI。
我的意思是使用下拉菜单来选择不同的证据,然后单击运行将运行“新”功能。
这是我遇到错误消息的代码,目前我只是测试它以查看它是如何工作的。但是它似乎无法识别 variable.get,只需在主函数中替换视图而不是 variable.get 就可以正常工作。
我收到以下错误:
任何有关此操作或替代方法的帮助将不胜感激,感谢您的时间。