Sobre MíQué hagoProyectosLabContacto
  • MLOPS
  • FASTAPI
  • DOCKER
  • MONITORING
  • +1

Credit Risk Platform

Credit Risk Platform

Plataforma MLOps de scoring de crédito de punta a punta: entrenamiento reproducible con registro de modelos versionado, API de inferencia en FastAPI con validación de entrada, monitorización de drift por PSI y observabilidad con Prometheus y Grafana, todo dockerizado y con CI. Código en github.com/delcenjo/credit-risk-platform.

Quería aprender la parte de ML que los cursos casi nunca enseñan: qué pasa con el modelo después de entrenarlo. Esta plataforma entrena y versiona un modelo de riesgo de crédito, lo sirve detrás de una API validada y vigila el drift del tráfico real, con toda la infraestructura para levantarla en local con un docker-compose.

  • ROC-AUC0.78
  • Umbral por coste0.14
  • DriftPSI + Grafana

El modelo es la parte fácil

El clasificador ronda 0,78 de ROC-AUC, y ese no es el punto del proyecto. El punto es todo lo demás: el entrenamiento compara candidatos por validación cruzada, calibra al ganador, elige el umbral de decisión por coste (0,14, no el 0,5 por defecto) y registra cada versión con sus métricas, hiperparámetros y el hash de los datos.

Una API que no acepta basura

La API de FastAPI valida cada entrada con esquemas de Pydantic: un campo fuera de rango devuelve un 422 claro en lugar de un score silenciosamente mal. Cada respuesta incluye la probabilidad, la decisión (approve/decline) y la versión exacta del modelo que la produjo.

Enterarse antes de que se rompa

Un perfil de referencia de los datos de entrenamiento y métricas de Population Stability Index sobre el tráfico real, expuestas a Prometheus y visualizadas en Grafana junto a la latencia y la distribución de scores. Si los datos cambian, la métrica de drift lo dice antes de que las predicciones empiecen a fallar en silencio.

Gráfica con la curva de calibración pegada a la diagonal ideal
Curva de calibración del modelo servido: la probabilidad predicha frente a la frecuencia real
Gráfica en forma de U del coste esperado, con el mínimo marcado
El coste esperado según el umbral de decisión: el mínimo cae en 0,14, no en 0,5

Cuaderno interactivo

Corre Python de verdad en tu navegador vía Pyodide (WebAssembly), sin servidor detrás: la primera carga tarda unos segundos en arrancar el intérprete, y después cada celda se puede volver a ejecutar.

Perfilado de datos columna a columna antes de modelar

Cuaderno de Jupyter ejecutable: Python de verdad corriendo en tu navegador vía Pyodide, sin servidor detrás.

¿Conectamos?

Hablemos: feedback, colaboración o una oportunidad.

Puedes escribirme por un proyecto, una duda técnica, para darme feedback o por unas prácticas o un primer puesto junior. Respondo siempre.

Escríbeme

Próximos proyectos:

Hecho con

PythonPyTorchscikit-learnpandasNumPyJupyterHugging FaceLangChainFastAPIPydanticDockerGitHub ActionsPrometheusGrafanaMLflowPostgreSQLGitGitHubLinuxStreamlitSQLiteAnthropicBashPyPIOllamaPythonPyTorchscikit-learnpandasNumPyJupyterHugging FaceLangChainFastAPIPydanticDockerGitHub ActionsPrometheusGrafanaMLflowPostgreSQLGitGitHubLinuxStreamlitSQLiteAnthropicBashPyPIOllama
hola@jmwebsoluciones.com