Quais são as implicações para o treinamento de um Tree Ensemble com conjuntos de dados altamente tendenciosos?

14

Eu tenho um conjunto de dados binários altamente tendencioso - tenho 1000x mais exemplos da classe negativa do que a classe positiva. Gostaria de treinar um conjunto de árvores (como árvores aleatórias extras ou uma floresta aleatória) nesses dados, mas é difícil criar conjuntos de dados de treinamento que contenham exemplos suficientes da classe positiva.

Quais seriam as implicações de se fazer uma abordagem de amostragem estratificada para normalizar o número de exemplos positivos e negativos? Em outras palavras, é uma má idéia, por exemplo, aumentar artificialmente (por reamostragem) o número de exemplos positivos de classe no conjunto de treinamento?

galamina
fonte

Respostas:

10

Sim, é problemático. Se você exagerar na minoria, corre o risco de se ajustar demais. Se você subamostra a maioria, corre o risco de perder aspectos da classe majoritária. Amostragem estratificada, btw, é o equivalente a atribuir custos não uniformes de classificação incorreta.

Alternativas:

(1) Amostra independente de vários subconjuntos da classe majoritária e criação de vários classificadores combinando cada subconjunto com todos os dados das classes minoritárias, conforme sugerido na resposta do @Debasis e descrito neste documento EasyEnsemble ,

(2) SMOTE (técnica de superamostragem por minoria sintética) ou SMOTEBoost (combinando SMOTE com reforço) para criar instâncias sintéticas da classe minoritária, tornando os vizinhos mais próximos no espaço de recursos. O SMOTE é implementado em R no pacote DMwR .

MattBagg
fonte
11

Eu recomendaria o treinamento em subconjuntos mais equilibrados dos seus dados. Treinar floresta aleatória em conjuntos de exemplos positivos selecionados aleatoriamente com um número semelhante de amostras negativas. Em particular, se as características discriminatórias exibirem muita variação, isso será bastante eficaz e evitará ajustes excessivos. No entanto, na estratificação, é importante encontrar equilíbrio, pois o excesso de ajuste pode se tornar um problema independentemente. Eu sugeriria ver como o modelo funciona com todo o conjunto de dados, aumentando progressivamente a proporção de amostras positivas para negativas aproximando-se de uma proporção uniforme e selecionando a que maximiza sua métrica de desempenho em alguns dados representativos.

Este artigo parece bastante relevante http://statistics.berkeley.edu/sites/default/files/tech-reports/666.pdf e fala sobre um weighted Random Forestque penaliza mais fortemente a classificação incorreta da classe minoritária.

indico
fonte
4

Uma maneira rápida, fácil e freqüentemente eficaz de abordar esse desequilíbrio seria subamostrar aleatoriamente a classe maior (que no seu caso é a classe negativa), executar a classificação N várias vezes com membros das duas classes (uma completa e outra subamostra) e relate os valores médios da métrica, sendo a média calculada sobre N (digamos, 1000) iterações.

Uma abordagem mais metódica seria executar o algoritmo Mapping Convergence (MC), que envolve a identificação de um subconjunto de amostras negativas fortes com a ajuda de um classificador de uma classe, como OSVM ou SVDD, e executar iterativamente a classificação binária no conjunto de fortes amostras negativas e positivas. Mais detalhes do algoritmo MC podem ser encontrados neste documento .

Debasis
fonte
0

Como mencionado acima, a melhor maneira é amostrar repetidamente as vezes N da classe majoritária (amostragem sem substituição) e, para cada vez, o tamanho da classe negativa deve ser igual ao tamanho da classe positiva. Agora, N classificadores diferentes podem ser treinados e a média pode ser usada para avaliá-lo.

Outra maneira é usar a técnica de inicialização. Isso pode introduzir super ajuste, mas vale a pena tentar e, se necessário, pode regularizar o modelo para evitar o ajuste excessivo.

RAM
fonte