Já tínhamos várias perguntas sobre dados desequilibrados ao usar regressão logística , SVM , árvores de decisão , empacotamento e várias outras perguntas semelhantes, o que o torna um tópico muito popular! Infelizmente, cada uma das perguntas parece ser específica do algoritmo e não encontrei nenhuma orientação geral para lidar com dados desequilibrados.
Citando uma das respostas de Marc Claesen , lidando com dados desequilibrados
(...) depende muito do método de aprendizagem. A maioria das abordagens de propósito geral tem uma (ou várias) maneiras de lidar com isso.
Mas quando exatamente devemos nos preocupar com dados desequilibrados? Quais algoritmos são mais afetados por ele e quais são capazes de lidar com ele? Quais algoritmos precisariam que equilibrássemos os dados? Estou ciente de que discutir cada um dos algoritmos seria impossível em um site de perguntas e respostas como este. Estou procurando diretrizes gerais sobre quando isso pode ser um problema.
Respostas:
Não é uma resposta direta, mas vale ressaltar que na literatura estatística, parte do preconceito contra dados desequilibrados tem raízes históricas.
Muitos modelos clássicos simplificam-se perfeitamente sob a suposição de dados balanceados, especialmente para métodos como a ANOVA, que estão intimamente relacionados ao design experimental - uma motivação tradicional / original para o desenvolvimento de métodos estatísticos.
Mas a aritmética estatística / probabilística fica feia, rapidamente, com dados desequilibrados. Antes da ampla adoção de computadores, os cálculos manuais eram tão extensos que estimar modelos em dados desequilibrados era praticamente impossível.
Obviamente, os computadores basicamente tornaram isso um problema. Da mesma forma, podemos estimar modelos em conjuntos de dados massivos, resolver problemas de otimização de alta dimensão e coletar amostras de distribuições de probabilidade conjunta analiticamente intratáveis, todas as quais eram funcionalmente impossíveis há cinquenta anos atrás.
É um problema antigo, e os acadêmicos dedicaram muito tempo a trabalhar no problema ... enquanto isso, muitos problemas aplicados superavam / evitavam essa pesquisa, mas os velhos hábitos morrem muito ...
Edite para adicionar:
Sei que não saí e apenas digo: não há um problema de baixo nível no uso de dados desequilibrados. Na minha experiência, o conselho para "evitar dados desequilibrados" é específico do algoritmo ou é herdado da sabedoria. Concordo com o AdamO que, em geral, dados desequilibrados não apresentam problemas conceituais para um modelo bem especificado.
fonte
No WLOG, você pode se concentrar no desequilíbrio em um único fator, em vez de um conceito mais matizado de "escassez de dados" ou contagens de células pequenas.
Nas análises estatísticas não focadas no aprendizado, geralmente descobrimos que poder semelhante ou melhor é concedido ao usar os escores de propensão para corresponder o grupo menor ao grupo maior. Isso ocorre em parte porque a correspondência serve a um propósito semelhante ao ajuste de confusão em termos de "equilibrar" os determinantes da participação no grupo, bloqueando assim seus efeitos de confusão. A justificativa para o número de fatores de confusão a serem ajustados em uma análise multivariada depende do tamanho da amostra. Algumas regras práticas dizem uma variável a cada 10 a 20 observações. Em dados desequilibrados, você acredita ingenuamente que seus dados são suficientemente grandes, mas com um número escasso de pessoas com a condição mais rara: a inflação da variação diminui substancialmente o poder. Você está de fato se ajustando demais.
Portanto, pelo menos em regressão (mas suspeito em todas as circunstâncias), o único problema com dados desequilibrados é que você efetivamente possui um tamanho pequeno de amostra . Se qualquer método for adequado para o número de pessoas na classe mais rara, não haverá problema se a proporção de membros for desequilibrada.
fonte
Dados não balanceados são apenas um problema, dependendo da sua aplicação. Se, por exemplo, seus dados indicarem que A acontece 99,99% das vezes e 0,01% das vezes B e você tenta prever um determinado resultado, seu algoritmo provavelmente sempre diz A. Isso está claro que está correto! É improvável que seu método obtenha uma precisão de previsão melhor que 99,99%. No entanto, em muitas aplicações, não estamos interessados apenas na correção da previsão, mas também no motivo pelo qual B às vezes acontece. É aqui que os dados desbalanceados se tornam um problema. Como é difícil convencer seu método de que ele pode prever um valor melhor que 99,99% correto. O método está correto, mas não para a sua pergunta. Portanto, a solução de dados desequilibrados é basicamente enviesar intencionalmente os dados para obter resultados interessantes em vez de resultados precisos.
Em geral, existem três casos:
você está puramente interessado em previsões precisas e acha que seus dados são reprensativos. Nesse caso, você não precisa corrigir nada. Aproveite a glória de suas previsões precisas de 99,99% :).
Você está interessado em prever, mas seus dados são de uma amostra justa, mas de alguma forma você perdeu várias observações. Se você perdeu as observações de uma maneira completamente aleatória, ainda está bem. Se você os perdeu de maneira tendenciosa, mas não sabe o quanto é tendenciosa, precisará de novos dados. No entanto, se essas observações forem perdidas apenas com base em uma característica. (por exemplo, você classificou os resultados em A e B, mas não de outra maneira, mas perdeu metade de B) O Ypu pode inicializar seus dados.
Você não está interessado em previsões globais precisas, mas apenas em um caso raro. Nesse caso, você pode aumentar os dados desse caso, inicializando-os ou se você tiver dados suficientes lançando uma maneira de dados dos outros casos. Observe que isso influencia seus dados e resultados e, portanto, as chances e esse tipo de resultado estão errados!
Em geral, depende principalmente de qual é o objetivo. Alguns objetivos sofrem com dados desequilibrados, outros não. Todos os métodos gerais de previsão sofrem com isso, porque, caso contrário, dariam resultados terríveis em geral.
fonte
Vamos supor que temos duas classes:
Vamos supor que estamos interessados em identificar elementos da classe B, que podem ser indivíduos afetados por uma doença rara ou fraudador.
Apenas supondo que os alunos A pontuariam alto em suas funções de perda e os poucos elementos classificados incorretamente podem não mover numericamente a agulha (no palheiro, neste caso). Este exemplo traz a intuição por trás de um dos "truques" para atenuar o problema de desequilíbrio de classe: aprimorando a função de custo.
Sinto que dados desequilibrados são um problema quando os modelos mostram sensibilidade quase zero e especificidade quase uma. Veja o exemplo neste artigo na seção "ignorando o problema" .
Os problemas geralmente têm uma solução. Juntamente com o truque mencionado, há outras opções . No entanto, eles têm um preço: um aumento no modelo e na complexidade computacional.
A pergunta pergunta quais modelos têm maior probabilidade de se ajustar à sensibilidade quase zero e à especificidade de quase um. Eu sinto que depende de algumas dimensões:
fonte
Se você pensar bem: em um conjunto de dados altamente desequilibrado perfeitamente separável, quase qualquer algoritmo será executado sem erros.
Portanto, é mais um problema de ruído nos dados e menos ligado a um algoritmo específico. E você não sabe de antemão qual algoritmo compensa melhor um tipo específico de ruído.
No final, você só precisa tentar métodos diferentes e decidir pela validação cruzada.
fonte