Quando devo equilibrar as aulas em um conjunto de dados de treinamento?

29

Eu tive um curso on-line, onde aprendi, que as classes desequilibradas nos dados de treinamento podem levar a problemas, porque os algoritmos de classificação seguem a regra da maioria, pois produz bons resultados se o desequilíbrio for excessivo. Em uma tarefa, era necessário equilibrar os dados via subamostragem da classe majoritária.

Neste blog, no entanto, alguém afirma que dados balanceados são ainda piores:

https://matloff.wordpress.com/2015/09/29/unbalanced-data-is-a-problem-no-balanced-data-is-worse/

Entao, qual é? Devo equilibrar os dados ou não? Depende do algoritmo usado, pois alguns podem ser capazes de se adaptar às proporções desequilibradas das classes? Em caso afirmativo, quais são confiáveis ​​em dados desequilibrados?

Zelphir Kaltstahl
fonte

Respostas:

28

O raciocínio intuitivo foi explicado no post do blog:

Se nosso objetivo for Previsão, isso causará um viés definido. E pior, será um viés permanente, no sentido de que não teremos estimativas consistentes à medida que o tamanho da amostra aumentar.

Portanto, sem dúvida o problema dos dados (artificialmente) balanceados é pior que o caso desequilibrado.

Os dados balanceados são bons para classificação, mas você obviamente perde informações sobre as frequências de aparência, o que afetará as métricas de precisão e o desempenho da produção.

Digamos que você esteja reconhecendo letras manuscritas do alfabeto inglês (26 letras). Desbalancear cada aparência de letra dará a cada letra uma probabilidade de ser classificada (corretamente ou não) em aproximadamente 1/26, para que o classificador esqueça a distribuição real de letras na amostra original. E tudo bem quando o classificador é capaz de generalizar e reconhecer todas as letras com alta precisão .

Mas se a precisão e a generalização mais importante não são "tão altas" (não posso lhe dar uma definição - você pode pensar nisso como um "pior caso") - os pontos mal classificados provavelmente distribuirão igualmente entre todas as letras , algo como:

"A" was misclassified 10 times
"B" was misclassified 10 times
"C" was misclassified 11 times
"D" was misclassified 10 times
...and so on

Ao contrário de sem balanceamento (supondo que "A" e "C" tenham maiores probabilidades de aparência no texto)

"A" was misclassified 3 times
"B" was misclassified 14 times
"C" was misclassified 3 times
"D" was misclassified 14 times
...and so on

Casos tão freqüentes receberão menos erros de classificação. Se é bom ou não, depende da sua tarefa. Para o reconhecimento de texto natural, pode-se argumentar que letras com frequências mais altas são mais viáveis, pois preservariam a semântica do texto original, aproximando a tarefa de reconhecimento da previsão (onde a semântica representa tendências ). Mas se você estiver tentando reconhecer algo como a captura de tela da chave ECDSA (mais entropia -> menos previsão) - manter os dados desequilibrados não ajudaria. Então, novamente, depende.

A distinção mais importante é que a estimativa de precisão está, por si só, tendenciosa (como você pode ver no exemplo do alfabeto balanceado), para que você não saiba como o comportamento do modelo está sendo afetado pelos pontos mais raros ou mais frequentes.

PS Você sempre pode rastrear o desempenho da classificação desequilibrada com as métricas de Precisão / Recuperação primeiro e decidir se precisa adicionar balanceamento ou não.


EDIT : Existe uma confusão adicional que reside na teoria das estimativas, precisamente na diferença entre a média da amostra e a média da população. Por exemplo, você pode saber (sem dúvida) a distribuição real de letras em inglês no alfabeto , mas sua amostra (conjunto de treinamento) não é grande o suficiente para estimar corretamente (com ). Portanto, para compensar a , às vezes é recomendável reequilibrar as classes de acordo com a própria população ou com os parâmetros conhecidos de uma amostra maiorp(xEu|θ)p(xEu|θ^)θ i - θ iθ^Eu-θEu(melhor avaliador). No entanto, na prática, não há garantia de que uma "amostra maior" seja identicamente distribuída devido ao risco de obter dados tendenciosos em todas as etapas (digamos letras inglesas coletadas da literatura técnica versus ficção versus toda a biblioteca), portanto o equilíbrio ainda pode ser prejudicial.

Esta resposta também deve esclarecer os critérios de aplicabilidade para o balanceamento:

O problema do desequilíbrio de classe é causado por não haver padrões suficientes pertencentes à classe minoritária, e não pela proporção de padrões positivos e negativos propriamente ditos. Geralmente, se você tiver dados suficientes, o "problema de desequilíbrio de classe" não surge

Como conclusão, o equilíbrio artificial raramente é útil se o conjunto de treinamento for grande o suficiente. A ausência de dados estatísticos de uma amostra maior distribuída de forma idêntica também sugere a necessidade de balanceamento artificial (especialmente para previsão); caso contrário, a qualidade do estimador é tão boa quanto a "probabilidade de encontrar um dinossauro":

Qual é a probabilidade de encontrar um dinossauro na rua?

1/2 você encontra um dinossauro ou não encontra um dinossauro

