Quelqu'un peut-il expliquer la différence entre RandomForestClassifier et ExtraTreesClassifier dans Scikit Learn? J'ai passé un bon bout de temps à lire le journal:
P. Geurts, D. Ernst. Et L. Wehenkel, "Arbres extrêmement randomisés", Machine Learning, 63 (1), 3-42, 2006.
Il semble que ce soient la différence pour ET:
1) Lors de la sélection de variables sur une division, des échantillons sont tirés de l’ensemble de la formation au lieu d’un échantillon bootstrap) de la formation.
2) Les fractionnements sont choisis complètement au hasard dans la plage de valeurs de l'échantillon à chaque fractionnement.
Le résultat de ces deux choses est beaucoup plus de "feuilles".
Oui, les deux conclusions sont correctes, bien que l'implémentation de 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 du point de vue informatique, mais peuvent devenir beaucoup plus gros. Les ET peuvent parfois mieux généraliser que les RF, mais il est difficile de deviner quand c'est le cas sans essayer à la fois d'abord (et d'accorder n_estimators
, max_features
et min_samples_split
par recherche quadrillée validée).
Le classifieur ExtraTrees teste toujours les fractionnements aléatoires sur une fraction d'entités (contrairement à RandomForest, qui teste toutes les fractionnements possibles sur une fraction d'entités)