RandomForestClassifier vs ExtraTreesClassifier dans Scikit Learn

94

Quelqu'un peut-il expliquer la différence entre RandomForestClassifier et ExtraTreesClassifier dans scikit learn. J'ai passé un bon moment à lire l'article:

P. Geurts, D. Ernst., Et L. Wehenkel, «Arbres extrêmement aléatoires», Machine Learning, 63 (1), 3-42, 2006

Il semble que ce soit la différence pour ET:

1) Lors du choix des variables lors d'un fractionnement, les échantillons sont tirés de l'ensemble d'apprentissage entier au lieu d'un échantillon bootstrap de l'ensemble d'apprentissage.

2) Les divisions sont choisies complètement au hasard dans la plage de valeurs de l'échantillon à chaque division.

Le résultat de ces deux choses est beaucoup plus de «feuilles».

Denson
la source
6
La raison pour laquelle je suis si intéressé par l'extratreeclassifier est que j'obtiens de bien meilleurs résultats avec ET sur un problème particulier. Mon vecteur de caractéristiques est grand> 200 variables et les variables sont très bruyantes. Le classificateur RDF standard obtient de mauvais résultats mais l'ET obtient des scores F1> 90%. Les classes sont déséquilibrées avec relativement peu d'échantillons de classe positifs et de nombreux négatifs.
denson
Voir aussi cette réponse plus récente: stats.stackexchange.com/questions/175523/…
Archie

Réponses:

56

Oui, les deux conclusions sont correctes, bien que l'implémentation Random Forest dans scikit-learn permette d'activer ou de désactiver le rééchantillonnage bootstrap.

En pratique, les RF sont souvent plus compacts que les ET. Les ET sont généralement moins chers à former d'un point de vue informatique, mais peuvent devenir beaucoup plus gros. Les ET peuvent parfois mieux se généraliser que les RF, mais il est difficile de deviner quand c'est le cas sans essayer les deux d'abord (et le réglage n_estimators, max_featureset min_samples_splitpar une recherche de grille validée par recoupement).

ogrisel
la source
21

Le classificateur ExtraTrees teste toujours les fractionnements aléatoires sur une fraction d'entités (contrairement à RandomForest, qui teste tous les fractionnements possibles sur une fraction d'entités)

Muhammad Umar Amanat
la source
13
Je suis amusé que ce commentaire soit littéralement la réponse mot pour mot à une question de quiz Coursera
Bob
Ouais @Bob ça l'est. Je trouve cette réponse très utile, c'est pourquoi j'ai posté ici, cela aide les autres à comprendre la différence entre les forêts extra-arborescentes et aléatoires.
Muhammad Umar Amanat
3
est également venu du même cours. et cette réponse a été utile!
killezio
oui @ skeller88 c'est bien sûr incroyable. Vous devriez également regarder ce coursera.org/learn/competitive-data-science?specialization=aml
Muhammad Umar Amanat le
0

La principale différence entre les forêts aléatoires et les arbres supplémentaires (généralement appelés forêts aléatoires extrêmes) réside dans le fait qu'au lieu de calculer la combinaison caractéristique / fractionnement localement optimale (pour la forêt aléatoire), pour chaque caractéristique considérée, une valeur aléatoire est sélectionnée pour la scission (pour les arbres supplémentaires). Voici une bonne ressource pour en savoir plus sur leur différence plus en détail Forêt aléatoire vs arbre supplémentaire.

maria_g
la source