首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变量消除inference.map_query误差的BayesianModel算法

变量消除inference.map_query误差的BayesianModel算法
EN

Stack Overflow用户
提问于 2019-12-05 11:18:14
回答 1查看 730关注 0票数 1

我试图计算对给定证据的变量的地图查询。

代码语言:javascript
复制
from pgmpy.inference import VariableElimination
from pgmpy.models import BayesianModel
import numpy as np
import pandas as pd
values = pd.DataFrame(np.random.randint(low=0, high=2, size=(1000, 5)),
                       columns=['A', 'B', 'C', 'D', 'E'])
model = BayesianModel([('A', 'B'), ('C', 'B'), ('C', 'D'), ('B', 'E')])
model.fit(values)
inference = VariableElimination(model)
phi_query = inference.map_query(['A', 'B'], evidence= {'B':1})

这给了我一个错误:

代码语言:javascript
复制
Finding Elimination Order: : 100%|██████████| 3/3 [00:00<00:00, 651.66it/s]
Eliminating: E: 100%|██████████| 3/3 [00:00<00:00, 309.08it/s]
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-22-0e47cda916c1> in <module>()
      8 model.fit(values)
      9 inference = VariableElimination(model)
---> 10 phi_query = inference.map_query(['A', 'B'], evidence= {'B':1})

/usr/local/lib/python3.6/dist-packages/pgmpy/inference/ExactInference.py in map_query(self, variables, evidence, elimination_order, show_progress)
    360             return_dict = {}
    361             for var in variables:
--> 362                 return_dict[var] = map_query_results[var]
    363             return return_dict
    364 

KeyError: 'B'

根据文件:

参数变量(列表)-我们想要计算最大边际的变量列表.

证据( dict ) -一个dict键,值对作为{var: state_of_var_observed} no如果没有证据

elimination_order (列表)-自动计算变量消除顺序(如果没有提供)顺序

那么,我哪里出错了,为什么我会犯这个错误呢?

编辑: pgmpy版本: 0.1.9

EN

回答 1

Stack Overflow用户

发布于 2019-12-05 16:13:21

问题是,您也在查询变量中传递证据变量,并且没有任何检查来正确处理这种情况。您已经知道了B作为1的状态,因为它是证据,因此只需查询A如下:

代码语言:javascript
复制
>>> phi_query = inference.map_query(['A'], evidence= {'B':1})
>>> print(phi_query)
{'A': 1}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59193949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档