<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Álvaro Martínez</title>
    <description>The latest articles on DEV Community by Álvaro Martínez (@albaro).</description>
    <link>https://dev.to/albaro</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3927755%2F5b57b5b3-f649-4d37-a317-5c0562733674.jpeg</url>
      <title>DEV Community: Álvaro Martínez</title>
      <link>https://dev.to/albaro</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/albaro"/>
    <language>en</language>
    <item>
      <title>Cómo predije el abandono de clientes bancarios con XGBoost y Power BI</title>
      <dc:creator>Álvaro Martínez</dc:creator>
      <pubDate>Tue, 12 May 2026 19:28:19 +0000</pubDate>
      <link>https://dev.to/evolve-space/como-predije-el-abandono-de-clientes-bancarios-con-xgboost-y-power-bi-3fj0</link>
      <guid>https://dev.to/evolve-space/como-predije-el-abandono-de-clientes-bancarios-con-xgboost-y-power-bi-3fj0</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Exploratory Data Analysis (EDA)&lt;/li&gt;
&lt;li&gt;Preprocesado y feature engineering&lt;/li&gt;
&lt;li&gt;Entrenamiento de modelos&lt;/li&gt;
&lt;li&gt;Evaluación de métricas&lt;/li&gt;
&lt;li&gt;Dashboards en Power BI&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Dataset y problema
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.kaggle.com/datasets/radheshyamkollipara/bank-customer-churn" rel="noopener noreferrer"&gt;Bank Customer Churn Dataset en Kaggle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El proyecto utiliza un dataset bancario con información de clientes como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edad&lt;/li&gt;
&lt;li&gt;País&lt;/li&gt;
&lt;li&gt;Salario estimado&lt;/li&gt;
&lt;li&gt;Actividad del cliente&lt;/li&gt;
&lt;li&gt;Tipo de tarjeta&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;El objetivo era resolver un problema de clasificación binaria:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;1&lt;/code&gt; → el cliente abandona&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;0&lt;/code&gt; → el cliente permanece&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Análisis exploratorio de datos
&lt;/h2&gt;

&lt;p&gt;Durante el EDA me di cuenta de patrones bastante interesantes.&lt;/p&gt;

&lt;p&gt;Por ejemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los clientes de mayor edad mostraban una tasa de churn más alta&lt;/li&gt;
&lt;li&gt;Algunos países tenían un porcentaje de abandono claramente superior&lt;/li&gt;
&lt;li&gt;Los clientes inactivos tenían más probabilidad de abandonar el banco&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjvmfphl6yxa70sqfbn4k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjvmfphl6yxa70sqfbn4k.png" alt="Edad-x-churn" width="563" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1zxpc8vit0na8qgnra4u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1zxpc8vit0na8qgnra4u.png" alt="Activos-x-churn" width="580" height="456"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Preprocesado de datos
&lt;/h2&gt;

&lt;p&gt;Para preparar el dataset trabajé principalmente en:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Encoding de variables categóricas&lt;/li&gt;
&lt;li&gt;Escalado de variables numéricas&lt;/li&gt;
&lt;li&gt;División train/test&lt;/li&gt;
&lt;li&gt;Comparación entre datasets escalados y no escalados&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;




&lt;h2&gt;
  
  
  Modelos utilizados
&lt;/h2&gt;

&lt;p&gt;Probé varios algoritmos de clasificación:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logistic Regression&lt;/li&gt;
&lt;li&gt;Decision Tree&lt;/li&gt;
&lt;li&gt;Random Forest&lt;/li&gt;
&lt;li&gt;XGBoost&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La idea era comparar distintos enfoques y entender cómo cambiaban métricas como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Accuracy&lt;/li&gt;
&lt;li&gt;Precision&lt;/li&gt;
&lt;li&gt;Recall&lt;/li&gt;
&lt;li&gt;F1 Score&lt;/li&gt;
&lt;li&gt;ROC-AUC&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Resultados
&lt;/h2&gt;

&lt;p&gt;Los mejores resultados se obtuvieron con XGBoost y Random Forest.&lt;/p&gt;

