RandomForestClassifier vs ExtraTreesClassifier no scikit learn

94

Alguém pode explicar a diferença entre o RandomForestClassifier e ExtraTreesClassifier no scikit learn. Passei um bom tempo lendo o jornal:

P. Geurts, D. Ernst., E L. Wehenkel, "árvores extremamente aleatórias", Machine Learning, 63 (1), 3-42, 2006

Parece que essas são as diferenças para ET:

1) Ao escolher variáveis ​​em uma divisão, as amostras são retiradas de todo o conjunto de treinamento, em vez de uma amostra de bootstrap do conjunto de treinamento.

2) As divisões são escolhidas de forma completamente aleatória no intervalo de valores na amostra em cada divisão.

O resultado dessas duas coisas são muito mais "folhas".

Denson
fonte
6
O motivo pelo qual estou tão interessado no extratreeclassifier é que estou obtendo resultados muito melhores com o ET em um problema específico. Meu vetor de recursos é grande> 200 variáveis ​​e as variáveis ​​são muito barulhentas. O classificador RDF padrão obtém resultados ruins, mas o ET está obtendo pontuações F1 de> 90%. As classes são desequilibradas com relativamente poucas amostras de classes positivas e muitas negativas.
Denson
Veja também esta resposta mais recente: stats.stackexchange.com/questions/175523/…
Archie

Respostas:

56

Sim, ambas as conclusões estão corretas, embora a implementação da Random Forest no scikit-learn possibilite ativar ou desativar a reamostragem de bootstrap.

Na prática, os RFs costumam ser mais compactos do que os ETs. ETs são geralmente mais baratos de treinar do ponto de vista computacional, mas podem ficar muito maiores. ETs às vezes podem generalizar melhor do que RFs, mas é difícil adivinhar quando é o caso sem tentar os dois primeiro (e ajustar n_estimators, max_featurese min_samples_splitpor pesquisa de grade validada).

Ogrisel
fonte
21

O classificador ExtraTrees sempre testa divisões aleatórias em fração de recursos (em contraste com RandomForest, que testa todas as divisões possíveis em fração de recursos)

Muhammad Umar Amanat
fonte
13
Acho engraçado que este comentário seja literalmente a resposta palavra por palavra a uma pergunta do questionário do Coursera
Bob
Sim, @Bob é. Acho essa resposta muito útil, é por isso que postei aqui, ela ajuda outros no entendimento da diferença entre extra-árvore e floresta aleatória.
Muhammad Umar Amanat
3
também veio do mesmo curso. e essa resposta foi útil!
killezio
sim @ skeller88 este é um curso incrível. Você também deve consultar este coursera.org/learn/competitive-data-science?specialization=aml
Muhammad Umar Amanat
0

A principal diferença entre florestas aleatórias e árvores extras (geralmente chamadas de florestas aleatórias extremas) reside no fato de que, em vez de computar a combinação de característica / divisão ideal localmente (para a floresta aleatória), para cada característica em consideração, um valor aleatório é selecionado para a divisão (para as árvores extras). Aqui está um bom recurso para saber mais sobre suas diferenças em mais detalhes Floresta aleatória versus árvore extra.

maria_g
fonte