Si hablamos de problemas de modelado supervisado centrados en la clasificación, podemos encontrarnos con bases de datos en las que la variable objetivo contiene clases muy desequilibradas, es decir, categorías con frecuencias muy diferentes.
Al entrenar un modelo de clasificación con la variable no balanceada, encontraremos algunos problemas. Esto sucede porque el patrón de datos de la clase dominante superará a los de la clase con menos frecuencia. Generalmente, en bases de datos que tienen una variable objetivo desbalanceada, la clase con la frecuencia más baja es precisamente la que nos interesa predecir, lo que hace que los problemas sean aún mayores.
Como una de las clases tiene una frecuencia muy alta, el modelo construido con datos desequilibrados puede presentar una precisión muy alta y aun así no predecir correctamente ninguna observación para la clase con una frecuencia más baja. Esto puede dar la falsa impresión de que el modelo funciona bien cuando en realidad no es así.
Para solucionar estos problemas generados por una base de datos desequilibrada, podemos recurrir a dos soluciones que consisten en equilibrar los datos de la variable objetivo: undersampling y oversampling.
Es una técnica que consiste en mantener todos los datos de la clase de menor frecuencia y reducir la cantidad de los de la clase de mayor frecuencia, haciendo que las observaciones del conjunto tengan datos con la variable objetivo balanceada.
Puede ser una ventaja usar undersampling para reducir el almacenamiento de datos y el tiempo de ejecución del código, ya que la cantidad de datos será mucho menor. Una de las técnicas más utilizadas es Near Miss, que disminuye aleatoriamente el número de valores de la clase mayoritaria.
Algo muy interesante de Near Miss es que utiliza la menor distancia promedio de los K-vecinos más cercanos, es decir, selecciona los valores en base al método KNN (K-nearest neighbors) para reducir la pérdida de información.
Si desea saber más sobre cómo funciona la técnica Near Miss, puede consultar el artículo Enfoque de KNN para distribuciones de datos desequilibradas: un caso de estudio que implica la extracción de información.
Es una técnica que consiste en aumentar el número de registros de la clase con menor frecuencia hasta que la base de datos tenga un número equilibrado entre las clases de la variable objetivo. Para aumentar la cantidad de registros, podemos duplicar aleatoriamente los registros de la clase con menos frecuencia. Sin embargo, esto hará que mucha información sea idéntica, lo que puede afectar el modelo.
Una ventaja de esta técnica es que no se pierde ninguna información de los registros que tenían la clase con mayor frecuencia. Esto hace que el conjunto de datos tenga muchos registros para alimentar los algoritmos de aprendizaje automático. A su vez, el tiempo de almacenamiento y procesamiento crece significativamente y existe la posibilidad de sobreajustar los datos que se han duplicado. Este sobreajuste ocurre cuando el modelo se vuelve muy bueno para predecir los resultados de los datos de entrenamiento, pero no generaliza bien los datos nuevos.
Para evitar tener demasiados datos idénticos, se puede utilizar la técnica SMOTE, que consiste en sintetizar nueva información a partir de información existente. Estos datos “sintéticos” están relativamente cerca de los datos reales, pero no son idénticos. Para obtener más información sobre cómo funciona la técnica SMOTE, puede leer el artículo SMOTE: Synthetic Minority Over-sampling Technique.
Ambas técnicas de balanceo se pueden aplicar utilizando la biblioteca imbalanced-learn que se basa en sklearn y proporciona herramientas para tratar con datos desbalanceados.
En la documentación, puedes encontrar varios ejemplos de cómo aplicar el undersampling y oversampling incluso fuera de los ejemplos presentados anteriormente. Vale la pena recordar que ambos tienen ventajas y desventajas y la aplicación de cada uno de ellos dependerá de las particularidades del problema.
João Vitor de Miranda
Licenciado en Matemáticas y posgrado en Data Science and Analytics. Con conocimientos en Matemáticas, Estadística, Excel, Python, R y SQL/NoSQL.
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
69289.36
CLP |
307472.10
COP |
65.90
USD |
264.35
PEN |
1435.53
MXN |
2978.57
UYU |
Plan Anual |
738.82
BOB |
105038.04
CLP |
466107.17
COP |
99.90
USD |
400.74
PEN |
2176.17
MXN |
4515.32
UYU |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana