Conjuntos de dados: conjuntos de dados desequilibrados

Considere um conjunto de dados que contém um rótulo categórico cujo valor é Positivo ou Negativo. Em um conjunto de dados equilibrado, o número de rótulos Positivo e Negativo é aproximadamente igual. No entanto, se um rótulo for mais comum do que o outro, o conjunto de dados estará desbalanceado. O rótulo predominante em um conjunto de dados desequilibrado é chamado de classe majoritária. O rótulo menos comum é chamado de classe minoritária.

A tabela a seguir mostra nomes e intervalos geralmente aceitos para diferentes graus de desequilíbrio:

Porcentagem de dados pertencentes à classe minoritária Grau de desequilíbrio
20 a 40% do conjunto de dados Leve
1 a 20% do conjunto de dados Moderado
Menos de 1% do conjunto de dados Extremo

Por exemplo, considere um conjunto de dados de detecção de vírus em que a classe minoritária representa 0,5% do conjunto de dados e a classe majoritária representa 99,5%. Conjuntos de dados extremamente desequilibrados como esse são comuns na medicina, já que a maioria dos sujeitos não tem o vírus.

Figura 5. Gráfico de barras com duas barras. Uma barra mostra cerca de 200
            classes negativas; a outra mostra uma classe positiva.
Figura 5. Conjunto de dados extremamente desequilibrado.

 

Às vezes, os conjuntos de dados desequilibrados não contêm exemplos suficientes de classe minoritária para treinar um modelo corretamente. Ou seja, com tão poucos rótulos positivos, o modelo é treinado quase exclusivamente com rótulos negativos e não consegue aprender o suficiente sobre rótulos positivos. Por exemplo, se o tamanho do lote for 50, muitos lotes não terão rótulos positivos.

Muitas vezes, especialmente para conjuntos de dados levemente desequilibrados e alguns moderadamente desequilibrados, o desequilíbrio não é um problema. Portanto, tente primeiro treinar no conjunto de dados original. Se o modelo funcionar bem, você já terminou. Caso contrário, pelo menos o modelo subótimo fornece uma boa referência para experimentos futuros. Depois, você pode tentar as seguintes técnicas para superar os problemas causados por conjuntos de dados desequilibrados.

Redução de amostragem e ponderação

Uma maneira de lidar com um conjunto de dados desequilibrado é reduzir a amostra e aumentar o peso da classe da maioria. Confira as definições dos dois novos termos:

  • Subamostragem (neste contexto) significa treinar em um subconjunto desproporcionalmente baixo dos exemplos da classe majoritária.
  • Aumento de ponderação significa adicionar um peso de exemplo à classe com subamostragem igual ao fator de subamostragem.

Etapa 1: reduzir a amostra da classe majoritária. Considere o conjunto de dados de vírus mostrado na Figura 5, que tem uma proporção de 1 rótulo positivo para cada 200 rótulos negativos. A redução de amostragem por um fator de 10 melhora o equilíbrio para 1 positivo para 20 negativos (5%). Embora o conjunto de treinamento resultante ainda esteja moderadamente desbalanceado, a proporção de positivos para negativos é muito melhor do que a proporção extremamente desequilibrada original (0,5%).

Figura 6. Gráfico de barras com duas barras. Uma barra mostra 20 classes
            negativas; a outra mostra 1 classe positiva.
Figura 6. Redução de amostragem.

 

Etapa 2: aumentar o peso da classe com amostragem reduzida: adicione pesos de exemplo à classe com amostragem reduzida. Depois de reduzir a amostragem em um fator de 10, o peso do exemplo deve ser 10. Sim, isso pode parecer contra-intuitivo, mas vamos explicar o motivo mais adiante.

Figura 7. Diagrama de duas etapas de redução de amostragem e aumento de peso.
            Etapa 1: a subamostragem extrai exemplos aleatórios da classe
            majoritária. Etapa 2: o aumento de peso adiciona peso aos exemplos
            com subamostragem.
Figura 7. Ponderação maior.

 

O termo peso não se refere aos parâmetros do modelo, como w1 ou w2. Aqui, peso se refere a pesos de exemplo, o que aumenta a importância de um exemplo individual durante o treinamento. Um exemplo de peso de 10 significa que o modelo trata o exemplo como 10 vezes mais importante (ao calcular a perda) do que um exemplo de peso 1.

O peso precisa ser igual ao fator usado para reduzir a amostra:

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

Pode parecer estranho adicionar pesos de exemplo após a redução de amostragem. Afinal, você está tentando melhorar o modelo na classe minoritária. Por que aumentar o peso da classe majoritária? Na verdade, aumentar o peso da classe majoritária tende a reduzir o viés de previsão. Ou seja, o aumento de peso após a subamostragem tende a reduzir o delta entre a média das previsões do modelo e a média dos rótulos do conjunto de dados.

Reequilíbrio de proporções

Qual deve ser a redução da amostra e o aumento do peso para reequilibrar o conjunto de dados? Para determinar a resposta, teste a proporção de reequilíbrio, assim como faria com outros hiperparâmetros. No entanto, a resposta depende dos seguintes fatores:

  • O tamanho do lote
  • A proporção de desequilíbrio
  • O número de exemplos no conjunto de treinamento

O ideal é que cada lote tenha vários exemplos de classes minoritárias. Os lotes que não contêm classes minoritárias suficientes terão um treinamento muito ruim. O tamanho do lote precisa ser várias vezes maior que a proporção de desequilíbrio. Por exemplo, se a proporção de desequilíbrio for 100:1, o tamanho do lote precisará ser de pelo menos 500.

Exercício: testar seu conhecimento

Considere esta situação:

  • O conjunto de treinamento contém pouco mais de um bilhão de exemplos.
  • O tamanho do lote é 128.
  • A proporção de desequilíbrio é 100:1, então o conjunto de treinamento é dividido da seguinte maneira:
    • ~1 bilhão de exemplos de classe majoritária.
    • ~10 milhões de exemplos de classes minoritárias.
Quais das seguintes afirmações são verdadeiras?
Aumentar o tamanho do lote para 1.024 vai melhorar o modelo resultante.
Com um tamanho de lote de 1.024, cada lote terá uma média de cerca de 10 exemplos de classe minoritária, o que ajudará a treinar um modelo muito melhor.
Manter o tamanho do lote em 128, mas reduzir a amostragem (e aumentar o peso) para 20:1 vai melhorar o modelo resultante.
Graças à redução de amostragem, cada lote de 128 terá uma média de cerca de 21 exemplos de classe minoritária, o que deve ser suficiente para treinar um modelo útil. A redução de amostragem reduz o número de exemplos no conjunto de treinamento de pouco mais de um bilhão para cerca de 60 milhões.
Os hiperparâmetros atuais estão funcionando bem.
Com um tamanho de lote de 128, cada lote terá uma média de cerca de um exemplo de classe minoritária, o que pode ser insuficiente para treinar um modelo útil.