DEV Community

Cover image for Cómo predije el abandono de clientes bancarios con XGBoost y Power BI
Álvaro Martínez for Evolve

Posted on

Cómo predije el abandono de clientes bancarios con XGBoost y Power BI

Uno de los problemas más importantes para cualquier banco (y cualquier empresa) es detectar qué clientes tienen más probabilidades de abandonar el servicio.

Como proyecto del Máster en Data Science e IA en Evolve, decidí desarrollar un sistema de predicción de churn utilizando Machine Learning y visualización de datos orientada a negocio.

El objetivo no era solo entrenar un modelo, sino construir un flujo completo de análisis más profesional, ya que nunca lo había hecho:

  • Exploratory Data Analysis (EDA)
  • Preprocesado y feature engineering
  • Entrenamiento de modelos
  • Evaluación de métricas
  • Dashboards en Power BI

Dataset y problema

Bank Customer Churn Dataset en Kaggle

El proyecto utiliza un dataset bancario con información de clientes como:

  • Edad
  • País
  • Salario estimado
  • Actividad del cliente
  • Tipo de tarjeta

El objetivo era resolver un problema de clasificación binaria:

  • 1 → el cliente abandona
  • 0 → el cliente permanece

Análisis exploratorio de datos

Durante el EDA me di cuenta de patrones bastante interesantes.

Por ejemplo:

  • Los clientes de mayor edad mostraban una tasa de churn más alta
  • Algunos países tenían un porcentaje de abandono claramente superior
  • Los clientes inactivos tenían más probabilidad de abandonar el banco

Edad-x-churn

Activos-x-churn


Preprocesado de datos

Para preparar el dataset trabajé principalmente en:

  • Encoding de variables categóricas
  • Escalado de variables numéricas
  • División train/test
  • Comparación entre datasets escalados y no escalados

También separé el proyecto en notebooks independientes para mantener un flujo más limpio y modular, básicamente porque no me apetecía tener una notebook de 3km.


Modelos utilizados

Probé varios algoritmos de clasificación:

  • Logistic Regression
  • Decision Tree
  • Random Forest
  • XGBoost

La idea era comparar distintos enfoques y entender cómo cambiaban métricas como:

  • Accuracy
  • Precision
  • Recall
  • F1 Score
  • ROC-AUC

Resultados

Los mejores resultados se obtuvieron con XGBoost y Random Forest.

XGBoost consiguió el mejor equilibrio entre:

  • Recall
  • ROC-AUC
  • F1 Score

Tabla-modelos

Además, el análisis de feature importance permitió identificar variables especialmente relevantes para el churn, como:

  • Age
  • Balance
  • IsActiveMember
  • Number of Products

importancia-de-valores


Dashboard en Power BI

Una de las partes que más entretenidas del proyecto fue transformar los resultados técnicos en visualizaciones mas amigables y fáciles de entender.

El dashboard incluye:

  • KPIs de churn
  • Segmentación de clientes
  • Comparación de modelos
  • Visualización de feature importance
  • Patrones de abandono por país, edad y actividad

Bussiness-Insights

ML-Performance


Lo que aprendí

Este proyecto me ayudó mucho a entender mejor el flujo de trabajo de estos proyectos.

Aspectos como:

  • el preprocesado
  • la interpretación de métricas
  • la comunicación visual
  • el enfoque de negocio

son igual de importantes que el propio modelo.

Repositorio

GitHub:

Customer Churn Prediction Evolve Alvaro Martinez

Machine Learning project focused on predicting customer churn in a banking environment using classification models and business-oriented analysis.

The project includes:

  • Exploratory Data Analysis (EDA)
  • Data preprocessing and feature engineering
  • Model training and evaluation
  • Power BI dashboard for business insights

Technologies Used

  • Python
  • Pandas
  • NumPy
  • Scikit-learn
  • XGBoost
  • Matplotlib
  • Seaborn
  • Jupyter Notebook
  • Power BI

Project Structure

├── dashboard/          # Power BI dashboard files
├── data/
│   ├── raw/            # Original dataset
│   └── processed/      # Cleaned and processed datasets
├── models/             # Trained models (.pkl)
├── notebooks/
│   ├── 01_eda.ipynb
│   ├── 02_preprocessing.ipynb
│   └── 03_models.ipynb
├── README.md
└── requirements.txt
Enter fullscreen mode Exit fullscreen mode

Machine Learning Models

The following models were trained and evaluated:

  • Logistic Regression
  • Decision Tree
  • Random Forest
  • XGBoost

The best overall performance was achieved with XGBoost and Random Forest.

Main evaluation metrics:

  • Accuracy
  • Precision
  • Recall
  • F1 Score
  • ROC-AUC

Main Objectives

  • Analyze customer behavior patterns
  • Identify factors…

LinkedIn


Proyecto desarrollado durante el Máster en Inteligencia Artificial y Big Data de Evolve.


  • ¿Qué opinas?
  • ¿Qué otra herramienta de visualización recomiendas para modelos de ML aparte de Power BI?, pensé en Tableau pero no tengo un duro

¡Espero tus comentarios abajo!

Top comments (0)