Skip to content

Enzo280100/telco_churn_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📡 TELCO CHURN PROJECT

Este proyecto busca predecir el churn de clientes en el último mes de un dataset de telecomunicaciones, aplicando técnicas de Machine Learning para identificar aquellos usuarios que probablemente abandonen el servicio.


🗂 Estructura del Proyecto

TELCO_CHURN_PROJECT/ 
│ 
├── data/ 
│       ├── raw/ # Datos originales sin procesar 
│       └── processed/ # Datos limpios y transformados 
│ 
├── notebooks/ 
│       ├── EDA_notebook.ipynb # Análisis exploratorio de datos 
│       └── Modeling_notebook.ipynb # Entrenamiento de modelos y evaluación 
│ 
├── src/ 
│       ├── preprocessing.py # Funciones para limpieza y preparación 
│       ├── feature_engineering.py # Generación de nuevas variables 
│       └── pycache/ # Archivos cacheados 
│ 
├── README.md # Documentación general del proyecto 
├── requirements.txt # Librerías necesarias 
├── respuestas.txt # Respuestas técnicas al desafío 
└── prueba tecnica.pdf # Documento original del caso práctico

🧪 Etapas del Proyecto

  • Preprocesamiento: Escalado, imputación y depuración del dataset.
  • Feature Engineering: Creación de variables relevantes para capturar el comportamiento del cliente.
  • Selección de Variables: Aplicación de BorutaShap con XGBoost para identificar las características más explicativas.
  • Modelado: Se entrenaron tres modelos:
    • Logistic Regression
    • Random Forest
    • XGBoost
  • Evaluación: Optimización de hiperparámetros vía RandomizedSearchCV con validación cruzada estratificada (StratifiedKFold).

📊 Métricas Utilizadas

Se priorizó el Recall como métrica principal, buscando detectar la mayor cantidad de churns. También se evaluó:

  • Precision
  • F1 Score
  • ROC AUC
  • Average Precision (PR AUC)
  • Classification Report
  • Visualizaciones: matriz de confusión, curvas ROC y Precision-Recall, distribución de probabilidades.

🏆 Selección del Modelo

Logistic Regression mostró el mejor desempeño en términos de recall, siendo ideal para capturar churns reales.
Random Forest tuvo mejor calibración y discriminación (mayor ROC AUC y PR AUC), siendo útil si se busca un balance entre detección y precisión.


⚙️ Requisitos

Instalación de dependencias:

pip install -r requirements.txt

📌 Cómo Ejecutar

  • Asegúrate de tener los datos en data/raw/.
  • Corre EDA_notebook.ipynb para análisis exploratorio.
  • Ejecuta Modeling_notebook.ipynb para entrenar modelos y generar evaluaciones.

👨‍💻 Autor

Desarrollado por Enzo Infantes:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors