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 outro rótulo, o conjunto de dados será desequilibrado. O rótulo predominante em um conjunto de dados desequilibrado é chamado de classe principal; 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 que pertencem a uma 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 este são comuns na medicina, a maioria das pessoas não terá o vírus.

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

 

Conjuntos de dados desequilibrados às vezes não contêm uma classe minoritária suficiente 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, você deve tentar primeiro 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 amostragem e aumentar o peso a classe majoritária. 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 exemplo de ponderação à classe com subamostragem igual ao fator de subamostragem.

Etapa 1: reduzir a amostragem da classe majoritária Considere o conjunto de dados sobre vírus mostrado no 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 desequilibrado, a proporção de positivos para negativos é muito melhor do que a proporção original extremamente desequilibrada (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 a ponderação da classe reduzida: adicionar um exemplo para a classe reduzida. Depois de reduzir a amostragem em um fator de 10, o peso do exemplo deve ser 10. Isso pode parecer contra-intuitivo, mas vamos explicar por que mais tarde.

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: a ponderação adiciona peso à amostra reduzida
            exemplos.
Figura 7. Levantando peso.

 

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 10 significa que o modelo trata o exemplo como 10 vezes mais importante (ao computar perdas) 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 a viés de previsão. Ou seja, o aumento da ponderação após a redução da amostragem tende a reduzir o delta entre a média das previsões do seu modelo e a média dos rótulos do conjunto de dados.

Reequilíbrio de proporções

Quanto você deve reduzir e aumentar o peso para reequilibrar seu conjunto de dados? Para determinar a resposta, teste a proporção de rebalanceamento, assim como você experimentaria com outros hiperparâmetros. Dito isso, a resposta depende dos seguintes fatores:

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

O ideal é que cada lote contenha vários exemplos de classe minoritária. 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 deverá pelo menos 500.

Exercício: testar seu conhecimento

Considere esta situação:

  • O conjunto de treinamento contém um 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:
    • cerca de 1 bilhão de exemplos de classe majoritária.
    • ~10 milhões de exemplos de classe de minoria.
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 a ponderação) para 20:1 melhora o modelo resultante.
Graças à redução de amostragem, cada lote de 128 terá uma média de cerca de 21 de classes minoritárias, que devem ser suficientes para o treinamento um modelo útil. A redução de amostragem reduz o número de no conjunto de treinamento, de pouco mais de um bilhão cerca de 60 milhões.
Não há problemas com os hiperparâmetros atuais.
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.