Понимание того, как байесовские сети изучают условные распределения вероятностей - PullRequest
0 голосов
/ 26 апреля 2020

Я учусь применять байесовские сети, и я хотел 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.

...