Devo procurar um conjunto de dados 'equilibrado' ou um conjunto de dados 'representativo'?

48

Minha tarefa de 'aprendizado de máquina' é separar o tráfego benigno da Internet do tráfego malicioso. No cenário do mundo real, a maioria (digamos 90% ou mais) do tráfego da Internet é benigna. Assim, senti que deveria escolher uma configuração de dados semelhante para treinar meus modelos também. Mas me deparei com um ou dois trabalhos de pesquisa (na minha área de trabalho) que usavam uma abordagem de dados de "equilíbrio de classe" para treinar os modelos, implicando um número igual de instâncias de tráfego benigno e malicioso.

Em geral, se estou construindo modelos de aprendizado de máquina, devo procurar um conjunto de dados representativo do problema do mundo real ou um conjunto de dados balanceado mais adequado para a construção dos modelos (já que determinados classificadores não se comportam bem com desequilíbrio de classe, ou devido a outros motivos que não me são conhecidos)?

Alguém pode lançar mais luz sobre os prós e contras das duas opções e como decidir qual escolher?

pnp
fonte

Respostas:

38

Eu diria que a resposta depende do seu caso de uso. Com base na minha experiência:

  • Se você estiver tentando criar um modelo representativo - que descreva os dados, em vez de necessariamente prever -, sugiro usar uma amostra representativa dos seus dados.
  • Se você deseja construir um modelo preditivo, particularmente um que tenha um bom desempenho por medida da AUC ou ordem de classificação e planeje usar uma estrutura básica de ML (por exemplo, Árvore de Decisão, SVM, Naive Bayes etc.), sugiro que você alimente o estruturar um conjunto de dados equilibrado. Grande parte da literatura sobre desequilíbrio de classe considera que a subamostragem aleatória (amostragem da classe maioritária para o tamanho da classe minoritária) pode gerar ganhos de desempenho.
  • Se você está construindo um modelo preditivo, mas está usando uma estrutura mais avançada (ou seja, algo que determina os parâmetros de amostragem via wrapper ou uma modificação de uma estrutura de ensacamento que faz a amostragem para equivalência de classe), sugiro novamente alimentar a amostra representativa e deixar o algoritmo cuida do equilíbrio dos dados para treinamento.
DSea
fonte
2
Se você está tentando criar um modelo representativo - um que descreva os dados, em vez de necessariamente prever ... quem constrói um modelo que não predita? Não
cheguei
8
O aprendizado não supervisionado seria um exemplo em que você cria um modelo que não é necessariamente voltado para prever. Em alguns casos, convém explorar ou resumir seus dados.
DSea
1
Eu diria que é mais seguro equilibrar sua amostra, mas também colete pesos de amostragem para que você possa ponderar novamente seus dados quanto à representatividade, se necessário. O @pnp muitos cientistas sociais constroem modelos não preditivos, por exemplo, para confirmar teorias.
shadowtalker
Como um modelo equilibrado se compara a um modelo representativo usando observações ponderadas para imitar um modelo equilibrado?
JenSCDC
1
A AUC não é afetada pelo desequilíbrio de classe, sendo a probabilidade de seu modelo classificar uma classe positiva escolhida aleatoriamente mais alta do que uma classe negativa escolhida aleatoriamente. Não concordo totalmente com os seus conselhos aqui para fins gerais. Se você tem uma amostra representativa, por exemplo, uma amostra aleatória simples, ela deve ser deixada representativa.
Matthew Drury
8

Eu acho que sempre depende do cenário. Usar um conjunto de dados representativo nem sempre é a solução. Suponha que seu conjunto de treinamento tenha 1000 exemplos negativos e 20 exemplos positivos. Sem nenhuma modificação do classificador, seu algoritmo tenderá a classificar todos os novos exemplos como negativos. Em alguns cenários, isso é bom. Mas, em muitos casos, os custos de falta de exemplos positivos são altos; portanto, você precisa encontrar uma solução para isso.

Nesses casos, você pode usar um algoritmo de aprendizado de máquina sensível a custos. Por exemplo, no caso de análise de dados de diagnóstico médico.

Em resumo: erros de classificação não têm o mesmo custo!

Pasmod Turing
fonte
7

Sempre existe a solução para tentar ambas as abordagens e manter a que maximiza os desempenhos esperados.

No seu caso, eu diria que você prefere minimizar os falsos negativos à custa de algum falso positivo, portanto, você deseja influenciar seu classificador contra o forte negativo anterior e resolver o desequilíbrio reduzindo o número de exemplos negativos em seu conjunto de treinamento.

Em seguida, calcule a precisão / recall, sensibilidade / especificidade ou qualquer critério adequado a você no conjunto de dados completo e desequilibrado para garantir que você não tenha ignorado um padrão significativo presente nos dados reais ao construir o modelo nos dados reduzidos.

damienfrancois
fonte
4

Separe os cenários operacional e de treinamento.

O cenário operacional é aquele em que seu classificador será medido. É aqui que você deve executar bem. O uso deve ter um conjunto de dados representativo desse cenário.

O cenário de treinamento é o que você está fazendo para criar um classificador que terá um bom desempenho no cenário operacional.

Muitas vezes, os conjuntos de dados nos dois cenários são da mesma natureza, portanto, não há necessidade de distingui-los. Por exemplo, você tem alguma loja on-line e usa para treinar o uso passado para ter um bom desempenho no uso futuro. No entanto, durante o treinamento, você pode usar um conjunto de dados diferente daquele que representa o cenário operacional. Na verdade, se você dorme, sonha com um classificador, valida-o em seu cenário operacional (esta etapa deve ser feita depois de acordar), você é tão bom quanto depois de seguir o caminho usual de aprendizado de máquina.

A distinção entre cenários operacionais e de treinamento se torna importante quando o conjunto de dados é desequilibrado. A maioria dos algoritmos não funciona bem nesse conjunto de dados.

Portanto, não hesite em usar dois conjuntos de dados - Você pode usar um conjunto de dados equilibrado para o treinamento. Quando terminar, valide seu classificador do conjunto de dados operacional.

DaL
fonte
3

Acho que há duas questões distintas a serem consideradas: tempo de treinamento e precisão das previsões.

Tome um exemplo simples: considere que você tem duas classes, que têm uma distribuição normal multivariada. Basicamente, você precisa estimar as respectivas médias de classe e covariâncias de classe. Agora, a primeira coisa com a qual você se importa é sua estimativa da diferença na classe: mas seu desempenho é limitado pela precisão da pior média estimada: não é bom estimar uma média para a centésima casa decimal - se a outra média for apenas estimado para 1 casa decimal. Portanto, é um desperdício de recursos de computação usar todos os dados - você pode subamostrar a classe mais comum E ponderar novamente as classes adequadamente. (esses recursos de computação podem ser usados ​​para explorar diferentes variáveis ​​de entrada etc.)

Agora, a segunda questão é a precisão preditiva: algoritmos diferentes usam métricas de erro diferentes, que podem ou não concordar com seus próprios objetivos. Por exemplo, a regressão logística penalizará o erro de probabilidade geral; portanto, se a maioria dos seus dados for de uma classe, ela tenderá a tentar melhorar estimativas de probabilidade precisas (por exemplo, 90 vs 95% de probabilidade) dessa classe, em vez de tentar identificar a classe rara. Nesse caso, você definitivamente desejaria tentar re-ponderar para enfatizar a classe rara (e subsequentemente ajustar a estimativa [ajustando o termo de viés] para obter as realocações de probabilidade estimadas)

seanv507
fonte