dk14
fonte
5
Penso que, além da explicação da questão, a resposta importante a essa resposta é que se deve tentar primeiro desequilibrar e verificar seus resultados e somente se necessário fazer o equilíbrio e verificar seu resultado. 1
Zelphir Kaltstahl
Portanto, em outras palavras, com aulas distribuídas uniformemente para o subconjunto de treinamento, o modelo perderá sua precisão em dados invisíveis, certo? Mas, no caso oposto, onde você tenta extrair aleatoriamente entradas de um conjunto de dados para seus subconjuntos de treinamento / teste, seu classificador terá um desempenho melhor?
Christos K.
@ChristosK. Como muitos afirmaram, quando você vê o problema como classificação, é difícil argumentar sobre previsão. De qualquer forma, se você remover o viés (amostra "aleatoriamente") - você precisará de uma amostra maior para melhorar o desempenho. É apenas "geralmente" a amostra é grande o suficiente para preservar a semântica, portanto, o desequilíbrio só doeria e agia como martelo de regularização que "achatou" tudo sem a devida consideração. Além disso, como sugere a metáfora do dinossauro, “equilibrado” não significa “par” - você faz o equilíbrio adequado apenas quando sabe que algumas probabilidades são deturpadas em uma amostra “aleatória”.
dk14
1
@ChristosK. Obrigado por alguns esclarecimentos. Não é o mesmo que eu quis dizer, mas a abordagem é muito semelhante. A recomendação usual para a aplicabilidade do k-fold é fazê-lo quando sua amostra inicial é "meio pequena". Não tenho certeza, mas dobrar não deve doer de qualquer maneira - é preciso mais rodadas, e quanto menos você se preocupa com a previsão, menos se preocupa com a generalização / desempenho, por mais tautológico que pareça :). Mas no geral - k-fold significa menos viés essencialmente.
Dk14 23/12/18
1
@ChristosK. Ah, e como aviso, a proporção de spam / não spam pode ser uma variável aleatória não estacionária por si só. Com todas essas "notícias falsas", "trolls russos" e outras coisas, eu teria cuidado com essas suposições - a proporção também poderia ser tendenciosa. Convém estimar o PrecisionRecall em seus classificadores primeiro, se algo estiver sub-amostrado - eu prefiro coletar / gerar (?) Mais dados.
dk14
17

Consistente com o comentário de @ kjetil-b-halvorsen, a rápida adoção do aprendizado de máquina confundiu os pesquisadores sobre previsão versus classificação. Como descrevi em mais detalhes aqui , a classificação é apropriada apenas em uma minoria de casos. Quando o resultado é raro (ou muito comum), as probabilidades são tudo porque, nesse caso, só se pode falar razoavelmente sobre tendências , não sobre predizer ocorrências individuais.

Nas estatísticas, aprendemos há algum tempo que qualquer método que exija a exclusão de alguns dados é altamente suspeito. Portanto, a meta de equilibrar os resultados é equivocada. A previsão de tendências (probabilidades) não exige isso. E depois de estimar uma probabilidade, você pode tomar uma decisão ideal aplicando a função de utilidade / custo / perda ao risco previsto.

Frank Harrell
fonte
1

Depende do que você deseja alcançar com a classificação?

Digamos que seja câncer / não câncer, então a detecção de câncer é vital. No entanto, como o noncâncer formará a maioria dos seus dados, o classificador poderá enviar todos os casos para a classe não oncológica e obter uma precisão muito alta. Mas não podemos permitir isso, então analisamos exemplos de casos que não são de câncer, essencialmente movendo o limite de decisão da região de câncer para a região que não é de câncer.

Mesmo nos casos de uso em que a precisão é nosso único objetivo, o equilíbrio pode ser essencial se se espera que o equilíbrio do tempo de teste seja diferente do tempo do trem.

Por exemplo, digamos que você queira classificar mangas e laranjas, você tem um conjunto de dados de treinamento com 900 mangas e 30 laranjas, mas espera implantá-lo em um mercado com mangas e laranjas iguais; idealmente, você deve amostrar na proporção esperada da amostra para maximizar precisão.

Amitoz Dandiana
fonte
Foi o que entendi das palestras que tive. No entanto, não entendo quando o balanceamento pode ser ruim, como sugere este post do blog. Por que seria ruim equilibrar se permanecem pontos de dados suficientes para cada classe?
você precisa saber é o seguinte
Desculpe, mas em sua analogia, o que a distribuição de frutas no mercado tem a ver com a precisão do modelo? Você aprendeu a separar mangas de laranjas ou não. Em outras palavras, você poderá implantar o mesmo modelo em um mercado apenas de laranja ou apenas de mangas.
Fernando
3
Mas o problema com o exemplo do câncer é vê-lo como classificação , ele deve ser tratado como estimativa de risco . Então o problema aparente com aulas desequilibradas desaparece, consulte stats.stackexchange.com/questions/127042/...
b Kjetil Halvorsen
1

Quando seus dados estão equilibrados, você pode preferir verificar a precisão da métrica. Mas quando tal situação seus dados estão desequilibrados, sua precisão não é consistente para diferentes iterações. Você precisa concentrar mais métricas como Precisão (PPR), Recuperação (sensibilidade). Essas duas métricas devem ser equilibradas quando comparadas. Além disso, você deve verificar o F1-Score, que é a média harmônica de precisão e recuperação. Isso é aplicável a todos os algoritmos de aprendizado de máquina

ravindar madishetty
fonte