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

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

# 1. Creando la Red Bayesiana
probabilidades = {
    "HistorialCompras": {0: 0.7, 1: 0.3},  # 0: No tiene historial, 1: Tiene historial
    "TiempoEnElSitio": {0: 0.6, 1: 0.4},   # 0: Poco tiempo, 1: Mucho tiempo
    "ClicóEnPromocion": {0: 0.8, 1: 0.2},  # 0: No clicó, 1: Clicó
    "Compra": {
        (0, 0, 0): 0.1,  # No tiene historial, poco tiempo, no clicó
        (0, 0, 1): 0.3,  # No tiene historial, poco tiempo, clicó
        (0, 1, 0): 0.2,  # No tiene historial, mucho tiempo, no clicó
        (0, 1, 1): 0.6,  # No tiene historial, mucho tiempo, clicó
        (1, 0, 0): 0.4,  # Tiene historial, poco tiempo, no clicó
        (1, 0, 1): 0.7,  # Tiene historial, poco tiempo, clicó
        (1, 1, 0): 0.8,  # Tiene historial, mucho tiempo, no clicó
        (1, 1, 1): 0.9   # Tiene historial, mucho tiempo, clicó
    }
}

# 2. Función para calcular la probabilidad conjunta de compra
def calcular_probabilidad_compra(evidencias):
    historial = evidencias["HistorialCompras"]
    tiempo = evidencias["TiempoEnElSitio"]
    promocion = evidencias["ClicóEnPromocion"]

    prob_compra = probabilidades["Compra"][(historial, tiempo, promocion)]
    prob_no_compra = 1 - prob_compra

    return {"Comprar": prob_compra, "No Comprar": prob_no_compra}

# 3. Probando con el escenario descrito
evidencias = {
    "HistorialCompras": 1,  # Cliente tiene historial de compras
    "TiempoEnElSitio": 0,   # Cliente pasó poco tiempo en el sitio
    "ClicóEnPromocion": 1    # Cliente clicó en promociones
}

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

Hola, Juan Carlos. ¿Cómo vas?

Gracias por compartir tus reflexiones y aprendizajes con la comunidad Alura. Me gustó cómo organizaste la Red Bayesiana usando diccionarios para representar las probabilidades y cómo separaste la función calcular_probabilidad_compra() para consultar el resultado según las evidencias. Tu código está bien encaminado y el escenario probado muestra correctamente que, con historial de compras, poco tiempo en el sitio y clic en promoción, la probabilidad de compra es 0.70.

Una dica simple para mejorar es revisar el nombre del comentario de la función: en este caso, el cálculo no es exactamente de probabilidad conjunta, sino de la probabilidad condicional de compra dado un conjunto de evidencias. Puedes ajustar el comentario para dejarlo más claro, por ejemplo: # Funcion para calcular la probabilidad de compra segun las evidencias. Sigue practicando este tipo de estructura, porque ayuda mucho a entender cómo los sistemas inteligentes razonan en escenarios inciertos. Cuenta con el apoyo del foro en tu viaje. Saludos y buenos estudios!