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.
¿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.
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.
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.