Después, se creó una función que recibe la información del cliente, busca la probabilidad de compra correspondiente y calcula también la probabilidad de que no compre.
Por último, se probó el programa con un cliente que ya había comprado antes, pasó poco tiempo en el sitio y hizo clic en una promoción. El programa muestra las probabilidades de compra y de no compra para ese caso.
1. Creando la Red Bayesiana
probabilidades = {
"HistorialCompras": {0: 0.5, 1: 0.5}, # 0: No, 1: Sí
"TiempoEnElSitio": {0: 0.4, 1: 0.6}, # 0: Poco tiempo, 1: Mucho tiempo
"InteraccionPromocion": {0: 0.7, 1: 0.3}, # 0: No hizo clic, 1: Hizo clic
"Compra": {
(0, 0, 0): 0.05,
(0, 0, 1): 0.20,
(0, 1, 0): 0.30,
(0, 1, 1): 0.50,
(1, 0, 0): 0.40,
(1, 0, 1): 0.65,
(1, 1, 0): 0.75,
(1, 1, 1): 0.95
}
}
2. Función para calcular la probabilidad de compra
def calcular_probabilidad_compra(evidencias):
historial = evidencias["HistorialCompras"]
tiempo = evidencias["TiempoEnElSitio"]
promocion = evidencias["InteraccionPromocion"]
prob_compra = probabilidades["Compra"][(historial, tiempo, promocion)]
prob_no_compra = 1 - prob_compra
return {
"Comprar": prob_compra,
"No Comprar": prob_no_compra
}
3. Probando el escenario propuesto
evidencias = {
"HistorialCompras": 1, # El cliente tiene historial de compras
"TiempoEnElSitio": 0, # El cliente pasó poco tiempo en el sitio
"InteraccionPromocion": 1 # El cliente hizo clic en una promoción
}
resultados = calcular_probabilidad_compra(evidencias)
print("Probabilidades de compra:")
for resultado, probabilidad in resultados.items():
print(f"{resultado}: {probabilidad:.2f}")