Pipeline completo de inteligencia de riesgo crediticio — desde los datos crudos hasta modelos en producción, API REST y dashboard interactivo.
Toda institución financiera enfrenta estos desafíos con su cartera de créditos
Los préstamos deteriorados se identifican tarde, cuando la mora ya es severa y la recuperación es difícil.
Se aplica la misma gestión a clientes con perfiles muy distintos, desperdiciando recursos de cobranza.
Operaciones con condiciones fuera del patrón (montos, plazos, tasas) pasan sin revisión y esconden riesgos ocultos.
No se compara cómo evolucionan las distintas generaciones de préstamos, impidiendo mejorar las políticas de otorgamiento.
Un pipeline de datos reproducible, tres modelos de machine learning entrenados sobre datos reales y un dashboard interactivo que permite actuar antes de que el problema sea irreversible.
Del dato crudo al modelo en producción — flujo completo en 8 etapas
Cada módulo tiene un propósito claro, entradas definidas y salidas reproducibles
¿Qué se hace? Se carga el archivo CSV original con los 124.781 préstamos y se examina la calidad del dato: nulos, distribuciones, rangos, valores atípicos y relaciones entre variables.
¿Qué se hace? Se transforma el dato crudo en un dataset limpio y analizable. Se documentan todos los cambios para que el proceso sea reproducible y auditable.
edad y antiguedad_mesestiene_scorinratio_cuota_ingreso, tramo_mora, tramo_plazo, en_mora, tramo_antiguedadVariable derivada más importante:
cuota ÷ ingreso mensual.
Si supera el 30% → sobreendeudamiento.
¿Qué se hace? Se analiza en profundidad cómo se distribuye la mora en todos los ejes del negocio. Es el diagnóstico completo de la salud de la cartera.
¿Qué se hace? El algoritmo K-Means agrupa automáticamente los 124.781 préstamos en segmentos con características similares, sin necesidad de etiquetar los datos manualmente.
¿Por qué K-Means? Es el estándar en segmentación de cartera crediticia: rápido, interpretable y permite actualizar los segmentos cuando ingresan nuevos datos.
¿Qué se hace? Se entrena un modelo de Gradient Boosting para predecir qué préstamos caerán en incumplimiento (calificación ≥ 3) antes de que ocurra. Es el módulo más valioso del sistema.
¿Cómo funciona el Gradient Boosting? Es un ensamble de árboles de decisión donde cada árbol corrige los errores del anterior. Es el algoritmo estándar de la industria para scoring crediticio.
califi >= 3 (sin data leakage: no usa DDM ni en_mora)¿Qué se hace? Se entrena un detector no supervisado para identificar préstamos cuyas condiciones financieras (monto, tasa, plazo, ingreso) se alejan del patrón habitual de la cartera.
¿Cómo funciona el IsolationForest? Construye árboles aleatorios que "aíslan" cada punto. Las anomalías se aíslan con menos cortes porque son raras y extremas. No necesita datos etiquetados.
¿Qué se hace? Se agrupa cada préstamo por su año/trimestre de originación (cosecha) y se analiza cómo evoluciona la mora a lo largo de su vida. Es la técnica estándar en banca para evaluar la calidad de las políticas de crédito a lo largo del tiempo.
| Cosecha | Préstamos | % Mora | Estado |
|---|---|---|---|
| 2014 | 99 | 42.4% | CRÍTICA |
| 2015 | 621 | 60.7% | CRÍTICA |
| 2016 | 8.338 | 55.4% | CRÍTICA |
| 2017 | 74.901 | 34.3% | VIGILAR |
| 2018 | 40.699 | 11.5% | INMADURA |
Los modelos entrenados se sirven como endpoints HTTP. Cualquier sistema externo (core bancario, CRM, Excel) puede consultar el riesgo de un préstamo en tiempo real.
{"probabilidad_incumplimiento": 0.2094,
"nivel_riesgo": "bajo",
"accion_recomendada": "...",
"umbral_usado": 0.45}
Métricas de la cartera en tiempo real + métricas de los modelos entrenados. Estado del sistema de un vistazo.
Filtros por área, riesgo y calificación. Tabs: morosidad, sucursales, segmentos. Descargas CSV.
Formulario interactivo: ingresás los datos de un préstamo y obtenés la probabilidad de incumplimiento, detección de anomalía y alerta global — sin necesitar la API.
Métricas verificables — no son simulaciones ni datos sintéticos
Herramientas de código abierto, estándar de la industria, sin costos de licencia
Tres perfiles de cliente que se benefician directamente
Scoring automático de nuevas solicitudes integrado en el proceso de aprobación. Alertas tempranas que disparan gestión preventiva antes de la mora severa.
Segmentación inteligente de socios para gestión diferenciada. Dashboard simple que no requiere conocimientos técnicos del equipo operativo.
Reporte ejecutivo automatizado con 29 gráficos. Análisis de cosechas para evaluar la calidad histórica de las políticas de otorgamiento.
Servicio de consultoría — adaptado a tus datos y procesos
Análisis completo de tu portafolio: distribución de mora, segmentos de riesgo, sucursales críticas y calidad de datos. Entregable: reporte HTML ejecutivo.
Desarrollo del modelo predictivo calibrado sobre tus datos históricos. Incluye pipeline completo, validación y documentación del umbral óptimo.
API REST + dashboard interactivo desplegado en tu infraestructura. Integrable con core bancario, CRM o cualquier sistema que haga peticiones HTTP.
Esta solución fue desarrollada y validada sobre 124.781 préstamos reales. El mismo pipeline se adapta a cualquier cartera crediticia — bancaria, cooperativa o fintech.
Tres opciones según el perfil técnico del cliente — de la más simple a la más robusta
¿Qué recibe el cliente? Una carpeta comprimida con todo el proyecto listo para correr. Los modelos ya están entrenados — no necesita datos históricos para empezar.
Lo que hace el cliente (una sola vez):
Descarga gratuita de docker.com. Disponible para Windows, Mac y Linux. Instalación de 5 minutos.
Extraer en cualquier carpeta del servidor o computadora donde vaya a correr.
docker-compose up --build
API disponible en http://localhost:8000/docs
Dashboard en http://localhost:8501
¿Qué es una imagen Docker? Es como un appliance — una caja sellada que contiene el sistema operativo, Python, todas las librerías y el código, todo junto. El cliente solo necesita Docker instalado.
No importa si el servidor del cliente tiene Windows Server, Ubuntu o cualquier otro sistema — la imagen corre igual en todos.
Proceso completo — vos hacés en tu máquina:
# 1. Construir la imagen (una vez, ~5 min) docker build -t cartera-analitica:v1 . # 2. Exportar como archivo .tar.gz docker save cartera-analitica:v1 | gzip \ > cartera-analitica-v1.tar.gz # 3. Entregar por USB, Google Drive o servidor FTP
El cliente hace en su máquina:
# 1. Cargar la imagen (una vez) docker load < cartera-analitica-v1.tar.gz # 2. Correr el sistema docker run -p 8000:8000 -p 8501:8501 \ cartera-analitica:v1
¿Cómo funciona? El sistema se despliega en un servidor en la nube. El cliente accede al dashboard desde su navegador con una URL, sin instalar absolutamente nada.
Ideal para instituciones sin área de IT o que quieren acceso desde múltiples dispositivos y ubicaciones.
| Criterio | A — ZIP | B — Imagen Docker | C — Nube |
|---|---|---|---|
| Requiere IT del cliente | Sí (básico) | Solo Docker | No |
| Costo mensual | $0 | $0 | $5–50 USD |
| Acceso remoto / móvil | No | No | Sí |
| Datos quedan en el cliente | Sí | Sí | Configurable |
| Tiempo de puesta en marcha | 15 min | 30 min | 2 min |
El sistema acepta datos reales del cliente desde el día uno — tres formas de conectarlo
El core bancario genera un reporte de cartera en Excel o CSV. El cliente lo exporta una vez al mes y lo copia en la carpeta del sistema.
El sistema se conecta directamente al SQL Server, PostgreSQL o MySQL del cliente. Descarga los datos frescos automáticamente sin intervención manual.
Se configura una tarea que corre automáticamente el primer día hábil de cada mes. El cliente no hace nada — el dashboard se actualiza solo.
El pipeline de análisis (notebooks 02–03–08) corre con cada nuevo corte de datos. Los modelos de machine learning (notebooks 05–06) se re-entrenan solo cuando hay razón para hacerlo.
| Situación | Análisis (NB02-03) | Modelos ML (NB05-06) |
|---|---|---|
| Nuevo corte mensual | Correr | No necesario |
| 6–12 meses de datos nuevos | Correr | Re-entrenar |
| Nueva política de crédito | Correr | Re-entrenar |
| AUC cae por debajo de 0.85 | Correr | Urgente |
| Cambio de sistema bancario | Adaptar | Re-entrenar |
# 1. Extraer datos frescos del core bancario python data/extraccion/extraer_cartera.py # 2. Limpiar y preparar jupyter nbconvert --execute notebooks/02_limpieza_cartera.ipynb # 3. Análisis de morosidad jupyter nbconvert --execute notebooks/03_analisis_morosidad.ipynb # 4. Actualizar segmentación con nuevos datos jupyter nbconvert --execute notebooks/04_segmentacion_deudores.ipynb # 5. Análisis de cosechas jupyter nbconvert --execute notebooks/08_analisis_cosechas.ipynb # 6. Regenerar reporte ejecutivo HTML jupyter nbconvert --execute notebooks/07_reporte_ejecutivo.ipynb echo "Dashboard actualizado - abrir http://localhost:8501"
Es normal que cada institución llame "DIAS_MORA" a lo que en el sistema es "ddm", o "FECHA_APERTURA" a lo que acá es "fec_operacion". La solución es un mapeo de columnas — una tabla de correspondencias que se configura una sola vez.
MAPA_COLUMNAS = {
"DIAS_MORA": "ddm",
"FECHA_APERTURA": "fec_operacion",
"SALDO_CAPITAL": "saldo_capital_cuota",
"TASA_INTERES": "tivbcp",
"COD_AGENCIA": "cod_su",
"CATEGORIA_BCP": "riesgo",
}
Columnas mínimas que debe tener la fuente: