from pgmpy.models import DiscreteBayesianNetwork
from pgmpy.factors.discrete import TabularCPD
Estrutura da rede
modelo = DiscreteBayesianNetwork([
('Historico', 'Compra'),
('Tempo', 'Compra'),
('Promocao', 'Compra')
])
Probabilidades das variáveis independentes
cpd_historico = TabularCPD('Historico', 2, [[0.6], [0.4]])
cpd_tempo = TabularCPD('Tempo', 2, [[0.5], [0.5]])
cpd_promocao = TabularCPD('Promocao', 2, [[0.4], [0.6]])
Probabilidades condicionais da compra
cpd_compra = TabularCPD(
variable='Compra',
variable_card=2,
values=[
[0.05, 0.15, 0.25, 0.40, 0.30, 0.50, 0.60, 0.90], # Compra = Não
[0.95, 0.85, 0.75, 0.60, 0.70, 0.50, 0.40, 0.10] # Compra = Sim
],
evidence=['Historico', 'Tempo', 'Promocao'],
evidence_card=[2, 2, 2]
)
modelo.add_cpds(
cpd_historico,
cpd_tempo,
cpd_promocao,
cpd_compra
)
print(modelo.check_model())