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!

1
resposta

Faça como eu fiz: construindo uma Rede Bayesiana

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}")

1 resposta

Fala, Isis! Tudo bom?

Agradeço por trazer sua solução para o fórum!

Curti demais como trabalhou a rede bayesiana simplificada, destacou a clareza na definição das probabilidades condicionais e ainda reforçou a aplicação prática com um cenário de teste bem estruturado. Essa abordagem mostra domínio conceitual, organização lógica e foco em transformar teoria em prática para análise de comportamento de compra.

E algumas boas práticas que você pode adotar são:

  • Generalizar a função: permitir que novos parâmetros sejam adicionados sem precisar reescrever o dicionário.
  • Validar entradas: incluir verificações para evitar erros caso alguma evidência não esteja no formato esperado.
  • Explorar visualização: usar gráficos para representar probabilidades e facilitar a interpretação dos resultados.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: você considera mais interessante evoluir esse modelo para incluir variáveis adicionais de comportamento do cliente ou investir primeiro em técnicas de visualização para tornar os resultados mais intuitivos?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!