Tive um curso online, onde aprendi, que classes desequilibradas nos dados de treinamento podem levar a problemas, porque algoritmos de classificação vão para a regra da maioria, como dá bons resultados se o desequilíbrio for muito grande. Em uma tarefa, era preciso equilibrar os dados por meio de subamostragem da classe majoritária.
Neste blog, entretanto, alguém afirma que os dados equilibrados são ainda piores:
https://matloff.wordpress.com/2015/09/29/unbalanced-data-is-a-problem-no-balanced-data-is-worse/
Então, 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 para dados não balanceados?
Resposta
O raciocínio intuitivo foi explicado na postagem do blog:
Se nosso objetivo for Predição, isso causará um viés definitivo. E pior, será um viés permanente, no sentido de que não teremos estimativas consistentes à medida que o tamanho da amostra crescer.
Portanto, possivelmente o problema de dados (artificialmente) balanceados é pior do que o caso desequilibrado .
Dados balanceados são bons para classificação, mas você obviamente perde informações sobre frequências de aparência, o que afetará as próprias métricas de precisão, bem como o desempenho da produção .
Digamos que você esteja reconhecendo letras manuscritas do alfabeto inglês (26 letras). Sobrecarregar a aparência de cada letra dará a cada letra uma probabilidade de ser classificada (corretamente ou não) em cerca de 1/26, então o classificador se esquecerá da distribuição real de letras na amostra original. E é “ ok quando o classificador é capaz de generalizar e reconhecer cada letra com alta precisão .
Mas se a precisão e o mais importante a generalização não forem “tão altos” (não posso dar uma definição – você pode pensar nisso apenas como um “pior caso”) – os pontos classificados incorretamente -provavelmente distribuído 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
Em oposição a sem equilíbrio (assumindo que “A” e “C” têm probabilidades muito maiores 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
Portanto, casos frequentes terã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ê está tentando reconhecer algo como uma captura de tela da chave ECDSA (mais entropia -> menos previsão) – manter os dados desequilibrados não ajudaria. Portanto, novamente, depende.
A distinção mais importante é que a estimativa de precisão está, ela mesma, sendo tendenciosa (como você pode ver no exemplo do alfabeto balanceado), então você não sabe como o comportamento do modelo está sendo afetado pelos pontos mais raros ou frequentes.
PS Você sempre pode acompanhar o desempenho da classificação desequilibrada com as métricas de Precisão / Recuperação primeiro e decidir se é necessário adicionar equilíbrio ou não.
EDITAR : Há confusão adicional em teoria de estimativa precisamente na diferença entre a média da amostra e a média da população. Por exemplo, você pode saber (indiscutivelmente) a distribuição real de letras em inglês no alfabeto $ p (x_i | \ theta) $ , mas sua amostra (conjunto de treinamento) não é grande o suficiente para estimá-lo corretamente (com $ p (x_i | \ hat \ theta) $ ). Portanto, para compensar um $ \ hat \ theta_i – \ theta_i $ , às vezes é recomendado reequilibrar as classes de acordo com a própria população ou parâmetros conhecidos de uma amostra maior (portanto, melhor estimador). No entanto, na prática, não há garantia de que “amostra maior” seja distribuída de forma idêntica devido ao risco de obter dados tendenciosos em cada etapa (digamos, cartas em inglês coletadas da literatura técnica vs ficção vs toda a biblioteca), portanto, o equilíbrio ainda pode ser prejudicial .
Esta resposta também deve esclarecer os critérios de aplicabilidade para balanceamento:
O problema de desequilíbrio de classe é causado por não haver padrões suficientes pertencentes à classe minoritária, não pela proporção de padrões positivos e negativos em si.Geralmente se você tiver dados suficientes, o “problema de desequilíbrio de classe” não “surge
Como conclusão, o balanceamento artificial raramente é útil se o conjunto de treinamento for grande o suficiente. Ausência de dados estatísticos de um distribuído de forma idêntica a amostra também sugere que não há necessidade de balanceamento artificial (especialmente para predição), caso contrário, a qualidade do estimador é tão boa quanto “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
Comentários
- Acho que, além da explicação do problema, a conclusão importante dessa resposta é que se deve tente primeiro o desequilibrado e verifique seus resultados e somente se necessário faça o equilíbrio e verifique seu resultado. +1
- Então, em outras palavras, com classes distribuídas uniformemente para o subconjunto de treinamento, o modelo perderá sua precisão em dados não vistos, certo? Mas, no caso oposto, quando você tenta extrair aleatoriamente entradas de um conjunto de dados para seus subconjuntos de treinamento / teste, seu classificador terá um desempenho melhor?
- @ChristosK. Como muitos afirmaram, quando você vê o problema como classificação, é difícil raciocinar sobre a previsão. Em qualquer caso, se você remover o viés (amostra “aleatoriamente”) – você precisa de uma amostra maior para melhorar o desempenho. É apenas “geralmente” a amostra é grande o suficiente para preservar a semântica, então o desequilíbrio só prejudicaria e agiria como um martelo de regularização que “nivela” tudo sem a devida consideração. Além disso, como a metáfora do dinossauro sugere, “equilibrado” não significa “uniforme” – você faz o equilíbrio adequado apenas quando sabe que algumas probabilidades estão deturpadas em uma amostra “aleatória”.
- @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 for “meio pequena”. Não tenho certeza, mas dobrar não deve machucar de qualquer maneira – é só que exige mais corridas, e quanto menos você se preocupa com a previsão, menos você se preocupa com a generalização / desempenho tão tautológico quanto parece 🙂 Mas no geral – k-fold significa menos preconceito essencialmente.
- @ChristosK. Ah, e como um 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 pode ser tendenciosa. Você pode querer estimar PrecisionRecall em seus classificadores primeiro, se algo estiver sub-amostrado – prefiro coletar / gerar (?) Mais dados.
Resposta
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 x classificação. Conforme descrevi com mais detalhes aqui , a classificação só é apropriada em uma minoria de casos. Quando o resultado é raro (ou muito comum), as probabilidades são tudo porque, nesse caso, pode-se fale apenas razoavelmente sobre tendências , não sobre prever ocorrências individuais.
Em estatística, aprendemos um tempo atrás que qualquer método que requeira a exclusão de alguns dos dados é altamente suspeito. Portanto, o objetivo de equilibrar os resultados está mal colocado. A previsão de tendências (probabilidades) não o exige. E, uma vez que você estimar uma probabilidade, pode tomar uma decisão ideal aplicando A função utilidade / custo / perda para o risco previsto.
Resposta
Depende do que você deseja alcançar com a classificação?
Digamos que seja câncer versus não câncer, então detectar o câncer é vital. No entanto, como o não câncer formará a maioria dos seus dados, o classificador pode essencialmente enviar todos os casos para a classe de não câncer e obter uma precisão muito alta. Mas não podemos pagar por isso, então basicamente reduzimos a amostra de casos não cancerígenos, essencialmente movendo o limite de decisão da região cancerosa para a região não cancerosa.
Mesmo em casos de uso em que a precisão é nossa única objetivo, o balanceamento pode ser essencial se o equilíbrio do tempo de teste for 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 você espera implantá-lo em um mercado com mangas e laranjas iguais, então o ideal é fazer a amostragem na proporção de amostra esperada para maximizar a precisão.
Comentários
- Isso é o que eu entendi nas palestras que tive. No entanto, não ‘ não entendo quando o balanceamento pode ser ruim, como sugere esta postagem do blog. Por que seria ruim para equilíbrio, se houver pontos de dados suficientes para cada classe?
- Desculpe, mas em sua analogia, o que a distribuição de frutas no mercado tem a ver com o modelo ac curacy?Ou você aprendeu a separar manga de laranja, ou não. Em outras palavras, você deve ser capaz de implantar o mesmo modelo em um mercado apenas de laranja ou de manga.
- Mas o problema com o exemplo do câncer é vê-lo como classificação , deve ser tratado como estimativa de risco . Em seguida, o problema aparente com classes não balanceadas desaparece, consulte stats.stackexchange.com/questions/127042/…
Resposta
Quando seus dados estão equilibrados, você pode preferir verificar a precisão da métrica. Mas, em tal situação, seus dados são desequilibrados, sua precisão não é consistente para diferentes iterações. Você precisa concentrar mais métricas como Precisão (PPR), Recall (sensibilidade). Essas duas métricas devem ser balanceadas ao comparar. Além disso, você deve verificar o F1-Score que é a média harmônica de precisão e recall. Isso é aplicável para todos os algoritmos de aprendizado de máquina