¿Cómo manejar el desbalance de datos?
El desbalance de datos es un problema común en el análisis de datos que afecta la calidad de un modelo y su capacidad de predicción. Por ello, es importante conocer las técnicas para enfrentarlo.
¿Cómo manejar el desbalance de datos?
La presencia de datos desbalanceados es un problema común en el análisis y preprocesamiento de datos, y ocurre principalmente muy a menudo en los problemas de clasificación donde hay una clase predominante respecto a las demás. Esto puede afectar la calidad de nuestro modelo y su capacidad para predecir correctamente. Por ello es importante conocer los diferentes métodos para tratar con datos desbalanceados y así predecir mejor las clases minoritarias y poco representadas de nuestros datos.
El desbalance de datos o desbalance de clases surge cuando la mayoría de las instancias u observaciones en nuestros datos pertenecen a una clase, y muy pocas a otra clase. Es decir, existe una o más clases que se encuentran menos representadas en el número de muestras, en comparación con el número de muestras de otras clases [1].
Para poder detectar el desbalance necesitamos hacer un análisis exploratorio y contar cuantas observaciones pertenecen a cada clase. Si existe una subclase predominante y/o subclases poco representadas evidentemente nos encontramos frente a un caso de desbalance de datos. Esto supone un problema para la mayoría de los modelos de clasificación, puesto que los algoritmos con los que funcionan estos modelos fueron diseñados para trabajar con muestras de datos balanceadas; es decir, que el número de muestras sea la misma para cada clase. Sin embargo, este supuesto no es aplicable en el mundo real, ya que existen numerosos ejemplos de bases de datos en las que existe un desbalance de clases, tal es el caso de las bases de datos de información médica [2].
En general, el desbalance de clases afecta negativamente al desempeño de los algoritmos de aprendizaje automático. Por esta razón, cuando se trabaja con conjuntos de datos desbalanceados no se logran resultados óptimos, debido al alto porcentaje de muestras mal clasificadas en las clases menos representadas o minoritarias. Por ejemplo, supongamos que queremos predecir las transacciones fraudulentas en un banco y que la tasa de las operaciones fraudulentas es de una por cada diez mil operaciones. Si diseñamos y entrenamos un modelo con estos datos podríamos maximizar el accuracy (porcentaje de aciertos totales), el modelo podría predecir todas las transacciones como no fraudulentas. Nos devolvería un accuracy de 99.9 %, lo cual nos podría parecer una métrica bastante buena. Sin embargo, analizando un poco más, nos daríamos cuenta de que el modelo no predice bien, pues únicamente tiende a clasificar cualquier operación como no fraudulenta. Lo que realmente importaba era predecir las transacciones fraudulentas correctamente, no las que no lo eran [3].
Para hacer frente a este problema existen técnicas que permiten mejorar la predicción de las clases minoritarias. La primera de ellas es la modificación de las métricas de evaluación por métricas que tengan más en cuenta los datos de las clases minoritarias como son la f1(métrica que combina la precisión y la exhaustividad en un solo valor), la sensibilidad (tasa de positivos reales), o la precisión (métrica que permite evaluar la calidad del modelo). Esta técnica también contempla cambiar el umbral con el cual el clasificador decide si una muestra pertenece a una clase o no, de esta forma se mejora la clasificación de la clase minoritaria al darle más peso a los verdaderos positivos de la clase minoritaria [4].
Otra técnica utilizada es el remuestreo que es la estrategia más directa, ya que modifica la distribución de las clases en el conjunto de entrenamiento. Esta técnica se divide en dos enfoques diferentes: el sobremuestreo que consiste en añadir copias a la clase minoritaria para aumentar su peso sobre el total, y el submuestreo que consiste quitar muestra de la clase mayoritaria para intentar equilibrar el número de muestras en cada clase [5].
Finalmente, se cuenta con la generación de muestras sintéticas que consiste en la utilización de algoritmos que utilizan deep learning o “aprendizaje profundo” y que generan más muestras de la clase minoritaria a partir de las que ya tenemos [6]. Estos algoritmos tienen en cuenta las características en un radio de vecindad para crear una nueva observación que será añadida a la clase menos dominante [3]. Es importante señalar que actualmente se vienen desarrollando métodos más sofisticados para tratar el problema de desbalance de clases. Uno de ellos es el costo sensitivo (CS), el cual, es de los temas más relevantes en la investigación del aprendizaje automático y es una buena solución para el problema de desbalance de clases [7].
Conclusión
El desbalance de datos es un problema común y ocurre cuando en un conjunto de datos existe una clase minoritaria que se encuentra representada en menor medida que las demás clases. Existen diversas técnicas para afrontar este problema, como la modificación de las métricas de evaluación que no requiere modificar los datos, o el remuestreo y la generación de muestras sintéticas que sí lo requieren (aunque la primera en menor medida). Si bien estas técnicas permiten afrontar el desbalance de datos, es importante conocer el contexto del problema y evaluar qué técnica se adapta mejor a lo que queremos predecir con nuestro modelo.
Referencias
[1] A. R., M. K., M. C. and R. S., "An improved algorithm for neural network," IEEE Trans Neural Netw, vol. 4, p. 962–969, 1991.
[2] R. A. R. A. E. H. A. T. Rosa Valdovinos, "Tratamiento del desbalance en problemas con múltiples clases con ECOC," Computación y Sistemas - Scielo , vol. 17, no. 4, p. 2, 2013.
[3] Á. Gonzales, "Machine learning para todos," 20 enero 2020. [Online]. Available: https://machinelearningparatodos.com/tratamiento-de-clases-desbalanceadas/. [Accessed 18 noviembre 2021].
[4] N. Landa, "Cómo actuar ante el desbalance de datos," 27 setiembre 2019. [Online]. Available: https://medium.com/@nicolasarrioja/c%C3%B3mo-actuar-ante-el-desbalance-de-datos-a0d64f2b9619. [Accessed 18 noviembre 2021].
[5] D. Rodriguez, "Analytics Lane," 04 julio 2018. [Online]. Available: https://www.analyticslane.com/2018/07/04/el-problema-de-desequilibrio-de-clases-en-conjuntos-de-datos-de-entrenamiento/. [Accessed 18 noviembre 2021].
[6] J. Contreras, "Datos desbalanceados ¿Cómo soluciono ese problema?," 23 abril 2020. [Online]. Available: https://www.linkedin.com/pulse/datos-desbalanceados-c%C3%B3mo-soluciono-ese-problema-contreras-soria/?originalSubdomain=es. [Accessed 18 noviembre 2021].
[7] H. Salman, "Cost-Sensitive Learning of Deep Feature Representations From Imbalanced," IEEE Transactions on Neural Networks and Learning Systems, 2017.