Skip to content

rou-tz/ML_TELCO_CHURN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

📡 Predicción de Churn en Telecomunicaciones

Proyecto de Machine Learning desarrollado como parte del Data Science Bootcamp.


Descripción

Modelo de clasificación binaria para predecir qué clientes de una empresa de telecomunicaciones van a abandonar el servicio (churn), permitiendo al equipo de retención actuar de forma anticipada.

  • Dataset: IBM Telco Customer Churn (7.043 clientes, 20 features)
  • Problema: Clasificación binaria supervisada
  • Target: Churn (1 = abandona, 0 = se queda)
  • Desbalanceo de clases: 73.5% / 26.5%

Estructura del proyecto

📁 proyecto/
├── data/
│   └── Telco_Churn_data.csv
├── model/
│   └── production/
│       └── telco_churn_model.pkl
└── LLM_Churn_COMPLETO.ipynb

Contenido del notebook

Sección Descripción
1. Importaciones Librerías: pandas, scikit-learn, XGBoost, matplotlib, seaborn
2. Carga y limpieza Fix de TotalCharges (valores vacíos), encoding del target
3. EDA Distribución de clases, variables numéricas y categóricas, correlaciones
4. Feature Engineering NumServicios, ChargesPerMonth, EsFibra y otras features derivadas
5. Pipelines ColumnTransformer + Pipeline con escalado e imputación
6. Comparación de modelos 6 clasificadores con validación cruzada estratificada
7. GridSearchCV Optimización de hiperparámetros del mejor modelo
8. Evaluación final Métricas sobre test set: ROC-AUC, F1, Recall, Precision
9. Feature Importance Interpretación de las variables más relevantes
10. Impacto en negocio Estimación del valor económico del modelo
11. Exportar modelo Serialización con joblib + verificación de carga
12. K-Means Clustering Segmentación no supervisada en 4 perfiles de cliente + PCA 2D

Modelos entrenados

Se compararon 6 algoritmos de clasificación:

  • Logistic Regression
  • Decision Tree
  • Random Forest
  • Gradient Boosting
  • K-Nearest Neighbors
  • XGBoost ✅ (mejor resultado)

Métricas priorizadas: ROC-AUC y Recall (por el desbalanceo de clases).


Segmentación de clientes (K-Means, k=4)

Segmento Clientes Prob. Churn Acción recomendada
🟢 Premium Fidelizados 1.664 (23.6%) 17% Upselling y fidelización
🔵 Convencionales Estables 2.818 (40%) 28% Migrar a contrato anual
🟠 Potenciales Desertores 1.834 (26%) 67% Oferta de retención urgente
🔴 Nuevos Exploradores 727 (10.3%) 85% Onboarding + primer contrato

Hallazgos principales

  • Los clientes con contrato mes-a-mes tienen la mayor tasa de churn (~43%).
  • La fibra óptica presenta más abandono que DSL, probablemente por precio y competencia.
  • La antigüedad (tenure) es el predictor más importante: los clientes nuevos son los más volátiles.
  • Clientes sin servicios de seguridad o soporte técnico tienen mayor riesgo de abandono.

Tecnologías

Python · pandas · scikit-learn · XGBoost · matplotlib · seaborn · joblib


Uso del modelo

import joblib

modelo = joblib.load("model/production/telco_churn_model.pkl")

# El pipeline incluye preprocesamiento — no hace falta transformar manualmente
prob_churn = modelo.predict_proba(X_nuevos)[:, 1]
predicciones = modelo.predict(X_nuevos)

About

Modelo de clasificación binaria para predecir qué clientes de una empresa de telecomunicaciones van a abandonar el servicio (churn), permitiendo al equipo de retención actuar de forma anticipada.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors