File size: 1,643 Bytes
1dca0ba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import gradio as gr
import joblib
import pandas as pd

# 1. Cargar el modelo de Churn
# Usamos try/except por si olvidaste ejecutar el entrenar.py
try:
    modelo = joblib.load("modelo_churn.joblib")
except:
    modelo = None

# 2. Funci贸n de predicci贸n
def predecir_abandono(antiguedad, pago_mensual, es_senior):
    if modelo is None:
        return {"Error: Modelo no encontrado": 1}
    
    # Preparamos los datos igual que en el entrenamiento
    # es_senior viene del checkbox (True/False), lo convertimos a 1 o 0
    senior_num = 1 if es_senior else 0
    
    datos = pd.DataFrame([[antiguedad, pago_mensual, senior_num]], 
                         columns=['tenure', 'MonthlyCharges', 'SeniorCitizen'])
    
    # Predecir probabilidades
    # proba[0] = Probabilidad de quedarse (No Churn)
    # proba[1] = Probabilidad de irse (Yes Churn)
    proba = modelo.predict_proba(datos)[0]
    
    return {
        "Cliente Fiel (Se queda)": float(proba[0]), 
        "Riesgo de Abandono (Churn)": float(proba[1])
    }

# 3. Interfaz Web
interfaz = gr.Interface(
    fn=predecir_abandono,
    inputs=[
        gr.Slider(minimum=0, maximum=72, label="Antig眉edad (Meses)", info="驴Cu谩nto tiempo lleva con nosotros?"),
        gr.Number(label="Pago Mensual ($)", value=50.0),
        gr.Checkbox(label="驴Es Adulto Mayor (Senior)?")
    ],
    outputs=gr.Label(num_top_classes=2, label="Predicci贸n de Riesgo"),
    title="Detector de Fugas de Clientes (Churn)",
    description="Introduce los datos del cliente para evaluar si est谩 en riesgo de cancelar el servicio."
)

interfaz.launch()