No aprendizado de máquina, é melhor ter índices de classe equilibrados ou representativos da população?

9

No contexto do aprendizado de máquina, digamos que você tenha um problema no qual as classes da população real não são equilibradas - por exemplo, a Classe A ocorre 80% das vezes e a Classe B ocorre 20% das vezes.

Nesse caso, é geralmente melhor ter um determinado algoritmo ML baseado em dados com a mesma proporção de classe 80/20 ou em dados com uma proporção equilibrada (50/50)? a) em relação aos dados de treinamento b) em relação aos dados de teste

Uma pergunta de acompanhamento: caso a resposta para (a) ou (b) aconteça com a proporção balanceada de 50/50, essa preferência geralmente ainda persiste mesmo no contexto prático em que os dados aos quais tem acesso acontecem? da proporção 80/20? Em outras palavras, o benefício de usar uma proporção equilibrada para treinar e / ou testar superaria o custo de impor essa proporção (por exemplo, descartando instâncias da classe majoritária ou gerando novas amostras sintéticas da classe minoritária)?

azul
fonte

Respostas:

1

Verifique este documento para uma boa revisão do aprendizado com conjuntos de dados desequilibrados.

Uma maneira de lidar com o problema é fazer uma subamostragem ou upsampling artificial no conjunto de treinamento para equilibrar os conjuntos de dados.

Eu acho que geralmente é melhor ter um conjunto de treinamento equilibrado, pois caso contrário o limite de decisão vai dar muito espaço para a classe maior e você classificará demais a classe pequena. Isso geralmente é ruim. (pense na detecção de câncer, onde a classe menor é a mais cara, a saber, ter um tumor).

Se você não quiser usar métodos de amostragem, poderá usar métodos baseados em custo, nos quais ponderará a importância de cada amostra para que a função de perda tenha mais contribuição das amostras da classe mais importante. Na detecção do câncer, você pesaria mais o custo proveniente de amostras de treinamento da classe positiva (com um tumor).

Por fim, lembre-se de que, se o conjunto de testes for muito desequilibrado, a precisão da classificação não será uma boa medida de desempenho. Seria melhor usar precisão / recall e o f-score, facilmente calculados a partir da matriz de confusão. Verifique este documento para obter referências sobre medidas de desempenho de classificação para vários cenários diferentes.

Outra boa leitura sobre o tema é essa.

Steve3nto
fonte
0

Corrija-me se estiver errado, mas a proporção real de classes na população não importa para o ML em termos de classificação. O que importa é obter os dados de treinamento para ambas as classes, que abrangem todo o espaço de recursos. Portanto, em geral, se você tivesse uma divisão 80/20 para as classes A / B, é muito mais provável que você encontre uma amostra representativa para a classe A em relação à classe B.

Portanto, sobre a questão de saber se é melhor ter uma proporção de 50/50, intuitivamente, acho que pode não ser tão importante quanto ter um conjunto de treinamento maior usando todos os dados. No entanto, esta é a parte da qual não tenho certeza ... de como é que as taxas desiguais poderiam impactar as taxas de classificação incorreta, especialmente no limite da separação. Para o conjunto de testes, as proporções não devem ser relevantes.

ashokragavendran
fonte
Veja também esta discussão sobre estouro de pilha stats.stackexchange.com/questions/63740/...
ashokragavendran