Dados desequilibrados

Um conjunto de dados de classificação com proporções de classes distorcidas é chamado de desequilíbrio. As classes que compõem uma grande proporção do conjunto de dados são chamadas de classes predominantes. Aquelas que compõem uma proporção menor são classes minoritárias.

O que conta como desequilibrado? A resposta pode variar de leve a extrema, como mostra a tabela abaixo.

Grau de desequilíbrio Proporção de classes minoritárias
Leve 20 a 40% do conjunto de dados
Moderado 1 a 20% do conjunto de dados
Extrema <1% do conjunto de dados

Por que procurar dados desequilibrados? Se você tiver uma tarefa de classificação com um conjunto de dados desequilibrado, talvez seja necessário aplicar uma determinada técnica de amostragem.

Considere o exemplo a seguir de um modelo que detecta fraude. As instâncias de fraude ocorrem uma vez a cada 200 transações nesse conjunto de dados.Portanto, na distribuição real, cerca de 0,5% dos dados são positivos.

Gráfico de barras com duas barras. Uma barra mostra cerca de 200 transações negativas, enquanto a outra mostra uma transação positiva.

Por que isso seria problemático? Com poucos positivos em relação aos negativos, o modelo de treinamento passará a maior parte do tempo em exemplos negativos e não aprenderá o suficiente com exemplos positivos. Por exemplo, se o tamanho do lote for 128, muitos lotes não terão exemplos positivos, portanto, os gradientes serão menos informativos.

Se você tiver um conjunto de dados desequilibrado, tente primeiro treinar na distribuição verdadeira. Se o modelo funcionar bem e generalizar, você está pronto. Caso contrário, tente a seguinte técnica de downsampling e ponderação.

Baixa amostragem e ponderação

Uma maneira eficaz de lidar com dados desequilibrados é reduzir a classe principal e aumentar a ponderação dela. Vamos começar definindo esses dois novos termos:

  • Redução de amostragem (neste contexto) significa treinamento em um subconjunto desproporcionalmente baixo dos exemplos da classe majoritária.
  • Peso significa adicionar um peso de amostra à classe downsample igual ao fator que reduz a amostragem.

Etapa 1: reduzir a classe majoritária. Considere novamente nosso exemplo do conjunto de dados de fraude, com 1 positivo a 200 negativo. A redução por um fator de 10 melhora o saldo para 1 positivo a 20 negativos (5%). Ainda que o conjunto de treinamento resultante ainda esteja moderadamente desequilibrado, a proporção de positivas para negativas é muito melhor do que a proporção extremamente desequilibrada original (0,5%).

Gráfico de barras com duas barras. Uma barra mostra 20 transações negativas, enquanto a outra mostra uma transação positiva.

Etapa 2: aumentar o peso da classe downsampled: a última etapa é adicionar exemplos de pesos à classe downsample. Como reduzimos a amostragem em um fator de 10, o peso do exemplo será 10.

Um diagrama conceitual de downsampling e ponderação. A etapa 1, downsampling, extrai um exemplo selecionado aleatoriamente de um bloco que representa o conjunto de dados da classe majoritária. A etapa 2, ponderação, adiciona uma ponderação para cada exemplo selecionado aleatoriamente.

Talvez você esteja acostumado a ouvir o termo peso quando ele se referir a parâmetros do modelo, como conexões em uma rede neural. Aqui estamos falando sobre pesos de exemplo, o que significa contar um exemplo individual mais importante durante o treinamento. Um exemplo de peso 10 significa que o modelo trata o exemplo como 10 vezes mais importante (ao calcular perdas) do que um exemplo de peso 1.

A ponderação deve ser igual ao fator usado para reduzir a amostragem:

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

Por que fazer downsample e upweight?

Pode parecer estranho adicionar pesos de exemplo após o downsampling. Estávamos tentando melhorar nosso modelo na classe minoritária. Por que faríamos a maior parte dela? Estas são as alterações resultantes:

  • Convergência mais rápida: durante o treinamento, vemos a classe minoritária com mais frequência, o que ajuda o modelo a convergir mais rapidamente.
  • Espaço em disco: consolidando a classe majoritária em menos exemplos com pesos maiores, gastamos menos espaço em disco armazenando-o. Essa economia permite mais espaço em disco para a classe minoritária. Assim, podemos coletar um número maior e uma variedade maior de exemplos dessa classe.
  • Calibração: o peso garante que nosso modelo ainda esteja calibrado. As saídas ainda podem ser interpretadas como probabilidades.