• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
      • Ajuste de Curvas
      • Calculadora de Matrices
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
    • Negocios
      • CLV
      • Scoring
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Desbalanceo de Clases en Credit Scoring: Por Qué Usamos Ponderación en lugar de Undersampling

Credit Scoring, Laboratorio

septiembre 1, 2026 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 9 minutos

En credit scoring el desbalanceo de clases es la norma, no la excepción. En una cartera de crédito al consumo típica la tasa de default oscila entre el 2% y el 15%. Eso significa que por cada cliente que impaga hay entre 6 y 50 que pagan correctamente. El dataset de entrenamiento refleja esa realidad y esa asimetría plantea un problema técnico concreto al ajustar el modelo.

Un algoritmo de clasificación entrenado sobre un dataset muy desbalanceado tiende a ignorar la clase minoritaria. Si el 95% de los clientes no impagan, el modelo puede alcanzar una precisión del 95% simplemente prediciendo que nadie impaga, sin aprender absolutamente nada útil. El Gini de ese modelo sería 0.

Para corregir este problema existen tres enfoques principales: undersampling (reducir la clase mayoritaria), oversampling (amplificar la clase minoritaria, por ejemplo con SMOTE) y ponderación de clases (ajustar la función de pérdida para que el modelo preste más atención a los errores en la clase minoritaria).

El constructor de scorecards del laboratorio de Analytics Lane y ScoreFlow usan ponderación de clases. Esta entrada explica por qué descartamos el undersampling, cuándo el oversampling tiene sentido y cuáles son las implicaciones prácticas de la decisión que tomamos.

Tabla de contenidos

  • 1. El problema del desbalanceo en credit scoring
  • 2. Las tres soluciones y sus tradeoffs
    • 2.1. Opción 1: Undersampling
    • 2.2. Opción 2: Oversampling (SMOTE y variantes)
    • 2.3. Opción 3: Ponderación de clases
  • 3. Por qué elegimos ponderación de clases en el constructor
  • 4. Cómo funciona en el constructor
  • 5. Cuándo el undersampling podría tener sentido
  • 6. Conclusiones

El problema del desbalanceo en credit scoring

Antes de entrar en las soluciones, vale la pena entender exactamente cuál es el problema técnico.

Por Qué las Contraseñas Largas son más Seguras que las Complejas
En Analytics Lane
Por Qué las Contraseñas Largas son más Seguras que las Complejas

La regresión logística, el algoritmo base para la construcción de los scorecard, minimiza la log-loss, que es la suma de las pérdidas individuales de cada observación: \mathcal{L} = -\frac{1}{n} \sum_{i=1}^{n} \left[ y_i \log(\hat{p}_i) + (1 - y_i) \log(1 - \hat{p}_i) \right]

Con un dataset donde el 95% de las observaciones son no eventos (y = 0), el 95% de los términos de esta suma corresponden a buenos pagadores. El algoritmo dedica el 95% de su “atención” a clasificar correctamente a los buenos pagadores y solo el 5% a los malos.

El resultado es un modelo que predice probabilidades de default sistemáticamente bajas, empujadas hacia cero por la masa de no eventos, y que tiene dificultades para discriminar en el rango de probabilidades altas donde viven los malos pagadores.

Curiosamente, el WOE compensa parcialmente este problema porque normaliza las distribuciones antes de que entren en la regresión. Pero con tasas de default muy bajas (< 2%) o incluso muy altas (> 15%) el desbalanceo sigue siendo relevante incluso con WOE.

Las tres soluciones y sus tradeoffs

Publicidad


Opción 1: Undersampling

Se eliminan observaciones de la clase mayoritaria hasta alcanzar un ratio más equilibrado, por ejemplo 50/50 o 70/30.

Cómo funciona: si tienes 50.000 buenos pagadores y 2.500 malos, mantienes los 2.500 malos y muestreas aleatoriamente 2.500 (o 5.000 o 7.500) buenos pagadores, descartando el resto.

