Para essa tarefa, considerei a previsão de compra do cliente, utilizando as seguintes regras:
1. Origem ("VeioDasRedesSociais"): Se o cliente veio por um anúncio nas redes sociais ou pelo navegador.
2. Visualizou Avaliações ("ViuAvaliacoes"): Se o cliente analisou as avaliações na aba de comentários e notas de outros compradores antes da compra.
3. Adicionou ao Carrinho ("AdicionouCarrinho"): Se o cliente colocou o item no carrinho de compras, mesmo tendo demorado a efetuar a compra.
# 1. Criação da Rede Bayesiana:
probabilidades_loja = {
"VeioDasRedesSociais": {0: 0.6, 1: 0.4}, # 0: Busca orgânica/Google, 1: Redes Sociais
"ViuAvaliacoes": {0: 0.5, 1: 0.5}, # 0: Não viu as notas, 1: Viu as notas de clientes
"AdicionouCarrinho": {0: 0.7, 1: 0.3}, # 0: Não colocou no carrinho, 1: Colocou no carrinho
# Função para calcular a probabilidade de compra:
# A chave é uma tupla correspondendo a: (VeioDasRedesSociais, ViuAvaliacoes, AdicionouCarrinho)
"Compra": {
(0, 0, 0): 0.02, # Google, não viu avaliações, não pôs no carrinho (Quase impossível comprar)
(0, 0, 1): 0.40, # Google, não viu avaliações, mas pôs no carrinho
(0, 1, 0): 0.15, # Google, viu avaliações, não pôs no carrinho
(0, 1, 1): 0.75, # Google, viu avaliações, pôs no carrinho
(1, 0, 0): 0.05, # Redes sociais, não viu avaliações, não pôs no carrinho
(1, 0, 1): 0.60, # Redes sociais, não viu avaliações, pôs no carrinho (Compra por impulso)
(1, 1, 0): 0.25, # Redes sociais, viu avaliações, não pôs no carrinho
(1, 1, 1): 0.92 # Redes sociais, viu avaliações, pôs no carrinho (Cenário de altíssima conversão)
}
}
# 2. Cálculo de probabilidades de compra:
def calcular_probabilidade_compra(evidencias):
redes = evidencias["VeioDasRedesSociais"]
avaliacoes = evidencias["ViuAvaliacoes"]
carrinho = evidencias["AdicionouCarrinho"]
prob_compra = probabilidades_loja["Compra"][(redes, avaliacoes, carrinho)]
prob_nao_compra = 1 - prob_compra
return {"Comprar": prob_compra, "Não Comprar": prob_nao_compra}
# 3. Testagem do cenário escolhido:
# Cenário: O cliente veio de Redes Sociais (1), NÃO olhou as avaliações (0), mas ADICIONOU o produto no carrinho (1).
cenario_cliente = {
"VeioDasRedesSociais": 1,
"ViuAvaliacoes": 0,
"AdicionouCarrinho": 1
}
# Execução do cálculo:
resultados = calcular_probabilidade_compra(cenario_cliente)
# Exibição dos resultados:
print("Análise de Comportamento do Cliente:")
for status, probabilidade in resultados.items():
print(f"{status}: {probabilidade:.2f}")
Análise de Comportamento do Cliente:
Comprar: 0.60
Não Comprar: 0.40