# Red Bayesiana simple para predecir compra en una tienda online
# Probabilidades iniciales
prob_historial = {
"si": 0.6,
"no": 0.4
}
prob_tiempo = {
"mucho": 0.5,
"poco": 0.5
}
prob_promocion = {
"si": 0.4,
"no": 0.6
}
# Probabilidad condicional de compra
# P(Compra | Historial, Tiempo, Promocion)
prob_compra = {
("si", "mucho", "si"): 0.90,
("si", "mucho", "no"): 0.75,
("si", "poco", "si"): 0.65,
("si", "poco", "no"): 0.45,
("no", "mucho", "si"): 0.70,
("no", "mucho", "no"): 0.50,
("no", "poco", "si"): 0.40,
("no", "poco", "no"): 0.15
}
def calcular_probabilidad_compra(historial, tiempo, promocion):
compra = prob_compra[(historial, tiempo, promocion)]
no_compra = 1 - compra
return compra, no_compra
# Ejemplo de análisis
historial_cliente = "si"
tiempo_cliente = "mucho"
promocion_cliente = "si"
compra, no_compra = calcular_probabilidad_compra(
historial_cliente,
tiempo_cliente,
promocion_cliente
)
print("Análisis del cliente")
print("--------------------")
print(f"Historial de compras: {historial_cliente}")
print(f"Tiempo en el sitio: {tiempo_cliente}")
print(f"Interacción con promociones: {promocion_cliente}")
print(f"Probabilidad de compra: {compra * 100:.2f}%")
print(f"Probabilidad de no compra: {no_compra * 100:.2f}%")
En este modelo se construyó una Red Bayesiana simple para analizar la probabilidad de que un cliente realice una compra en una tienda en línea. Se consideraron tres variables principales: historial de compras, tiempo de navegación en el sitio e interacción con promociones.
La variable final es la compra, cuya probabilidad depende de la combinación de las variables anteriores. Por ejemplo, un cliente que ya ha comprado antes, pasa mucho tiempo navegando y además hace clic en promociones tiene una mayor probabilidad de comprar. En cambio, un cliente sin historial de compras, que pasa poco tiempo en el sitio y no interactúa con promociones, tiene una probabilidad menor.
Este tipo de modelo permite tomar decisiones más inteligentes, como enviar promociones personalizadas, destacar productos relevantes o identificar clientes con mayor intención de compra.