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".
scikit-learn
random-forest
Denson
fonte
fonte
Respostas:
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_features
emin_samples_split
por pesquisa de grade validada).fonte
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)
fonte
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.
fonte