============================================================
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 %.