Segunda etapa del Challenge: pasamos del EDA a modelos predictivos de churn.
Se entrenan y comparan Regresión Logística, Random Forest y XGBoost sobre el dataset de Telecom X, manteniendo el criterio de negocio: reducir clientes “churn” no detectados (FN).
👉 https://github.com/Kr1st1an-cl/challenge-TelecomX_parte-2
El diccionario de datos se mantiene desde la Parte 1:
TelecomX_diccionario.md
- Preparación y limpieza (one-hot encoding, remoción de redundancias, normalización cuando aplica).
- Separación Train/Test estratificada (26.5% churn en ambos).
- Modelado
- Regresión Logística (con class_weight), datos escalados.
- Random Forest (con class_weight), datos sin escalar.
- XGBoost (con
scale_pos_weight=1.5
), datos sin escalar.
- Validación con StratifiedKFold (K=5).
- Evaluación en Train y Test con: Accuracy, Precision, Recall, F1, ROC-AUC, Balanced Accuracy.
- Curvas ROC y Precision-Recall para comparación visual.
Modelo | Accuracy | Precision | Recall | F1-Score | ROC-AUC | Balanced Acc. |
---|---|---|---|---|---|---|
Logistic Regression | 0.779 | 0.575 | 0.647 | 0.609 | 0.843 | 0.737 |
Random Forest | 0.786 | 0.597 | 0.599 | 0.598 | 0.845 | 0.727 |
XGBoost | 0.780 | 0.580 | 0.620 | 0.599 | 0.838 | 0.729 |
Lectura clave:
- Random Forest tiene el ROC-AUC más alto en Test (0.845), con precision ligeramente superior.
- Regresión Logística logra el mejor Recall (0.647) y Balanced Accuracy (0.737), con la brecha más baja entre Train y Test → mejor generalización.
- XGBoost queda muy cerca en métricas globales, pero muestra la brecha Train→Test más amplia (signos de overfitting).
👉 Criterio de negocio (detectar churn): si priorizamos Recall y equilibrio entre clases, Regresión Logística es la opción base.
Si buscamos AUC global y precision algo mayor, Random Forest tiene una ventaja marginal.
Modelo | Pred. No Churn | Pred. Churn | |
---|---|---|---|
Logistic Regression | Real No Churn | 856 | 179 |
Real Churn | 132 | 242 | |
Random Forest | Real No Churn | 884 | 151 |
Real Churn | 150 | 224 | |
XGBoost | Real No Churn | 867 | 168 |
Real Churn | 142 | 232 |
Recordatorio: en churn, FN (churns no detectados) son más costosos que FP.
- Curvas ROC muy cercanas; Random Forest obtiene el AUC más alto en Test.
- En Precision-Recall, las curvas son competitivas; el ranking visual es consistente con las métricas de la tabla.
Se realizó ajuste de umbral para el modelo seleccionado, con foco en Recall y costos de negocio.
- Usar Regresión Logística como baseline operacional (mejor Recall + generalización).
- Implmentar estrategias de negocio por factor crítico:
- Antigüedad: Programa "Primeros 100 Días": Onboarding intensivo nuevos clientes
- Tipo Contrato: Campaña migración masiva: Mes a Mes → contratos largos
- Clientes Premium: Programa VIP: Atención especializada alto valor y mejor SLA
- Servicios Avanzados: Ofrecer servicios avanzados y monitoreo de uptime fibra óptica
- Servicios Adicionales: Ofrecer venta cruzada de servicios de seguridad, paquetes y servicios de prueba como ancla
- Ajustar umbrales de decisión del modelo elegido para reducir FN según tolerancia de negocio.
- Hacer seguimiento al rendimiento del modelo predictivo.
- Medir efectividad de retención y Calidad del Servicio a través de NPS (Net Promoter Score)
Un modelo con 76.5% recall que identifica 3 de cada 4 clientes en riesgo, con variables interpretables que permiten acción directa.
Estrategias específicas por factor de riesgo que transforman predicciones en acciones concretas de retención.
- Python (Pandas, NumPy, Scikit-Learn, XGBoost)
- Matplotlib / Seaborn / Plotly
- Google Colab / Jupyter Notebook
- GitHub para control de versiones
Cristian Velásquez Ríos
📘 Data Science – G8 ONE Alura LATAM 2025
✉️ e-mail
🔗 LinkedIn
- Clona este repositorio
git clone https://github.com/Kr1st1an-cl/challenge-TelecomX_parte-2.git
- Abre el archivo
.ipynb
en Google Colab o Jupyter Notebook - Ejecuta cada celda siguiendo el flujo del análisis
- Observa los gráficos, resultados y conclusiones al final del notebook
📁 data/ # Dataset original del desafío
📁 img/ # Capturas o visuales opcionales
📄 Challenge_Telecom_X_Parte_2_Cristian_Velasquez_Rios.ipynb # Notebook principal
📄 README.md # Este archivo