Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] Haz lo que hicimos en el aula: Construyendo una Red Bayesiana

variables_probables = {
'HistorialDeCompras': {0: 0.5, 1: 0.7}, # 0: sin historial de compra, 1: con historial de compra
'TiempoEnSitio': {0: 0.4, 1: 0.6}, # 0: poco tiempo, 1: mucho tiempo
'EntroEnLaPromocion': {0: 0.9, 1: 0.1}, # 0: no entró, 1: entró

'EnSitioWebDeCompra': {
    (0, 0, 0): 0.1,  # No tiene historial, poco tiempo, no entró -> Probabilidad de compra
    (0, 0, 1): 0.3,  # No tiene historial, poco tiempo, entró -> Probabilidad de compra
    (0, 1, 0): 0.2,  # No tiene historial, mucho tiempo, no entró -> Probabilidad de compra
    (0, 1, 1): 0.6,  # No tiene historial, mucho tiempo, entró -> Probabilidad de compra
    (1, 0, 0): 0.4,  # Tiene historial, poco tiempo, no entró -> Probabilidad de compra
    (1, 0, 1): 0.7,  # Tiene historial, poco tiempo, entró -> Probabilidad de compra
    (1, 1, 0): 0.8,  # Tiene historial, mucho tiempo, no entró -> Probabilidad de compra
    (1, 1, 1): 0.9   # Tiene historial, mucho tiempo, entró -> Probabilidad de compra
}

}

def calcular_probabilidad_compra(evidencias):
historial = evidencias["HistorialDeCompras"] # Asegúrate de que la clave coincida
tiempo = evidencias["TiempoEnSitio"] # Asegúrate de que la clave coincida
promocion = evidencias["EntroEnLaPromocion"] # Asegúrate de que la clave coincida

probabilidad_compra = variables_probables["EnSitioWebDeCompra"][(historial, tiempo, promocion)]
probabilidad_no_compra = 1 - probabilidad_compra

return {"Comprar": probabilidad_compra, "No Comprar": probabilidad_no_compra}

evidencias_cliente = {
"HistorialDeCompras": 1, # Cliente tiene historial de compras
"TiempoEnSitio": 0, # Cliente pasó poco tiempo en el sitio
"EntroEnLaPromocion": 1 # Cliente entró en promociones
}

resultados = calcular_probabilidad_compra(evidencias_cliente)
print("Probabilidades de Compra:")
for resultado, probabilidad in resultados.items():
print(f"{resultado}: {probabilidad:.2f}")

1 respuesta

Hola, Elisabeth! ¿Cómo vas?

Gracias por compartir tus reflexiones y aprendizajes con la comunidad Alura. Me gustó cómo organizaste la Red Bayesiana usando variables como HistorialDeCompras, TiempoEnSitio y EntroEnLaPromocion, porque eso ayuda a representar escenarios de decisión en ambientes inciertos. Tu lógica para calcular la probabilidad de Comprar y No Comprar también está bien encaminada.

dica: revisa la indentación en la función y en el for, ya que en Python los bloques necesitan espacios para funcionar correctamente. También vale la pena verificar si cada variable tiene una tabla de probabilidades coherente con su significado, para que la inferencia sea más clara. Sigue practicando, vas por un buen camino. Cuenta con el apoyo del foro en tu viaje. Saludos y buenos estudios!