J'ai compris que Random Forest et Extremely Randomized Trees diffèrent en ce sens que les divisions des arbres de Random Forest sont déterministes, alors qu'elles sont aléatoires dans le cas d'arbres extrêmement aléatoires (pour être plus précis, la division suivante est la meilleure parmi les divisions uniformes aléatoires dans les variables sélectionnées pour l’arbre actuel). Mais je ne comprends pas bien l’impact de ces différentes scissions dans diverses situations.
- Comment se comparent-ils en termes de biais / variance?
- Comment se comparent-ils en présence de variables non pertinentes?
- Comment se comparent-ils en présence de variables corrélées?
uniform split
?Réponses:
Le extra- (répartition aléatoire) -trees (ET) L' article contient une analyse biais-variance. À la page 16, vous pouvez voir une comparaison avec plusieurs méthodes, y compris RF, sur six tests (classification des arbres et trois régressions).
Les deux méthodes sont à peu près les mêmes, l'ET étant un peu pire lorsqu'il y a un grand nombre de caractéristiques bruitées (dans des ensembles de données de grande dimension).
Cela dit, à condition que la sélection des fonctionnalités (peut-être manuelle) soit presque optimale, les performances sont à peu près les mêmes, toutefois, les ET peuvent être plus rapides en calcul.
De l'article lui-même:
Pas de solution miracle, comme toujours.
Pierre Geurts, Damien Ernst et Louis Wehenke. "Arbres extrêmement aléatoires"
la source
La réponse est que cela dépend. Je vous suggère d'essayer à la fois des forêts aléatoires et des arbres supplémentaires pour résoudre votre problème. Essayez une grande forêt (1 000 à 3 000 arbres / estimateurs, n_estimateurs dans Sklearn) et réglez le nombre d'entités prises en compte à chaque division (max_features dans Sklearn) ainsi que le nombre minimal d'échantillons par division (min_samples_split dans Sklearn) et la profondeur maximale de l'arbre ( max_depth in sklearn). Cela dit, gardez à l’esprit que le sur-réglage peut être une forme de surajustement.
Voici deux problèmes sur lesquels j'ai personnellement travaillé: des arbres supplémentaires se sont révélés utiles avec des données très bruitées:
Forêts décisionnelles pour la classification par apprentissage automatique de grands ensembles de caractéristiques de fond marin bruyants
Une prédiction efficace des troubles protéiques distribués avec des échantillons collés
la source
Merci beaucoup pour les réponses! Comme j'avais toujours des questions, j'ai effectué des simulations numériques pour mieux comprendre le comportement de ces deux méthodes.
L'image ci-dessous montre la performance (évaluée avec validation croisée) au fur et à mesure que des colonnes aléatoires non pertinentes pour la cible sont ajoutées à l'ensemble de données. La cible étant juste une combinaison linéaire des trois premières colonnes.
Lorsque toutes les variables sont pertinentes, les deux méthodes semblent atteindre la même performance,
Les arbres supplémentaires semblent trois fois plus rapides que la forêt aléatoire (au moins, dans la mise en œuvre de scikit learn)
Sources
Lien vers l'article complet: forêt aléatoire vs arbres supplémentaires .
la source
ExtraTreesClassifier est comme un frère de RandomForest mais avec 2 différences importantes.
Nous construisons plusieurs arbres de décision. Pour construire plusieurs arbres, nous avons besoin de plusieurs jeux de données. La meilleure pratique consiste à ne pas former les arbres de décision sur l'ensemble de données complet, mais uniquement sur une fraction de données (environ 80%) pour chaque arbre. Dans une forêt aléatoire, nous tirons des observations avec remplacement. Ainsi, nous pouvons avoir des répétitions d'observations dans une forêt aléatoire. Dans un ExtraTreesClassifier, nous tirons des observations sans les remplacer. Par conséquent, les observations ne seront pas répétées comme dans une forêt aléatoire.
La scission consiste à convertir un nœud parent non homogène en 2 nœuds enfants homogènes (au mieux). Dans RandomForest, il sélectionne le meilleur fractionnement pour convertir le parent en deux nœuds enfants les plus homogènes. Dans un ExtraTreesClassifier, il sélectionne une division aléatoire pour diviser le nœud parent en deux nœuds enfants aléatoires.
Regardons quelques méthodes d'ensemble ordonnées de variance élevée à faible, se terminant par ExtraTreesClassifier.
1. Arbre de décision (grande variance)
Un arbre de décision unique sur-exploite généralement les données dont il tire l’apprentissage, car il n’apprend qu’à partir d’un seul processus décisionnel. Les prévisions d'un seul arbre de décision ne font généralement pas de prévisions précises sur les nouvelles données.
2. Forêt aléatoire (Variance moyenne)
Les modèles de forêt aléatoires réduisent le risque de surajustement en introduisant le caractère aléatoire comme suit:
3. Arbres supplémentaires (faible variance)
Extra Trees ressemble à une forêt aléatoire, en ce sens qu'il crée plusieurs arbres et divise des nœuds à l'aide de sous-ensembles aléatoires d'entités, mais avec deux différences essentielles: il n'amorce pas les observations (c'est-à-dire qu'il échantillonne sans remplacement) et les nœuds sont fractionnés sur des fractionnements aléatoires. pas mieux divise. Donc, en résumé, ExtraTrees:
Dans Extra Trees, le caractère aléatoire ne provient pas de l'initialisation des données, mais de la division aléatoire de toutes les observations. ExtraTrees est nommé pour (arbres extrêmement randomisés).
la source