Ventajas:

  • Simple de implementar
  • Reduce el tiempo de entrenamiento al trabajar con menos datos
  • El modelo ve un dataset más equilibrado

Desventajas críticas en credit scoring:

  • Pierde información real: Descartas el 90% de tus buenos pagadores, observaciones reales con información válida sobre el comportamiento crediticio. En un dataset de 50.000 observaciones puedes quedarte con solo 5.000-7.500 efectivas. Esa pérdida de información reduce la calidad del modelo, especialmente en los segmentos de la distribución donde los buenos pagadores son el grupo dominante.
  • Distorsiona la distribución del WOE: El WOE se calcula sobre las proporciones de eventos y no eventos en cada bin. Si aplicas undersampling antes de calcular el WOE, estás calculando proporciones sobre una muestra artificial que no refleja la distribución real de la población. Los WOE resultantes están sesgados, y por tanto los coeficientes de la regresión también.
  • Las probabilidades predichas son incorrectas: Un modelo entrenado con undersampling aprende a predecir probabilidades en el contexto del dataset rebalanceado (50/50 o 70/30), no en el contexto real de la población (95/5). Las probabilidades que predice en producción necesitan recalibrarse, lo que añade un paso adicional y una fuente de error.
  • El scorecard es menos estable: Con menos datos de entrenamiento los coeficientes tienen mayor varianza, son más sensibles a qué observaciones específicas se incluyeron en la muestra. El modelo es más inestable.

Opción 2: Oversampling (SMOTE y variantes)

Se generan observaciones sintéticas de la clase minoritaria, malos pagadores artificiales, hasta equilibrar el dataset.

SMOTE (Synthetic Minority Oversampling Technique) genera nuevos malos pagadores interpolando entre malos pagadores existentes en el espacio de las variables originales.

Ventajas:

  • No pierde información de la clase mayoritaria
  • Puede mejorar la discriminación en la clase minoritaria

Desventajas en credit scoring:

  • Las observaciones sintéticas no son clientes reales: En credit scoring los datos son observaciones de comportamiento real, un cliente pagó o no pagó. Generar malos pagadores artificiales introduce ruido: las interpolaciones pueden crear perfiles de clientes que no existen en la realidad y que el modelo aprenderá a clasificar incorrectamente.
  • El WOE sobre datos sintéticos es cuestionable: El mismo problema que con el undersampling: el WOE calculado sobre un dataset que incluye observaciones sintéticas no refleja la distribución real. La relación entre el WOE y la tasa de default real en producción se distorsiona.
  • La calibración se complica: Las probabilidades predichas por un modelo entrenado con SMOTE también necesitan recalibración para reflejar las tasas reales de la población.
  • Cuestionable ante el regulador: En un contexto regulado, donde el modelo debe ser explicable y auditable, introducir datos sintéticos en el entrenamiento añade una capa de complejidad difícil de justificar. La pregunta “¿de dónde vienen estos datos?” tiene una respuesta incómoda cuando parte del entrenamiento son clientes artificiales.

Opción 3: Ponderación de clases

Se modifica la función de pérdida para que los errores en la clase minoritaria tengan más peso que los errores en la clase mayoritaria. En lugar de tratar cada observación igual, el algoritmo penaliza más los fallos en malos pagadores.

La log-loss ponderada es: \mathcal{L}_w = -\frac{1}{n} \sum_{i=1}^{n} w_i \left[ y_i \log(\hat{p}_i) + (1 - y_i) \log(1 - \hat{p}_i) \right] donde w_i es el peso de cada observación:

  • w_i = \frac{n}{2 \times n_0} para los no eventos (buenos pagadores)
  • w_i = \frac{n}{2 \times n_1} para los eventos (malos pagadores)

Con una tasa de default del 5%, los malos pagadores reciben un peso aproximadamente 19 veces mayor que los buenos pagadores. El modelo dedica una atención proporcional a ambas clases a pesar del desbalanceo.

