| | import gradio as gr |
| | import joblib |
| | import pandas as pd |
| |
|
| | |
| | |
| | try: |
| | modelo = joblib.load("modelo_churn.joblib") |
| | except: |
| | modelo = None |
| |
|
| | |
| | def predecir_abandono(antiguedad, pago_mensual, es_senior): |
| | if modelo is None: |
| | return {"Error: Modelo no encontrado": 1} |
| | |
| | |
| | |
| | senior_num = 1 if es_senior else 0 |
| | |
| | datos = pd.DataFrame([[antiguedad, pago_mensual, senior_num]], |
| | columns=['tenure', 'MonthlyCharges', 'SeniorCitizen']) |
| | |
| | |
| | |
| | |
| | proba = modelo.predict_proba(datos)[0] |
| | |
| | return { |
| | "Cliente Fiel (Se queda)": float(proba[0]), |
| | "Riesgo de Abandono (Churn)": float(proba[1]) |
| | } |
| |
|
| | |
| | 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() |