4-pgmpy-扩展推理方法

2019-04-06  本文已影响0人  梦想成为小仙女

简单的说就是自己给pgmpy模型添加新的功能,这里目标,实现方法,经验总结

3.jpg

在运行的时候就发现了问题,是因为源代码导入的product包没有了

0.重点

一.目标

这里我们要给pgmpy添加新的推理算法,我们会将模型参数边缘化得到需要的查询结果

二.实现方法

1.一个简单的精确推理算法
- itertools库的chain方法
image.png
- *self.factors.values()
http://pgmpy.org/factors.html#module-pgmpy.factors.discrete.DiscreteFactor
self.factors是字典结构的数据,key(节点):[该节点的相关因子]
- factor_product:
image.png
- factor_reduce
image.png
- normalize:
image.png
- DiscreteFactor:
image.png
- marginalize:
image.png
- state:
image.png
- set
image.png
简单的说就是传入贝叶斯模型,观测节点和证据节点,然后执行一下操作:
1.将所有参数数组合并成一个迭代器(可以简单的理解为将所有参数竖着排列)
2.然后将所有值进行笛卡尔积运算得到联合概率分布
3.设置联合概率分布中的证据节点,对其进行降级
4.对降级后的结果进行归一化处理
5.得到除去观察节点和证据节点
6.对剩下的节点进行边缘化处理
7.返回一个只有观测节点和已知证据节点的条件概率分布
2.定义一个模型

简单的说分为三步

3.在定义的模型上推理

简单的说分为三步

三.总结

上一篇 下一篇

猜你喜欢

热点阅读