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.
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%).
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.
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.