Portfolio

Análisis de datos

Machine Learning, análisis exploratorio y consultas avanzadas. Python y SQL aplicados a problemas reales donde los datos necesitan estructura, limpieza y un modelo que responda preguntas concretas.

01

Machine Learning

Modelos predictivos y de clasificación aplicados a decisiones concretas de negocio. Cada proyecto parte de una pregunta concreta y termina con una métrica que mide si la respuesta funciona.

¿Todos tus clientes merecen la misma oferta?
El problema
Una cadena de electrónica trataba a todos sus clientes de la misma manera: mismas ofertas, mismos emails y descuentos similares. Con 6.000 clientes y 26 variables, necesitaba encontrar patrones de comportamiento que permitieran personalizar las campañas.
La solución
Seleccioné 9 variables de comportamiento relacionadas con gasto, frecuencia y canal. El análisis permitió identificar 4 perfiles de cliente, desde el premium hasta el riesgo de abandono, y asociar una estrategia a cada uno.
El resultado
96,8%acierto en el segmento premium
K-Meanst-SNE
Ver →
¿Qué pasa con las ventas cuando ocurre algo inesperado?
El problema
Una cadena retail podía prever bastante bien las semanas normales, pero sus predicciones fallaban cuando aparecían promociones, huelgas o problemas logísticos. El histórico explicaba el pasado, pero no siempre lo que estaba ocurriendo alrededor.
La solución
Comparé dos modelos sobre 156 semanas: uno basado solo en ventas históricas y otro que incorporaba cinco variables externas. Los validé mediante backtesting temporal y simulé más de diez escenarios futuros.
El resultado
−32%error frente al modelo basado solo en histórico
SARIMAXstatsmodels
Ver →
¿A quién estamos a punto de perder?
El problema
Una aerolínea clasificaba a sus pasajeros en tres niveles con reglas rígidas: Básico, Frecuente y Premium. Pero esas reglas no siempre reflejaban su comportamiento real, así que era difícil saber quién necesitaba de verdad una acción de fidelización.
La solución
Probé tres modelos sobre 21 variables de vuelo, gasto e incidencias, los validé frente a un baseline y analicé qué variables ayudaban a diferenciar los distintos perfiles de pasajero.
El resultado
×2mejora frente a las reglas anteriores
Gradient Boostingscikit-learn
Ver →
¿Cuánto venderemos la próxima semana?
El problema
Una cadena retail planifica inventario y personal mirando principalmente lo que vendió el año anterior. El problema: pedir de más genera exceso de stock; pedir de menos significa quedarse sin producto cuando la demanda aumenta.
La solución
Entrené un modelo de previsión con 208 semanas de ventas y lo validé sobre otras 52 semanas que el modelo nunca había visto. El objetivo era comprobar hasta qué punto el histórico permitía anticipar la demanda futura.
El resultado
2,21%error medio de previsión (MAPE)
SARIMAstatsmodels
Ver →
¿Qué hace que un cliente elija un vuelo?
El problema
Una aerolínea combina precio, escalas, equipaje y flexibilidad, pero no sabe cuánto pesa cada factor en la decisión del cliente. Y ese valor puede cambiar según el tipo de pasajero.
La solución
Analicé 24 combinaciones de vuelo valoradas por 1.000 clientes. Mediante un análisis conjoint descompuse 24.000 valoraciones para medir cuánto aporta cada atributo, tanto para el conjunto de clientes como para cada segmento.
El resultado
69%peso de precio y escalas en la decisión
Conjointstatsmodels
Ver →
Ver más proyectos de Machine Learning en GitHub
02

Python

Análisis exploratorio con Python, aplicado a preguntas concretas de negocio. Cada proyecto parte de un dataset, lo limpia, lo analiza y termina con un hallazgo que cambia la conversación.

EDA · Comercial
El problema
Una empresa de servicios con tres departamentos necesita decidir dónde reforzar plantilla. Se asume que los empleados más veteranos venden más, pero nadie lo ha comprobado con datos.
La solución
Diagnóstico de nulos, imputación justificada, ratios de productividad por departamento y matriz de correlación para validar si la edad predice las ventas.
El resultado
-0,1correlación edad–ventas
PandasNumPySeaborn
Ver →
EDA · Educación
El problema
El servicio de orientación de una universidad quiere saber qué hábitos predicen mejor la nota de examen para diseñar un programa de tutorías dirigido a estudiantes en riesgo.
La solución
Categorización con pd.cut(), comparación de grupos por mediana y percentiles, y panel de 6 visualizaciones: histogramas, scatter plots, heatmap y pairplot.
El resultado
+22puntos por estudiar > mediana
PandasMatplotlibSeaborn
Ver →
EDA · Salud
El problema
Una aseguradora de salud quiere reducir costes identificando tempranamente a los pacientes de riesgo cardiovascular alto y decidir si es justo ajustar primas según perfil de riesgo.
La solución
Conversión de categóricas a numéricas, ranking de factores de riesgo con correlación ordenada y segmentación de pacientes con groupby multi-métrica.
El resultado
-0,94correlación pasos–riesgo
PandasNumPyMatplotlib
Ver →
Ver más proyectos Python en GitHub
03

SQL

Consultas avanzadas, exploración de datos y análisis con T-SQL. Cada proyecto es autocontenido: crea sus tablas, carga datos realistas y resuelve problemas de negocio con CTEs, Window Functions y subqueries.

Análisis de ventas · Automoción
El problema
Una red de 50 concesionarios del Grupo Volkswagen necesita identificar a sus mejores vendedores, comparar rendimiento entre marcas y segmentar concesionarios por volumen de facturación.
La solución
CTEs encadenadas, subqueries correlacionadas, LAG() para variación mensual, PERCENTILE_CONT para distribución y RANK() para rankings. Cada ejercicio resuelto con doble enfoque.
El resultado
10ejercicios · doble enfoque
T-SQLCTEsSubqueries
Ver →
Window Functions · Fabricación
El problema
AdventureWorks necesita analizar el comportamiento de compra de sus clientes, crear rankings de productos por precio y medir el crecimiento interanual por cliente para identificar a los top 10.
La solución
ROW_NUMBER, RANK, DENSE_RANK, NTILE, sumas acumuladas con ROWS BETWEEN, LAG/LEAD para filas consecutivas y CTE + LAG para crecimiento YoY. Examen final tipo entrevista técnica.
El resultado
11+ejercicios progresivos
T-SQLWindow FunctionsLAG/LEAD
Ver →
Análisis de clientes · Retail
El problema
Una tienda de alimentación necesita segmentar clientes, clasificar productos, detectar patrones de compra y construir rankings cruzados por ciudad, categoría y proveedor.
La solución
LEFT JOIN para detectar gaps, CASE para clasificaciones de negocio (VIP/normal, frecuente/ocasional), CTEs + Window Functions y combinaciones avanzadas: top 3 clientes por ciudad, dashboard SQL.
El resultado
40ejercicios · 8 bloques
T-SQLCASERANK
Ver →
Ver más proyectos SQL en GitHub