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 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:

ResultadoProbabilidade
Comprar70%
Não Comprar30%

Com isso, a Rede Bayesiana consegue estimar a chance de compra com base no comportamento do cliente.