Me puse a repasar Bayes bastante porque no entendía el concepto completamente. Ahora sí, esta es mi implementación, basada en la respuesta del profesor:
probabilidades = {
"HistorialCompras": {0: 0.63, 1: 0.37},
"TiempoEnElSitio": {0: 0.62, 1: 0.38},
"InteraccionPromocion": {0: 0.60, 1: 0.40},
"Compra": {
(0, 0, 0): 0.10,
(0, 0, 1): 0.25,
(0, 1, 0): 0.20,
(0, 1, 1): 0.80,
(1, 0, 0): 0.65,
(1, 0, 1): 0.90,
(1, 1, 0): 0.65,
(1, 1, 1): 0.95,
}
}
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}
evidencias = {
"HistorialCompras": 1,
"TiempoEnElSitio": 0,
"InteraccionPromocion": 1
}
resultados = calcular_probabilidad_compra(evidencias)
print("Probabilidades de Compra:")
for resultado, probabilidad in resultados.items():
print(f"{resultado}: {probabilidad:.2f}")