Ventajas:

  • Usa todos los datos reales: No se descarta ninguna observación ni se generan datos sintéticos. El modelo aprende sobre la distribución real de la población.
  • El WOE se calcula correctamente: El WOE y el IV se calculan sobre las proporciones reales de eventos y no eventos, no sobre una muestra artificial. Las relaciones que aprende el modelo reflejan la realidad del portfolio.
  • Las probabilidades predichas son correctas: A diferencia del undersampling y el oversampling, la ponderación de clases no distorsiona la escala de las probabilidades predichas. El modelo aprende a predecir probabilidades en el contexto de la distribución real, lo que es esencial para la calibración del scorecard y para la estimación de pérdidas esperadas.
  • Transparente y auditable: La ponderación de clases es una decisión de la función de pérdida, matemáticamente limpia, fácil de documentar y de explicar ante el regulador.

Desventajas:

  • Puede aumentar la varianza del modelo: Al multiplicar el peso de los malos pagadores, el modelo es más sensible a observaciones individuales de la clase minoritaria. Un mal pagador atípico tiene más influencia sobre los coeficientes que con un dataset equilibrado.
  • No resuelve el problema si la clase minoritaria es extremadamente pequeña: Con tasas de default inferiores al 1% y datasets pequeños (< 5.000 observaciones), la ponderación puede no ser suficiente porque hay demasiado pocos eventos para que el modelo aprenda patrones robustos. En ese caso puede ser necesario combinar ponderación con alguna forma de aumento de datos, aunque no en el sentido del SMOTE estándar.

Publicidad


Por qué elegimos ponderación de clases en el constructor

La decisión de usar ponderación de clases en lugar de undersampling o oversampling se basa en tres razones que son específicas del contexto del credit scoring:

  1. El WOE debe calcularse sobre la distribución real: El WOE es la piedra angular del scorecard. Si lo calculas sobre un dataset artificialmente rebalanceado, los valores de WOE no reflejan la realidad del portfolio y el scorecard que construyes no es válido para la población real. La ponderación de clases es la única técnica que no toca los datos de entrada, solo la función de pérdida durante el entrenamiento de la regresión logística.
  2. La calibración es crítica: Como explicamos en el artículo Calibración vs Discriminación, las probabilidades predichas por el scorecard deben ser correctas, especialmente cuando el modelo se usa para estimar pérdidas esperadas o para pricing ajustado por riesgo. El undersampling y el oversampling producen probabilidades sistemáticamente incorrectas que requieren recalibración. La ponderación de clases produce probabilidades directamente calibradas con la distribución real.
  3. La trazabilidad regulatoria: El constructor incluye un log de decisiones que documenta todo el proceso de construcción del modelo. En ese log, “se aplicó ponderación de clases con peso inversamente proporcional a la frecuencia de clase” es una entrada clara y justificable. “Se eliminó el 90% de los buenos pagadores aleatoriamente” o “se generaron malos pagadores sintéticos mediante SMOTE” son entradas más difíciles de defender ante un comité de validación.

Cómo funciona en el constructor

El constructor aplica automáticamente la ponderación de clases en el paso 5 (Modelo) cuando detecta que la tasa de eventos es inferior al 20% o superior al 80%. Los pesos se calculan como: w_{no\ evento} = \frac{n}{2 \times n_0} \quad w_{evento} = \frac{n}{2 \times n_1}

donde n es el total de observaciones, n_0 el número de no eventos y n_1 el número de eventos.

El constructor muestra los pesos aplicados en el panel de resultados del paso 5 para que queden documentados en el log de decisiones. Si la tasa de eventos está entre el 20% y el 80%, la ponderación no se aplica, el desbalanceo no es suficientemente severo para justificarla.

El analista puede desactivar la ponderación automática si lo considera oportuno, por ejemplo si la tasa de eventos del 5% corresponde a un portfolio con suficiente volumen de malos pagadores (más de 500 eventos) donde el modelo puede aprender sin ayuda. En ese caso la justificación queda registrada en el log.

