Dejo el código, me gusto mas como se construye con los CPD, pero es una buena forma de entenderlo mejor.
probabilidades = {
"HistorialCompras": {0: 0.7, 1: 0.3},
"TiempoEnElSitio": {0: 0.6, 1: 0.4},
"ClicóEnPromocion": {0: 0.8, 1: 0.2},
"Compra": {
(0, 0, 0): 0.1,
(0, 0, 1): 0.3,
(0, 1, 0): 0.2,
(0, 1, 1): 0.6,
(1, 0, 0): 0.4,
(1, 0, 1): 0.7,
(1, 1, 0): 0.8,
(1, 1, 1): 0.9
}
}
def calcular_probabilidad_compra(evidencias):
historial = evidencias["HistorialCompras"]
tiempo = evidencias["TiempoEnElSitio"]
promocion = evidencias["ClicóEnPromocion"]
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,
"ClicóEnPromocion": 1
}
resultado = calcular_probabilidad_compra(evidencias)
print("Probabilidades de Compra:")
for clave, valor in resultado.items():
print(clave + ":", round(valor, 2))
print("\n")
print("Probabilidad de Compra:", round(resultado["Comprar"], 2))
print("Alex Carrasco Fernández")