了解贝叶斯网络如何学习条件概率分布

时间:2020-04-25 21:19:06

标签: python bayesian-networks

我正在学习如何应用贝叶斯网络,我想举一个简单的例子。 Here

我执行代码

import pandas as pd
from pgmpy.models import BayesianModel
from pgmpy.factors.discrete.CPD import TabularCPD
from pgmpy.estimators import MaximumLikelihoodEstimator

data = pd.read_csv("observations.csv")
model = BayesianModel([('rain', 'grass_wet'), ('sprinkler', 'grass_wet'), ('rain', 'sprinkler')])
model.fit(data)

a = model.get_cpds()
print(a[1])
print(a[0])
print(a[2])

拟合后得到以下条件概率分布 here

我所有的概率都与我在数据中发现的概率相符,除了洒水下雨here

任何人都可以解释为什么不学习此cpd的原因。我尝试更改数据并使用不同的方法“ MaximumLikelihoodEstimator”,“ BayesianEstimator”等。

0 个答案:

没有答案