Quando os dados desequilibrados são realmente um problema no Machine Learning?

53

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.

Tim
fonte
@MatthewDrury obrigado, esta é uma pergunta interessante, mas IMHO, tem um escopo diferente. O que estou pedindo é orientações, quando isso é realmente um problema. Certamente, responder à pergunta por que leva a responder à pergunta quando , mas estou procurando uma resposta precisa para a pergunta quando .
Tim
9
Justo! Estou contigo. A "literatura" sobre isso parece ser sobre como consertar um problema, sem se preocupar em convencê-lo de que realmente há um problema a ser resolvido, ou mesmo dizendo em que situações um problema ocorre ou não. Uma das partes mais frustrantes do assunto para mim.
Matthew Drury
2
@MatthewDrury, esse é exatamente o problema!
Tim
11
Uma pesquisa total de métodos não está dentro do escopo de uma pergunta SE. Deseja refinar a pergunta?
21417 AdamOcre:

Respostas:

29

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.

Henry
fonte
4
Embora pareça entender seu ponto de vista, suas premissas carecem de argumentos para apoiá-los. Você poderia dar alguns argumentos e / ou exemplos sobre o preconceito e como isso afetou o aprendizado de máquina?
Tim
11
Embora o que você diz seja verdade, também é o caso de métodos como anova serem mais robustos com dados balanceados, a não normalidade é menos um problema com dados balanceados, por exemplo. Mas eu acredito que tudo isso é ortogonal à intenção desta pergunta ...
b Kjetil Halvorsen
7
Sei que não saí e apenas digo: não 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.
Henry
11
@ M.HenryL. vale a pena acrescentar esse comentário à sua resposta para que seja completo.
Tim
16

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.

AdamO
fonte
13

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:

  1. 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% :).

  2. 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.

  3. 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.

zen
fonte
7
Como essa história muda quando avaliamos nossos modelos de forma probabilística?
Matthew Drury
@MatthewDrury As probabilidades do modelo original estão corretas nos casos 1 e 3. O problema é que apenas os conjuntos de dados muito grandes B se separam corretamente de A e a probabilidade de B converge lentamente para seu valor real. A exceção é que, se B for muito claramente separado de A ou completamente aleatoriamente separado de A, as probabalidades respectivamente respectivamente quase imediatamente ou nunca convergirão.
zen
@zen Eu discordo que a regressão logística é menos vulnerável. A regressão logística é bastante vulnerável ao desequilíbrio de dados, cria um pequeno viés de amostra e as razões de chances de log tendem a um fator de 2. A regressão logística condicional é uma alternativa para estimar os mesmos ORs sem viés.
11117 AdamOcrei
@AdamO Sim, a regressão logística ainda é vulnerável. Mas para árvores, pequenos casos podem ser completamente ignorados. também não é apenas um pequeno tamanho de amostra. mesmo para grandes n e por exemplo, a distribuição de 80% a 20% entre as árvores de opções ainda pode optar por escolher a opção de 80%, mesmo que a fração da opção de 20% aumente claramente com alguma variável x. Se uma nova observação mais extrema for encontrada ou se o número de ramificações for baixo para qualquer ponto extremo, a árvore preverá a opção de 80%, enquanto a regressão logística será menos provável. Você está certo sobre condicional logístico de regressão
zen
2
@MatthewDrury Stephen Senn tem uma excelente discussão sobre esse ponto em um artigo que releio com frequência . Heuristicamente, o odds ratio de uma tabela 2x2 com entradas abcd é estimado por ad / (bc) e tem variação 1 / a + 1 / b + 1 / c + 1 / d. Você pode amostrar arbitrariamente poucos casos (a e c) e o odds ratio ainda é imparcial, mas a variação vai para o infinito. É uma questão de precisão.
Adamo
8

Vamos supor que temos duas classes:

  • A , representando 99,99% da população
  • B , representando 0,01% da população

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:

  • Menos capacidade, como de costume.
  • Algumas funções de custo podem sofrer mais que outras: o erro quadrático médio (MSE) está menos exposto do que o Huber - o MSE deve ser menos benigno em relação aos elementos da classe B classificados incorretamente .
IcannotFixThis
fonte
11
Isso pressupõe implicitamente (1) que o KPI que tentamos maximizar é a precisão e (2) que a precisão é um KPI apropriado para a avaliação do modelo de classificação. Não é.
S. Kolassa - Restabelece Monica
5

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.

Gerenuk
fonte
Eu sinto que este comentário é um pouco subestimado. Passo um pouco de tempo convencendo alguém de que o desequilíbrio de classe nem sempre é um problema.
RDK 25/05
Isso não responde à pergunta. Como as classes desequilibradas "mais um problema de ruído nos dados"?
S. Kolassa - Restabelece Monica
2
@StephanKolassa É uma resposta, porque diz que dados desequilibrados não são (diretamente) um problema. Portanto, você não pode perguntar "como" é. Para a pergunta mais geral "como lidar com problemas de ruído na análise de dados", a resposta é que ela é específica para conjuntos de dados individuais e tudo que você pode fazer é configurar a validação e tentar o que funcionar. Se você realmente gostaria de alguma discussão, acredito que ele.uri.edu/faculty/he/PDFfiles/ImbalancedLearning.pdf tem idéias. Mas, no final, você faria amostragem / reponderação / limiar e não vale a pena saber o que exatamente aconteceu nesse conjunto de dados.
Gerenuk 17/07/1918