Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haz lo que hicimos en el aula: Construyendo una Red Bayesiana

============================================================

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