Datos desequilibrados

Un conjunto de datos de clasificación con proporciones de clase sesgadas se denomina desequilibrado. Las clases que conforman una gran proporción del conjunto de datos se denominan clases de mayoría. Las que conforman una proporción menor son las clases minoritarias.

¿Qué se considera desequilibrada? La respuesta puede variar de leve a extrema, como se muestra en la siguiente tabla.

Grado de desequilibrio Proporción de minorías
Leves 20% a 40% del conjunto de datos
Moderado Del 1 al 20% del conjunto de datos
Extremo Menos del 1% del conjunto de datos

¿Por qué es importante prestar atención a los datos desequilibrados? Es posible que debas aplicar una técnica de muestreo en particular si tienes una tarea de clasificación con un conjunto de datos desequilibrado.

Considera el siguiente ejemplo de un modelo que detecta fraude. Las instancias de fraude ocurren una vez por 200 transacciones en este conjunto de datos, por lo que en la distribución real, aproximadamente el 0.5% de los datos es positivo.

Gráfico de barras con dos barras. Una barra muestra alrededor de 200 transacciones negativas, mientras que la otra muestra 1 transacción positiva.

¿Por qué esto sería problemático? Con tan pocos positivos en relación con los negativos, el modelo de entrenamiento pasará la mayor parte del tiempo con ejemplos negativos y no aprenderá lo suficiente de los positivos. Por ejemplo, si el tamaño del lote es 128, muchos lotes no tendrán ejemplos positivos, por lo que los gradientes serán menos informativos.

Si tienes un conjunto de datos desequilibrado, primero intenta entrenar con la verdadera distribución. Si el modelo funciona bien y generaliza, ¡listo! De lo contrario, prueba la siguiente técnica de submuestreo y aumento de peso.

Baja y aumento de peso

Una forma eficaz de controlar los datos desequilibrados es hacer una reducción de muestreo y aumentar la clase de mayoría. Comencemos por definir esos dos términos nuevos:

  • Reducción de muestreo (en este contexto) significa entrenar en un subconjunto desproporcionadamente bajo de los ejemplos de clase mayoritaria.
  • Ponderación significa agregar un peso de ejemplo a la clase con muestreo que es igual al factor por el que se realizó la reducción de muestreo.

Paso 1: Reduce la muestra de la clase mayoritaria. Considera de nuevo nuestro ejemplo del conjunto de datos del fraude, con 1 positivo a 200 negativos. La reducción de muestreo por un factor de 10 mejora el saldo a 1 positivo a 20 negativos (5%). Aunque el conjunto de entrenamiento resultante sigue desequilibrado moderadamente, la proporción de positivos a negativos es mucho mejor que la proporción extremadamente desequilibrada (0.5%) original.

Gráfico de barras con dos barras. Una barra muestra 20 transacciones negativas, mientras que la otra muestra 1 transacción positiva.

Paso 2: Sube el peso de la clase de muestra reducida: El último paso es agregar pesos de ejemplo a la clase de la muestra reducida. Como se redujo el muestreo por un factor de 10, el peso del ejemplo debe ser 10.

Diagrama conceptual de la reducción de muestreo y la ponderación. En el paso 1, la reducción de muestreo extrae un ejemplo seleccionado de forma aleatoria de un bloque que representa el conjunto de datos de la clase mayoritaria. El paso 2, ponderación, agrega un peso a cada ejemplo seleccionado al azar.

Se puede usar para escuchar el término peso cuando se refiere a los parámetros del modelo, como conexiones en una red neuronal. Aquí hablaremos de pesos de ejemplo, lo que implica contar un ejemplo individual de forma más importante durante el entrenamiento. Un peso de ejemplo de 10 significa que el modelo trata el ejemplo como 10 veces tan importante (cuando se pierde pérdida) como lo haría con un ejemplo de peso 1.

El peso debe ser igual al factor que usaste para la reducción de muestreo:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

¿Por qué utilizar Downsample y Upweight?

Puede parecer extraño agregar pesos de ejemplo después de la reducción de muestreo. Intentamos que nuestro modelo mejore en la clase minoritaria, ¿por qué aumentaríamos el peso de la mayoría? Estos son los cambios resultantes:

  • Convención más rápida: Durante el entrenamiento, observamos la clase minoritaria con mayor frecuencia, lo que ayudará a que el modelo converja más rápido.
  • Espacio en disco: Si consolidas la clase mayoritaria en menos ejemplos con pesos más grandes, gastamos menos espacio de disco en almacenarlos. Este ahorro permite un mayor espacio en el disco para la clase minoritaria, por lo que podemos recopilar una mayor cantidad y una gama más amplia de ejemplos de esa clase.
  • Calibración: La ponderación garantiza que nuestro modelo siga calibrado, y los resultados aún pueden interpretarse como probabilidades.