Я учусь применять байесовские сети, и я хотел go на простом примере. Здесь
Я выполняю код
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])
И получаю следующие условные распределения вероятностей после подгонки здесь
Все мои вероятности соответствуют тому, что я нашел в моих данных, кроме разбрызгивателя и дождя здесь
Может кто-нибудь объяснить, почему этот cpd не изучается. Я пытался изменить свои данные и использовать разные методы "MaximumLikelihoodEstimator", "BayesianEstimator" и др. c.