Rede Bayesiana simplificada para análise de compras
probabilidades = {
"HistoricoCompras": {0: 0.6, 1: 0.4}, # 0: Não possui histórico, 1: Possui histórico
"VisitouPaginaProduto": {0: 0.5, 1: 0.5}, # 0: Não visitou, 1: Visitou
"ClicouEmPromocao": {0: 0.7, 1: 0.3}, # 0: Não clicou, 1: Clicou
"Compra": {
(0, 0, 0): 0.05,
(0, 0, 1): 0.20,
(0, 1, 0): 0.30,
(0, 1, 1): 0.50,
(1, 0, 0): 0.40,
(1, 0, 1): 0.65,
(1, 1, 0): 0.75,
(1, 1, 1): 0.95
}
}
Função para calcular as probabilidades
def calcular_probabilidade_compra(evidencias):
historico = evidencias["HistoricoCompras"]
visita = evidencias["VisitouPaginaProduto"]
promocao = evidencias["ClicouEmPromocao"]
prob_compra = probabilidades["Compra"][(historico, visita, promocao)]
prob_nao_compra = 1 - prob_compra
return {
"Comprar": prob_compra,
"Não Comprar": prob_nao_compra
}
Cenário de teste
evidencias = {
"HistoricoCompras": 1, # Cliente já comprou anteriormente
"VisitouPaginaProduto": 1, # Cliente visitou a página do produto
"ClicouEmPromocao": 1 # Cliente clicou em uma promoção
}
resultados = calcular_probabilidade_compra(evidencias)
print("Probabilidades calculadas:")
for resultado, probabilidade in resultados.items():
print(f"{resultado}: {probabilidade:.2f}")