¿Qué son los problemas desbalanceados en ML?

Autor: | Última modificación: 5 de enero de 2023 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Existirán ocasiones en las que nos encontraremos con problemas desbalanceados en ML. Decimos que hay problemas desbalanceados en ML cuando la proporción de una clase es mucho mayor que la proporción de la otra. Por ello, a continuación veremos cómo detectar este tipo de problemas y, sobre todo, cómo darles solución.

Problemas desbalanceados en ML

¿Qué pasa si, por ejemplo, en nuestro conjunto de datos la proporción de muestras de la clase mayoritaria y = 1/0 es 90/10% y nuestro clasificador tiene una ACC = 0.9?

Por pura probabilidad, lo que debe dar el accuracy es 0.9.

Supongamos que tenemos el siguiente dataset:

1 1 1 0 1 1 1 1 1 1

Este es un dataset simplificado, con un 90/10 % de probabilidad a favor de los 1. Entonces, tenemos un clasificador que tiene un accuracy de 0.9. Con este clasificador tranquilamente podríamos estar haciendo lo siguiente:

def clasificador():
return 1

Esto tendría un 90% de accuracy. En este dataset, que es 90% 1 y con esta función, que evidentemente no es un clasificador, va a tener 90% de accuracy porque va a acertar 9 de cada 10 veces.

El gran dilema con eso y, en general, con los problemas desbalanceados en ML es que, tarde o temprano, el modelo va a terminar aprendiendo de ello y van a producirse más errores.

¿Qué podríamos hacer para evitar estos problemas desbalanceados en ML? Podríamos no usar el accuracy.

Así pues, como mencionábamos anteriormente, decimos que hay problemas desbalanceados en ML cuando la proporción de una clase es mucho mayor que la proporción de la otra. Veamos:

  • Si tenemos un problema de fraude: 0.1%, lo que debemos hacer es una detección de anomalías.
  • Ahora, estos problemas anteriores no son recurrentes. Con frecuencia, lo que nos encontramos son problemas, por ejemplo, de fuga: 5 – 15%. Esto no ocurre solo en fuga de clientes, sino también en problemas desbalanceados en ML sobre médicos, ya que suele estar muy desbalanceado a favor de la gente sana.

Estrategias para entrenar un clasificador desbalanceado

En estos casos, el accuracy ya no nos sirve como métrica porque, como acabamos de ver, en estos problemas desbalanceados en ML para la clase mayoritaria el accuracy va a ser altísimo.

Entonces, en estos casos, lo que podemos hacer es:

  • Utilizar un conjunto de métricas que ponderen las clases, entre ellas:

FSC

El FSC o F score se utiliza para evaluar los sistemas de clasificación binaria, que categorizan los ejemplos en positivos o negativos, en 0 o 1, bueno o malo, entre otras categorías.

La fórmula para calcular el F score o F1 score es 2 x [(Precision x Recall) / (Precision + Recall)]

Balanced Error Rate

El error balanceado o Balanced Error Rate = 1 – 0.5 (SEN + ESP) es la media del error de cada una de las clases.

  • También podemos penalizar más los errores en la clase minoritaria: class weight, el cual se produce cuando hay una discrepancia en el número de observaciones entre clases.
  • Modificar el conjunto de entrenamiento para balancearlo.
  • Sobremuestrear la clase minoritaria.
  • Crear muestras sintéticas de la clase minoritaria: SMOTE.
  • Bajomuestrear la clase mayoritaria.

¿Qué sigue?

El Big Data es una disciplina con una amplia gama de opciones que puedes estudiar. Entre ellas está el machine learning, dentro del que están los problemas desbalanceados en ML que hemos visto en este post. Si quieres seguir aprendiendo sobre estas temáticas, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación de alta intensidad en la que podrás adquirir todas las herramientas teóricas y prácticas que te permitirán incursionar en un mercado laboral lleno de oportunidades. ¡No esperes más para cambiar tu futuro y solicita información ahora!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.