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()