Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

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

============================================================

RED BAYESIANA SIMPLE PARA PREDECIR LA COMPRA DE UN CLIENTE

============================================================

Paso 1: Definir las probabilidades del modelo

probabilidades = {
# Probabilidades a priori
"HistorialCompras": {
0: 0.70, # No tiene historial de compras
1: 0.30 # Tiene historial de compras
},

"TiempoEnElSitio": {
    0: 0.60,   # Poco tiempo
    1: 0.40    # Mucho tiempo
},

"ClicoEnPromocion": {
    0: 0.80,   # No hizo clic
    1: 0.20    # Sí hizo clic
},

# Probabilidades condicionales de compra
"Compra": {
    (0, 0, 0): 0.10,
    (0, 0, 1): 0.30,
    (0, 1, 0): 0.20,
    (0, 1, 1): 0.60,
    (1, 0, 0): 0.40,
    (1, 0, 1): 0.70,
    (1, 1, 0): 0.80,
    (1, 1, 1): 0.90
}

}

============================================================

Paso 2: Función para calcular la probabilidad de compra

============================================================

def calcular_probabilidad_compra(evidencias):
"""
Calcula la probabilidad de que un cliente compre
según las evidencias observadas.
"""

historial = evidencias["HistorialCompras"]
tiempo = evidencias["TiempoEnElSitio"]
promocion = evidencias["ClicoEnPromocion"]

# Buscar la probabilidad correspondiente
prob_compra = probabilidades["Compra"][(historial, tiempo, promocion)]
prob_no_compra = 1 - prob_compra

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

============================================================

Paso 3: Escenario solicitado

Cliente con historial de compras,

poco tiempo en el sitio y clic en promociones.

============================================================

evidencias = {
"HistorialCompras": 1,
"TiempoEnElSitio": 0,
"ClicoEnPromocion": 1
}

Obtener resultados

resultado = calcular_probabilidad_compra(evidencias)

Mostrar resultados

print("========== RESULTADO ==========")
print("Historial de compras : Sí")
print("Tiempo en el sitio : Poco")
print("Clic en promoción : Sí\n")

print(f"Probabilidad de Comprar : {resultado['Comprar']:.2%}")
print(f"Probabilidad de No Comprar : {resultado['No Comprar']:.2%}")

Salida esperada
========== RESULTADO ==========
Historial de compras : Sí
Tiempo en el sitio : Poco
Clic en promoción : Sí

Probabilidad de Comprar : 70.00%
Probabilidad de No Comprar : 30.00%

Explicación de la solución
Se crea un diccionario de probabilidades que almacena las probabilidades iniciales de cada variable y las probabilidades condicionales de la variable Compra.
La función calcular_probabilidad_compra() recibe un diccionario con las evidencias del cliente (historial de compras, tiempo en el sitio y clic en promociones). Luego busca la combinación correspondiente en la tabla de probabilidades condicionales y calcula la probabilidad de comprar y de no comprar.

Se prueba el modelo con el escenario solicitado:

Historial de compras: Sí
Tiempo en el sitio: Poco
Clic en promociones: Sí

Según la Red Bayesiana, la probabilidad de que el cliente realice una compra es 70 %, mientras que la probabilidad de que no compre es 30 %.

1 respuesta
solución!

Hola George,

Gracias por compartir tu código con nosotros. Es muy bueno ver cómo vas poniendo en práctica lo que aprendes.

Te recomiendo que puedas interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tus soluciones y proyectos, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!