Conjuntos de dados: conjuntos de dados com classes desequilibradas

Esta seção aborda as três perguntas a seguir:

  • Qual é a diferença entre conjuntos de dados balanceados e desbalanceados por classe?
  • Por que é difícil treinar um conjunto de dados desequilibrado?
  • Como superar os problemas de treinamento de conjuntos de dados desequilibrados?

Conjuntos de dados balanceados e não balanceados

Considere um conjunto de dados que contém um rótulo categórico cujo valor é a classe positiva ou negativa. Em um conjunto de dados com classes equilibradas, o número de classes positivas e negativas é aproximadamente igual. Por exemplo, um conjunto de dados com 235 classes positivas e 247 negativas é equilibrado.

Em um conjunto de dados com classes desequilibradas, um rótulo é consideravelmente mais comum do que o outro. No mundo real, os conjuntos de dados não balanceados são muito mais comuns do que os balanceados. Por exemplo, em um conjunto de dados de transações com cartão de crédito, compras fraudulentas podem representar menos de 0,1% dos exemplos. Da mesma forma, em um conjunto de dados de diagnóstico médico, o número de pacientes com um vírus raro pode ser menor que 0,01% do total de exemplos. Em um conjunto de dados não balanceado:

A dificuldade de treinar conjuntos de dados com classes muito desequilibradas

O treinamento tem como objetivo criar um modelo que distinga com sucesso a classe positiva da negativa. Para isso, os batches precisam ter um número suficiente de classes positivas e negativas. Isso não é um problema ao treinar em um conjunto de dados com desequilíbrio leve entre as classes, já que até mesmo pequenos lotes geralmente contêm exemplos suficientes da classe positiva e da negativa. No entanto, um conjunto de dados com desequilíbrio grave entre as classes pode não ter exemplos suficientes da classe minoritária para um treinamento adequado.

Por exemplo, considere o conjunto de dados não balanceado ilustrado na Figura 6, em que:

  • 200 rótulos estão na classe majoritária.
  • Dois rótulos estão na classe minoritária.
Figura 6. Um conjunto de dados com 202 exemplos. 200 dos exemplos têm um rótulo de girassol e 2 têm um rótulo de rosa.
Figura 6. Um conjunto de dados florais altamente desequilibrado que contém muito mais girassóis do que rosas.

 

Se o tamanho do lote for 20, a maioria dos lotes não vai conter exemplos da classe minoritária. Se o tamanho do lote for 100, cada lote vai conter uma média de apenas um exemplo de classe minoritária, o que é insuficiente para um treinamento adequado. Mesmo um tamanho de lote muito maior ainda vai gerar uma proporção tão desequilibrada que o modelo pode não ser treinado corretamente.

Treinar um conjunto de dados não balanceado

Durante o treinamento, um modelo precisa aprender duas coisas:

  • Como cada classe se parece, ou seja, quais valores de atributo correspondem a qual classe?
  • Qual é a frequência de cada classe, ou seja, qual é a distribuição relativa das classes?

O treinamento padrão confunde esses dois objetivos. Em contraste, a técnica de duas etapas a seguir, chamada de subamostragem e aumento da classe majoritária, separa esses dois objetivos, permitindo que o modelo alcance ambos.

Etapa 1: fazer o downsampling da classe majoritária

Subamostragem significa treinar com uma porcentagem desproporcionalmente baixa de exemplos da classe majoritária. Ou seja, você força artificialmente um conjunto de dados com desequilíbrio de classes a ficar um pouco mais balanceado omitindo muitos dos exemplos da classe majoritária do treinamento. A subamostragem aumenta muito a probabilidade de que cada lote contenha exemplos suficientes da classe minoritária para treinar o modelo de maneira adequada e eficiente.

Por exemplo, o conjunto de dados com desequilíbrio de classes mostrado na Figura 6 consiste em 99% de exemplos da classe majoritária e 1% da classe minoritária. A subamostragem da classe majoritária por um fator de 25 cria artificialmente um conjunto de treinamento mais equilibrado (80% da classe majoritária para 20% da classe minoritária), conforme sugerido na Figura 7:

Figura 7. 10 exemplos, 8 girassóis e 2 rosas.
Figura 7. Reduzindo a classe majoritária por um fator de 25.

 

Etapa 2: aumentar a classe subamostrada

A subamostragem introduz um vício de previsão ao mostrar ao modelo um mundo artificial em que as classes são mais equilibradas do que no mundo real. Para corrigir esse viés, é necessário aumentar a ponderação das classes majoritárias pelo fator de subamostragem. A ponderação significa tratar a perda em um exemplo de classe majoritária de forma mais severa do que a perda em um exemplo de classe minoritária.

Por exemplo, reduzimos a classe majoritária por um fator de 25, então precisamos aumentar a ponderação dela por um fator de 25. Ou seja, quando o modelo prevê erroneamente a classe majoritária, trate a perda como se fossem 25 erros (multiplique a perda regular por 25).

Figura 8. A perda de uma previsão ruim na classe minoritária é tratada normalmente. No entanto, a perda para uma previsão ruim na classe majoritária é tratada 25 vezes mais severamente.
Figura 8. Aumentar a classe majoritária em um fator de 25.

 

Quanto você deve reduzir e aumentar para reequilibrar seu conjunto de dados? Para determinar a resposta, teste diferentes fatores de subamostragem e superponderação, assim como faria com outros hiperparâmetros.

Benefícios dessa técnica

A subamostragem e o aumento da classe majoritária trazem os seguintes benefícios:

  • Modelo melhor:o modelo resultante "conhece" os dois itens a seguir:
    • A conexão entre atributos e rótulos
    • A distribuição real das classes
  • Convergência mais rápida:durante o treinamento, o modelo vê a classe minoritária com mais frequência, o que ajuda a convergir mais rápido.