O código para construir a Rede Bayesiana foi preparado corretamente, mas não pôde ser executado porque a biblioteca pgmpy, usada para modelar redes bayesianas em Python, não está instalada no ambiente atual.
O que você pode fazer localmente:
Instale a biblioteca pgmpy: No terminal ou prompt de comando, execute:
pip install pgmpy
Use este código para modelar a rede:
from pgmpy.models import BayesianNetwork
from pgmpy.factors.discrete import TabularCPD
from pgmpy.inference import VariableElimination
Estrutura da rede
model = BayesianNetwork([
('HistoricoCompras', 'Compra'),
('TempoNoSite', 'Compra'),
('InteracaoPromocao', 'Compra')
])
CPDs
cpd_historico = TabularCPD('HistoricoCompras', 2, [[0.6], [0.4]])
cpd_tempo = TabularCPD('TempoNoSite', 2, [[0.7], [0.3]])
cpd_interacao = TabularCPD('InteracaoPromocao', 2, [[0.5], [0.5]])
cpd_compra = TabularCPD(
'Compra', 2,
[
[0.9, 0.8, 0.7, 0.6, 0.7, 0.5, 0.4, 0.2], # Não compra
[0.1, 0.2, 0.3, 0.4, 0.3, 0.5, 0.6, 0.8] # Compra
],
evidence=['HistoricoCompras', 'TempoNoSite', 'InteracaoPromocao'],
evidence_card=[2, 2, 2]
)
model.add_cpds(cpd_historico, cpd_tempo, cpd_interacao, cpd_compra)
assert model.check_model()
Inferência
inference = VariableElimination(model)
resultado = inference.query(
variables=['Compra'],
evidence={
'HistoricoCompras': 1,
'TempoNoSite': 1,
'InteracaoPromocao': 1
}
)
print(resultado)
Esse código calcula a probabilidade de um cliente realizar uma compra com base em três fatores: se ele já comprou antes, quanto tempo passou no site e se interagiu com promoções.