Para resolver a atividade, criei uma Rede Bayesiana simples usando as variáveis HistoricoCompras, TempoNoSite e ClicouEmPromocao. A variável final é Compra, que depende da combinação dessas três informações.
# 1. Criando a Rede Bayesiana
probabilidades = {
"HistoricoCompras": {
0: 0.7, # Não tem histórico
1: 0.3 # Tem histórico
},
"TempoNoSite": {
0: 0.6, # Pouco tempo
1: 0.4 # Muito tempo
},
"ClicouEmPromocao": {
0: 0.8, # Não clicou
1: 0.2 # Clicou
},
"Compra": {
(0, 0, 0): 0.1,
(0, 0, 1): 0.3,
(0, 1, 0): 0.2,
(0, 1, 1): 0.6,
(1, 0, 0): 0.4,
(1, 0, 1): 0.7,
(1, 1, 0): 0.8,
(1, 1, 1): 0.9
}
}
# 2. Função para calcular a probabilidade de compra
def calcular_probabilidade_compra(evidencias):
historico = evidencias["HistoricoCompras"]
tempo = evidencias["TempoNoSite"]
promocao = evidencias["ClicouEmPromocao"]
prob_compra = probabilidades["Compra"][(historico, tempo, promocao)]
prob_nao_compra = 1 - prob_compra
return {
"Comprar": prob_compra,
"Não Comprar": prob_nao_compra
}
# 3. Testando com o cenário descrito
evidencias = {
"HistoricoCompras": 1, # Cliente tem histórico de compras
"TempoNoSite": 0, # Cliente passou pouco tempo no site
"ClicouEmPromocao": 1 # Cliente clicou em promoções
}
resultados = calcular_probabilidade_compra(evidencias)
print("Probabilidades de Compra:")
for resultado, probabilidade in resultados.items():
print(f"{resultado}: {probabilidade:.2f}")
No teste realizado, o cliente já tinha histórico de compras, passou pouco tempo no site e clicou em uma promoção. Para esse cenário, o resultado foi:
| Resultado | Probabilidade |
|---|---|
| Comprar | 70% |
| Não Comprar | 30% |
Com isso, a Rede Bayesiana consegue estimar a chance de compra com base no comportamento do cliente.