在前面的章节中我们学习了贝叶斯网络的基本知识。本章将利用Python建立如下图所示的贝叶斯网络:
在Python中建立贝叶斯网络要引入pgmpy包和pandas包,然后编写如下代码:
from pgmpy.models import BayesianModel
from pgmpy.factors.discrete.CPD import TabularCPD
import pandas as pd
m = BayesianModel() # 创建一个贝叶斯网络
m.add_edge('爱情', '幸福')
m.add_edge('事业', '幸福')
m.add_edge('幸福', '长寿')
m.add_edge('爱情', '长寿')
# 填写先验概率和条件概率
m.add_cpds(TabularCPD('爱情', 2, [[0.98], [0.02]]))
m.add_cpds(TabularCPD('事业', 2, [[0.8], [0.2]]))
m.add_cpds(TabularCPD('幸福', 2, [[0.99, 0.9, 0.5, 0], [0.01, 0.1, 0.5, 1.0]],
evidence=['爱情', '事业'], evidence_card=(2, 2)))
m.add_cpds(TabularCPD('长寿', 2, [[0, 0.1, 0.7, 0.1], [1.0, 0.9