Cuándo el undersampling podría tener sentido

Aunque no es el enfoque del constructor, hay situaciones donde el undersampling puede estar justificado:

  • Datasets muy grandes con restricciones computacionales: Con 10 millones de observaciones y el 2% de tasa de default, el dataset tiene 200.000 malos pagadores, suficientes para entrenar un modelo robusto. Si las restricciones computacionales impiden trabajar con los 10 millones, muestrar 1 millón de buenos pagadores junto a los 200.000 malos puede ser una solución práctica. Pero el WOE debe calcularse sobre el dataset completo antes del muestreo.
  • Exploración rápida y prototipado: Para verificar rápidamente si un conjunto de variables tiene poder predictivo antes de invertir tiempo en un modelo completo, trabajar con un dataset rebalanceado puede acelerar el proceso. Pero el modelo final debe entrenarse con los datos reales y ponderación de clases.
  • Cuando el oversampling no es viable: Si los malos pagadores son tan pocos que el oversampling generaría una proporción muy alta de datos sintéticos (por ejemplo, el 80% de la clase minoritaria sería artificial), el undersampling puede ser más honesto, aunque sigue teniendo los problemas descritos.

Publicidad


Conclusiones

El desbalanceo de clases en credit scoring no es un problema que se resuelva manipulando los datos, se resuelve ajustando cómo el algoritmo aprende de ellos. La ponderación de clases mantiene la integridad del dataset, preserva la correcta calibración de las probabilidades y produce un modelo directamente auditable.

El undersampling y el oversampling son herramientas válidas en otros contextos: detección de fraude con millones de transacciones, visión por computador con clases muy poco frecuentes, problemas donde la calibración no es crítica. Pero en credit scoring, donde el WOE debe reflejar la distribución real del portfolio y donde las probabilidades predichas se usan directamente para estimar pérdidas y tomar decisiones reguladas, la ponderación de clases es la opción técnicamente más sólida.

El constructor de scorecards del laboratorio y ScoreFlow la aplican automáticamente y la documenta en el log de decisiones, para que la elección sea transparente, reproducible y justificable en cualquier proceso de validación.

Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Por Qué las Contraseñas Largas son más Seguras que las Complejas
  • Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción
  • Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring
  • Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)
  • BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas
  • Curiosidad: De dónde vienen foo, bar y foobar
  • Curiosidad: El “bug”, la polilla y la leyenda de Grace Hopper
  • BG/BB: el modelo de CLV para compras en períodos discretos

Publicado en: Ciencia de datos Etiquetado como: Credit Scoring, Laboratorio

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Desbalanceo de Clases en Credit Scoring: Por Qué Usamos Ponderación en lugar de Undersampling

septiembre 1, 2026 Por Daniel Rodríguez

Curiosidad: El “bug”, la polilla y la leyenda de Grace Hopper

agosto 27, 2026 Por Daniel Rodríguez

BG/BB: el modelo de CLV para compras en períodos discretos

agosto 25, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Efecto arrastre y sesgo de confirmación: cómo nuestra mente distorsiona los números publicado el diciembre 23, 2025 | en Opinión
  • Analytics Lane Publicaciones para el verano 2024: Mitos de la IA publicado el junio 24, 2024 | en Noticias
  • Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas publicado el mayo 10, 2019 | en Python
  • Números aleatorios criptográficamente seguros en Node publicado el marzo 22, 2023 | en Criptografía, JavaScript
  • NumPy Comparación de arrays en NumPy: Uso de np.allclose() y np.isclose() para comparaciones con tolerancia publicado el enero 13, 2025 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.1 (11)

Aplicar el método D’Hondt en Excel

Comentarios recientes

  • Daniel Rodríguez en Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • Juan en Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • bif en JSON en bases de datos: cuándo es buena idea y cuándo no
  • bif en Cómo desinstalar Oracle Database 19c en Windows
  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto