Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

Faça como eu fiz: construindo uma Rede Bayesiana

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