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!

2
respostas

Atividade: Construindo uma Rede Bayesiana

Nesta atividade, construímos uma Rede Bayesiana simples para analisar o comportamento de clientes em uma loja online e estimar a probabilidade de uma compra acontecer.

O sistema considera três variáveis principais:

  • Histórico de compras;
  • Tempo no site;
  • Interação com promoções.

A partir dessas evidências, o modelo calcula a probabilidade de o cliente comprar ou não comprar.


Passo 1 – Criar as probabilidades

Primeiro, criamos um dicionário chamado probabilidades, contendo as chances associadas a cada variável.

probabilidades = {
    "HistoricoCompras": {0: 0.7, 1: 0.3},
    "TempoNoSite": {0: 0.6, 1: 0.4},
    "ClicouEmPromocao": {0: 0.8, 1: 0.2},
    "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
    }
}

Neste modelo:

  • 0 representa ausência ou menor intensidade da variável;
  • 1 representa presença ou maior intensidade da variável.

Por exemplo:

  • HistoricoCompras = 1 significa que o cliente já comprou antes;
  • TempoNoSite = 0 significa que passou pouco tempo no site;
  • ClicouEmPromocao = 1 significa que clicou em uma promoção.

Passo 2 – Criar a função de cálculo

Depois, criamos uma função que recebe as evidências do cliente e calcula 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
    }

Essa função consulta a combinação das variáveis e retorna duas informações:

  • probabilidade de comprar;
  • probabilidade de não comprar.

Passo 3 – Testar o cenário proposto

O cenário testado foi:

  • cliente tem histórico de compras;
  • passou pouco tempo no site;
  • clicou em promoções.
evidencias = {
    "HistoricoCompras": 1,
    "TempoNoSite": 0,
    "ClicouEmPromocao": 1
}

resultados = calcular_probabilidade_compra(evidencias)

print("Probabilidades de Compra:")
for resultado, probabilidade in resultados.items():
    print(f"{resultado}: {probabilidade:.2f}")

Resultado esperado

Probabilidades de Compra:
Comprar: 0.70
Não Comprar: 0.30

Interpretação

O resultado indica que, nesse cenário, o cliente possui 70% de probabilidade de realizar uma compra e 30% de probabilidade de não comprar.

Isso acontece porque ele já possui histórico de compras e clicou em uma promoção, dois fatores que aumentam a chance de conversão, mesmo tendo passado pouco tempo no site.


Transposição para a Educação

A mesma lógica pode ser aplicada em sistemas educacionais inteligentes.

Em vez de analisar clientes e compras, poderíamos analisar estudantes e aprendizagem.

Por exemplo, as variáveis poderiam ser:

  • frequência do estudante;
  • entrega de atividades;
  • participação em aula.

O objetivo seria estimar a probabilidade de:

  • aprovação;
  • necessidade de intervenção;
  • risco acadêmico;
  • alta performance.

Um desenho simples da programação educacional poderia ser:

probabilidades_educacao = {
    "Frequencia": {0: 0.4, 1: 0.6},
    "EntregaAtividades": {0: 0.3, 1: 0.7},
    "Participacao": {0: 0.5, 1: 0.5},
    "Aprendizagem": {
        (0, 0, 0): 0.2,
        (0, 0, 1): 0.3,
        (0, 1, 0): 0.4,
        (0, 1, 1): 0.6,
        (1, 0, 0): 0.5,
        (1, 0, 1): 0.7,
        (1, 1, 0): 0.8,
        (1, 1, 1): 0.9
    }
}

def calcular_probabilidade_aprendizagem(evidencias):
    frequencia = evidencias["Frequencia"]
    atividades = evidencias["EntregaAtividades"]
    participacao = evidencias["Participacao"]

    prob_aprendizagem = probabilidades_educacao["Aprendizagem"][
        (frequencia, atividades, participacao)
    ]

    prob_intervencao = 1 - prob_aprendizagem

    return {
        "Atingir objetivos de aprendizagem": prob_aprendizagem,
        "Necessitar intervenção": prob_intervencao
    }


evidencias_estudante = {
    "Frequencia": 1,
    "EntregaAtividades": 1,
    "Participacao": 1
}

resultado_estudante = calcular_probabilidade_aprendizagem(evidencias_estudante)

print("Probabilidades Educacionais:")
for resultado, probabilidade in resultado_estudante.items():
    print(f"{resultado}: {probabilidade:.2f}")
2 respostas

Resultado esperado no exemplo educacional

Probabilidades Educacionais:
Atingir objetivos de aprendizagem: 0.90
Necessitar intervenção: 0.10

Conclusão

Esta atividade mostra como uma Rede Bayesiana pode ser usada para tomar decisões em cenários de incerteza. No caso da loja online, o sistema estima a probabilidade de compra a partir do comportamento do cliente. Na educação, a mesma lógica pode apoiar a análise de estudantes, ajudando a prever riscos, identificar necessidades de intervenção e orientar decisões pedagógicas baseadas em dados.

Oi, Patricia!

Sobre sua atividade, você construiu uma explicação bem organizada sobre o uso de Rede Bayesiana para estimar probabilidades em cenários de incerteza. A sequência ficou clara ao apresentar as variáveis, o dicionário de probabilidades condicionais, a função de cálculo e a interpretação do resultado. Também foi um bom ponto relacionar o exemplo da loja online com a área educacional, mostrando como esse tipo de modelo de Inteligência Artificial pode apoiar a análise de dados, previsão de riscos e tomada de decisão.

A transposição para a educação deixou a atividade mais rica, porque mostra que o raciocínio probabilístico pode ser aplicado em diferentes contextos, como aprendizagem, intervenção pedagógica e acompanhamento de estudantes. Você também interpretou corretamente o resultado final, indicando que, com frequência, entrega de atividades e participação positivas, a probabilidade de atingir os objetivos de aprendizagem chega a 90%. Que outra variável você incluiria nessa Rede Bayesiana para tornar a análise educacional ainda mais completa?

Fico à disposição. Abraços e bons estudos!

Conteúdos relacionados
Como criar um prompt: guia completo com dicas
Como criar um prompt perfeito?