Visitar URL original
Gabriel-Caruso (Gabriel Caruso) · GitHub
Skip to content
View Gabriel-Caruso's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report Gabriel-Caruso

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Gabriel-Caruso/README.md
Header

Terminal

About me
Ramiro Gabriel Caruso: Junior Data Scientist y Data Analyst en Oviedo, disponible para trabajar en remoto

Featured projects

Telco churn: predicción de bajas de clientes

ML end-to-end en Databricks: de un CSV en bruto a una app pública que dice a quién llamar primero

App de Telco churn en Streamlit Tasa de baja en fibra según servicios extra contratados

PR-AUC 0,635 (un modelo al azar: 0,265) · lista mensual de 806 clientes en riesgo · 37 tests

El problema: una operadora pierde al 26,5 % de sus clientes. El equipo de retención no puede llamar a todos, así que necesita saber a quién contactar primero. El modelo, entrenado con 7043 clientes del dataset IBM Telco, ordena a los clientes actuales por probabilidad de baja.

CSV ─► bronze ─► silver ─► gold ─► MLflow (CV 5 folds) ─► Unity Catalog [champion]
                                                              ├─► batch scoring
                                                              ├─► endpoint REST
                                                              └─► app Streamlit
  • Desarrollado en Databricks: capas bronze, silver y gold en tablas Delta de Unity Catalog, con validación en cada capa y features en un paquete propio con tests (la misma función entrena, puntúa y alimenta la app).
  • Modelado: regresión logística frente a random forest, gradient boosting y XGBoost ajustados, comparados en MLflow. Los challengers solo ganan ~0,02 de PR-AUC, dentro del ruido entre folds, así que se mantiene la logística porque es explicable.
  • Decisión de negocio: PR-AUC por el desbalanceo y un umbral de 0,40 elegido por el coste de cada baja detectada.
  • Hallazgos clave: el 62 % de las bajas llegan en el primer mes, y la fibra contratada sola es el problema (60 % de bajas sin servicios extra frente al 9 % con los seis).
  • Producción: modelo registrado con el alias champion, batch scoring a tabla, endpoint REST con Model Serving y app bilingüe con explicación de cada predicción.

App en vivo
Repo

Python · Databricks · MLflow · Unity Catalog · Delta Lake · scikit-learn · Streamlit · pytest

Si la app lleva tiempo sin visitas, Streamlit la duerme: pulsa el botón para despertarla y espera unos segundos.


Tasador de vivienda en Madrid

ML end-to-end: de anuncios scrapeados en bruto a una API REST pública

Tasador

R² 0,86 · ~16 % de error medio en el 80 % del mercado · −49 % de error frente al baseline

Predice el precio de venta de una vivienda en Madrid a partir de los datos de su anuncio (11,8k anuncios de Idealista).

  • Limpieza de datos: valores centinela, NaNs estructurales frente a faltantes reales, duplicados ocultos eliminados con una clave de 9 campos y más de 50 variables extraídas de las etiquetas de texto libre.
  • Modelado: Baseline lineal frente a XGBoost, LightGBM y CatBoost, con split estratificado por distrito y ajuste con Optuna. Ganador: CatBoost.
  • Hallazgo clave: la ingeniería de variables (barrio + etiquetas) redujo el error 10 veces más que el ajuste de hiperparámetros.
  • Despliegue: FastAPI en Render, con validación de entradas, GET/POST /predict y documentación interactiva con Swagger.

API en vivo
Repo modelo
Repo API

Python · CatBoost · Optuna · scikit-learn · FastAPI · Render

Proyecto en equipo con Ana Manzanares. Me encargué de la limpieza de datos, el modelado y la optimización. La primera petición puede tardar ~1 min porque el servidor gratuito arranca en frío.


▓▒░ SYSTEMS & TECHNOLOGIES ░▒▓

LANGUAGES
Python SQL Java JavaScript

DATA / ML
Pandas NumPy scikit-learn Matplotlib CatBoost MLflow

DEPLOY
FastAPI Streamlit pytest

CLOUD / DATA
Azure Databricks SQLite

TOOLS
Git GitHub VS Code Jupyter


Competencias: Python, pandas, NumPy, scikit-learn y SQL sólidos; Git a diario; Azure en uso; Databricks aprendiendo

▓▒░ SYSTEM DIAGNOSTICS ░▒▓

BBS Stats Phosphor Langs

BBS Streak


▓▒░ PROJECTS MAINTAINED ░▒▓


▓▒░ ESTABLISH CONTACT ░▒▓

GitHub LinkedIn Twitter


Pinned Loading

  1. ML-idealista ML-idealista Public

    Proyecto ML predicción de precios de vivienda a la venta en Madrid

    Jupyter Notebook 1

  2. telco-churn-prediction telco-churn-prediction Public

    Predicción de bajas de clientes de principio a fin en Databricks: capas bronze/silver/gold, MLflow, Unity Catalog, batch scoring, Model Serving y app pública en Streamlit.

    Jupyter Notebook

  3. DS-Online-Ramiro-Caruso DS-Online-Ramiro-Caruso Public

    Repositorio personal del Bootcamp Online de Data Science @tb-ds-online

    Jupyter Notebook