&lt;p&gt;XGBoost consiguió el mejor equilibrio entre:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recall&lt;/li&gt;
&lt;li&gt;ROC-AUC&lt;/li&gt;
&lt;li&gt;F1 Score&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7t6dvyv3a6pt4gyde1j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7t6dvyv3a6pt4gyde1j.png" alt="Tabla-modelos" width="558" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Además, el análisis de feature importance permitió identificar variables especialmente relevantes para el churn, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Age&lt;/li&gt;
&lt;li&gt;Balance&lt;/li&gt;
&lt;li&gt;IsActiveMember&lt;/li&gt;
&lt;li&gt;Number of Products&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcbu6c4bs4g8fwlzkxlgb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcbu6c4bs4g8fwlzkxlgb.png" alt="importancia-de-valores" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Dashboard en Power BI
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;El dashboard incluye:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;KPIs de churn&lt;/li&gt;
&lt;li&gt;Segmentación de clientes&lt;/li&gt;
&lt;li&gt;Comparación de modelos&lt;/li&gt;
&lt;li&gt;Visualización de feature importance&lt;/li&gt;
&lt;li&gt;Patrones de abandono por país, edad y actividad&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdntfutmr1lbv1d4igbhq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdntfutmr1lbv1d4igbhq.png" alt="Bussiness-Insights" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2v03ayqusvfh2fy9exdr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2v03ayqusvfh2fy9exdr.png" alt="ML-Performance" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Lo que aprendí
&lt;/h2&gt;

&lt;p&gt;Este proyecto me ayudó mucho a entender mejor el flujo de trabajo de estos proyectos.&lt;/p&gt;

&lt;p&gt;Aspectos como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;el preprocesado&lt;/li&gt;
&lt;li&gt;la interpretación de métricas&lt;/li&gt;
&lt;li&gt;la comunicación visual&lt;/li&gt;
&lt;li&gt;el enfoque de negocio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;son igual de importantes que el propio modelo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repositorio
&lt;/h2&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/AlvaroMF02" rel="noopener noreferrer"&gt;
        AlvaroMF02
      &lt;/a&gt; / &lt;a href="https://github.com/AlvaroMF02/Proyecto-Master-DataScience-Evolve-AlvaroMartinez" rel="noopener noreferrer"&gt;
        Proyecto-Master-DataScience-Evolve-AlvaroMartinez
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Customer Churn Prediction Evolve Alvaro Martinez&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Machine Learning project focused on predicting customer churn in a banking environment using classification models and business-oriented analysis.&lt;/p&gt;
&lt;p&gt;The project includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Exploratory Data Analysis (EDA)&lt;/li&gt;
&lt;li&gt;Data preprocessing and feature engineering&lt;/li&gt;
&lt;li&gt;Model training and evaluation&lt;/li&gt;
&lt;li&gt;Power BI dashboard for business insights&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Technologies Used&lt;/h1&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Pandas&lt;/li&gt;
&lt;li&gt;NumPy&lt;/li&gt;
&lt;li&gt;Scikit-learn&lt;/li&gt;
&lt;li&gt;XGBoost&lt;/li&gt;
&lt;li&gt;Matplotlib&lt;/li&gt;
&lt;li&gt;Seaborn&lt;/li&gt;
&lt;li&gt;Jupyter Notebook&lt;/li&gt;
&lt;li&gt;Power BI&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Project Structure&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;├── dashboard/          &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Power BI dashboard files&lt;/span&gt;
├── data/
│   ├── raw/            &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Original dataset&lt;/span&gt;
│   └── processed/      &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Cleaned and processed datasets&lt;/span&gt;
├── models/             &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Trained models (.pkl)&lt;/span&gt;
├── notebooks/
│   ├── 01_eda.ipynb
│   ├── 02_preprocessing.ipynb
│   └── 03_models.ipynb
├── README.md
└── requirements.txt&lt;/pre&gt;

&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Machine Learning Models&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;The following models were trained and evaluated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Logistic Regression&lt;/li&gt;
&lt;li&gt;Decision Tree&lt;/li&gt;
&lt;li&gt;Random Forest&lt;/li&gt;
&lt;li&gt;XGBoost&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The best overall performance was achieved with XGBoost and Random Forest.&lt;/p&gt;
&lt;p&gt;Main evaluation metrics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Accuracy&lt;/li&gt;
&lt;li&gt;Precision&lt;/li&gt;
&lt;li&gt;Recall&lt;/li&gt;
&lt;li&gt;F1 Score&lt;/li&gt;
&lt;li&gt;ROC-AUC&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Main Objectives&lt;/h1&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Analyze customer behavior patterns&lt;/li&gt;
&lt;li&gt;Identify factors…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AlvaroMF02/Proyecto-Master-DataScience-Evolve-AlvaroMartinez" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://www.linkedin.com/in/varomf/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Proyecto desarrollado durante el Máster en Inteligencia Artificial y Big Data de Evolve.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;¿Qué opinas?&lt;/li&gt;
&lt;li&gt;¿Qué otra herramienta de visualización recomiendas para modelos de ML aparte de Power BI?, pensé en Tableau pero no tengo un duro&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;¡Espero tus comentarios abajo! &lt;/p&gt;

</description>
      <category>python</category>
      <category>datascience</category>
      <category>pandas</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
