我正在学习如何应用贝叶斯网络,我想举一个简单的例子。 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”等。