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

Histórico de Compras


--> Compra
/
Tempo no Site


--> Interação com Promoções

from itertools import product

P_historico = {
"Sim": 0.6,
"Nao": 0.4
}

P_tempo = {
"Muito": 0.7,
"Pouco": 0.3
}
P_promocao = {
("Muito", "Sim"): 0.8,
("Muito", "Nao"): 0.2,
("Pouco", "Sim"): 0.3,
("Pouco", "Nao"): 0.7
}
P_compra = {
("Sim", "Muito", "Sim"): 0.95,
("Sim", "Muito", "Nao"): 0.80,
("Sim", "Pouco", "Sim"): 0.75,
("Sim", "Pouco", "Nao"): 0.50,
("Nao", "Muito", "Sim"): 0.70,
("Nao", "Muito", "Nao"): 0.40,
("Nao", "Pouco", "Sim"): 0.30,
("Nao", "Pouco", "Nao"): 0.10
}

print("Probabilidades de Compra:\n")

for historico, tempo in product(
["Sim", "Nao"],
["Muito", "Pouco"]
):

for promocao in ["Sim", "Nao"]:

    prob = P_compra[(historico, tempo, promocao)]

    print(
        f"Histórico={historico}, "
        f"Tempo={tempo}, "
        f"Promoção={promocao} "
        f"-> Compra={prob:.0%}"
    )
    

Probabilidades de Compra:

Histórico=Sim, Tempo=Muito, Promoção=Sim -> Compra=95%
Histórico=Sim, Tempo=Muito, Promoção=Nao -> Compra=80%
Histórico=Sim, Tempo=Pouco, Promoção=Sim -> Compra=75%
Histórico=Sim, Tempo=Pouco, Promoção=Nao -> Compra=50%
Histórico=Nao, Tempo=Muito, Promoção=Sim -> Compra=70%
Histórico=Nao, Tempo=Muito, Promoção=Nao -> Compra=40%
Histórico=Nao, Tempo=Pouco, Promoção=Sim -> Compra=30%
Histórico=Nao, Tempo=Pouco, Promoção=Nao -> Compra=10%

1 resposta

Oi, Marcelo! Como vai?

Agradeço por compartilhar seus aprendizados com a comunidade Alura.
Construindo uma Rede Bayesiana do zero, como você fez, é uma forma muito eficaz de consolidar o entendimento sobre probabilidades condicionais e modelagem de incerteza.

Uma evolução interessante para o seu projeto seria adicionar comentários explicando o significado de cada tabela e como as variáveis se influenciam entre si. Isso melhora a documentação e ajuda qualquer pessoa que leia o código a entender a lógica por trás das probabilidades de compra em cada cenário.

Continue explorando as Redes Bayesianas, pois elas são amplamente utilizadas para apoiar tomadas de decisão em situações com incerteza, especialmente em áreas como marketing, saúde e inteligência artificial.

Conte sempre com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Qual foi o principal aprendizado que você levou desta prática?

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