Guia rápido para o treinamento de conjuntos de dados altamente desequilibrados


29

Eu tenho um problema de classificação com aproximadamente 1000 amostras positivas e 10.000 amostras negativas no conjunto de treinamento. Portanto, esse conjunto de dados é bastante desequilibrado. A floresta aleatória simples está apenas tentando marcar todas as amostras de teste como uma classe majoritária.

Algumas boas respostas sobre subamostragem e floresta aleatória ponderada são fornecidas aqui: Quais são as implicações para o treinamento de um Tree Ensemble com conjuntos de dados altamente tendenciosos?

Quais métodos de classificação além da RF podem lidar com o problema da melhor maneira?


Respostas:


19
  • Max Kuhn cobre isso bem no capítulo 16 da Modelagem Preditiva Aplicada .
  • Conforme mencionado no encadeamento vinculado, os dados desequilibrados são essencialmente um problema de treinamento sensível ao custo. Portanto, qualquer abordagem sensível ao custo é aplicável aos dados desequilibrados.
  • Há um grande número de tais abordagens. Nem todos implementados no R: C50, SVMs ponderados são opções. Jous-boost. Acho que o Rusboost está disponível apenas como código Matlab.
  • Não uso o Weka, mas acredito que ele tenha um grande número de classificadores sensíveis ao custo.
  • Lidando com conjuntos de dados desequilibrados: Uma revisão : Sotiris Kotsiantis, Dimitris Kanellopoulos, Panayiotis Pintelas '
  • Sobre o problema do desequilíbrio de classe : Xinjian Guo, Yilong Yin, Dong Cailing, Gongping Yang, Guangtong Zhou

16

Subamostrar a classe majoritária geralmente é o caminho a seguir nessas situações.

Se você acha que possui muito poucas instâncias da classe positiva, poderá realizar uma superamostragem, por exemplo, exemplos de instâncias 5n com substituição do conjunto de dados de tamanho n.

Ressalvas:

  • Alguns métodos podem ser sensíveis a mudanças na distribuição de classes, por exemplo, para Naive Bayes - isso afeta as probabilidades anteriores.
  • A sobreamostragem pode levar a sobreajuste

Ou talvez tente algum algoritmo de cluster e use os centros de cluster?
Leela Prabhu

Você pode verificar este link para superamostragem e outros métodos para lidar com conjuntos de dados desequilibrados.
janpreet singh

11

O aumento de gradiente também é uma boa escolha aqui. Você pode usar o classificador de aumento de gradiente no sci-kit learn, por exemplo. O aumento de gradiente é um método baseado em princípios para lidar com o desequilíbrio de classe, construindo conjuntos de treinamento sucessivos com base em exemplos classificados incorretamente.


1
Meu entendimento é que o aumento do gradiente sofre as mesmas limitações que o RF ao lidar com dados desequilibrados: sci2s.ugr.es/keel/pdf/algorithm/articulo/…
charles

1
O impulso é uma etapa adicional que você executa na construção da floresta que aborda diretamente o desequilíbrio. O artigo que você vincula observa isso na introdução de reforço, mesmo nos casos em que não há desequilíbrio. E esse documento conclui que aumentar significativamente ajuda. Então, não sabe onde a equivalência entre RF e reforço é mostrada lá?
Cwharland 15/09/14

1

Além das respostas postadas aqui, se o número de exemplos positivos for muito pequeno quando comparado aos exemplos negativos, quase se trata de um problema de detecção de anomalias, onde os exemplos positivos são as anomalias.

Você tem toda uma gama de métodos para detectar anomalias, desde o uso da distribuição gaussiana multivariada até o modelo de todos os pontos e, em seguida, escolhendo aqueles que estão a 2 ou 3 stds da média.

Outro alimento para o pensamento - já vi várias pessoas que amostram aleatoriamente os exemplos negativos com mais exemplos, de modo que as duas classes são iguais em número. Depende totalmente do problema em questão, se queremos que eles sejam equilibrados ou não.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.