Forêts d'arbres décisionnels

Une forêt aléatoire (RF) est un ensemble d'arbres de décision dans lequel chaque arbre de décision est entraîné avec un bruit aléatoire spécifique. Les forêts d'arbres décisionnels constituent la forme la plus populaire d'ensemble d'arbres de décision. Ce module présente plusieurs techniques permettant de créer des arbres de décision indépendants afin d'augmenter les chances de créer une forêt aléatoire efficace.

Bagage

Le bagage (agrégation bootstrap) consiste à entraîner chaque arbre de décision sur un sous-ensemble aléatoire des exemples de l'ensemble d'entraînement. En d'autres termes, chaque arbre de décision de la forêt aléatoire est entraîné sur un sous-ensemble différent d'exemples.

Le bagging est étrange. Chaque arbre de décision est entraîné sur le même nombre d'exemples que dans l'ensemble d'entraînement d'origine. Par exemple, si l'ensemble d'entraînement d'origine contient 60 exemples, chaque arbre de décision est entraîné sur 60 exemples. Cependant, le bagging n'entraîne chaque arbre de décision que sur un sous-ensemble (généralement 67%) de ces exemples. Certains des 40 exemples du sous-ensemble doivent donc être réutilisés lors de l'entraînement d'un arbre de décision donné. Cette réutilisation est appelée entraînement "avec remplacement".

Par exemple, le tableau 6 montre comment le bagging peut répartir six exemples sur trois arbres de décision. Notez ce qui suit :

  • Chaque arbre de décision est entraîné sur six exemples au total.
  • Chaque arbre de décision s'entraîne sur un ensemble différent d'exemples.
  • Chaque arbre de décision réutilise certains exemples. Par exemple, l'exemple 4 est utilisé deux fois dans l'arbre de décision 1 pour l'entraînement. Par conséquent, la pondération apprise de l'exemple 4 est effectivement doublée dans l'arbre de décision 1.

Tableau 6. Bagages de six exemples d'entraînement sur trois arbres de décision Chaque nombre représente le nombre de répétitions d'un exemple d'entraînement donné (n° 1-6) dans l'ensemble de données d'entraînement d'un arbre de décision donné (1-3).

exemples d'entraînement
#1 #2 #3 #4 #5 #6
ensemble de données d'origine 1 1 1 1 1 1
arbre de décision 1 1 1 0 2 1 1
arbre de décision 2 3 0 1 0 2 0
arbre de décision 3 0 1 3 1 0 1

Avec le bagging, chaque arbre de décision est presque toujours entraîné sur le nombre total d'exemples de l'ensemble d'entraînement d'origine. Entraîner chaque arbre de décision sur plus ou moins d'exemples a tendance à dégrader la qualité de la forêt aléatoire.

Bien qu'il ne soit pas présent dans l'article d'origine sur les forêts aléatoires, l'échantillonnage des exemples est parfois effectué "sans remplacement". En d'autres termes, un exemple d'entraînement ne peut pas être présent plusieurs fois dans un ensemble d'entraînement d'arbre de décision. Par exemple, dans le tableau précédent, toutes les valeurs correspondent à 0 ou à 1.

Code YDF
Vous pouvez activer l'entraînement sans le remplacer par l'attribution suivante dans YDF: bootstrap_training_dataset=False

Échantillonnage des attributs

L'échantillonnage des attributs signifie qu'au lieu de rechercher la meilleure condition parmi toutes les caractéristiques disponibles, seul un sous-ensemble aléatoire de caractéristiques est testé sur chaque nœud. L'ensemble des caractéristiques testées est échantillonnée de manière aléatoire sur chaque nœud de l'arbre de décision.

L'arbre de décision suivant illustre l'échantillonnage des attributs / caractéristiques. Ici, un arbre de décision est entraîné sur cinq caractéristiques (f1-f5). Les nœuds bleus représentent les fonctionnalités testées, tandis que les nœuds blancs ne le sont pas. La condition est construite à partir des caractéristiques les mieux testées (représentées par un contour rouge).

Trois nœuds, qui présentent tous cinq caractéristiques Le nœud racine et l'un de ses nœuds enfants testent trois des cinq fonctionnalités. L'autre nœud enfant teste deux des cinq caractéristiques.

Figure 21 Échantillonnage des attributs

 

Le ratio d'échantillonnage des attributs est un hyperparamètre de régularisation important. La figure précédente utilisait un ratio d'environ 3/5. Par défaut, de nombreuses implémentations de forêts aléatoires testent un tiers des caractéristiques pour la régression et 2xrt(nombre de caractéristiques) pour la classification.

Dans TF-DF, les hyperparamètres suivants contrôlent l'échantillonnage des attributs:

  • num_candidate_attributes
  • num_candidate_attributes_ratio

Par exemple, si la valeur est num_candidate_attributes_ratio=0.5, la moitié des caractéristiques sera testée sur chaque nœud.

Désactiver la régularisation de l'arbre de décision

Les arbres de décision individuels d'une forêt aléatoire sont entraînés sans élagage. (Consultez Surapprentissage et élagage.) Cela produit des arbres trop complexes avec une mauvaise qualité prédictive. Au lieu de régulariser des arbres individuels, les arbres sont regroupés, ce qui permet de réaliser des prédictions globales plus précises.

Nous expect à ce que l'entraînement et les tests d'une forêt aléatoire diffèrent. La justesse de l'entraînement d'une forêt aléatoire est généralement beaucoup plus élevée (parfois égale à 100%). Cependant, une justesse très élevée de l'entraînement dans une forêt aléatoire est normale et n'indique pas que la forêt aléatoire est surapprentissage.

Les deux sources de hasard (bagging et échantillonnage d'attributs) assurent l'indépendance relative entre les arbres de décision. Cette indépendance corrige le surapprentissage des arbres de décision individuels. Par conséquent, l'ensemble n'est pas surappris. Nous illustrerons cet effet non intuitif dans le module suivant.

Les forêts d'arbres décisionnels pures s'entraînent sans profondeur ni nombre minimal d'observations par feuille. En pratique, il est préférable de limiter la profondeur maximale et le nombre minimal d'observations par feuille. Par défaut, de nombreuses forêts aléatoires utilisent les valeurs par défaut suivantes:

  • profondeur maximale d'environ 16
  • nombre minimal d'observations par feuille d'environ 5.

Vous pouvez régler ces hyperparamètres.

Code YDF
Le tuner de YDF est un moyen simple de régler les hyperparamètres. Pour en savoir plus, consultez le tutoriel de réglage de YDF.

La clarté du bruit

Pourquoi le bruit aléatoire améliorerait-il la qualité d'une forêt aléatoire ? Pour illustrer les avantages du bruit aléatoire, la figure 22 illustre les prédictions d'un arbre de décision classique (établi) et d'une forêt aléatoire entraînée sur quelques exemples de problème bidimensionnel simple avec un motif d'ellipse.

Les modèles d'ellipse sont notoirement difficiles à apprendre pour les algorithmes d'arbre de décision et de forêt de décision avec des conditions alignées sur les axes. Ils constituent donc un bon exemple. Notez que l'arbre de décision élancé ne peut pas obtenir la même qualité de prédiction que la forêt aléatoire.

Trois illustrations. La première illustration, intitulée "Vérité terrain", est une ellipse parfaite. La deuxième illustration, intitulée "Arbre de décision éliminé",
se trouve quelque part entre une ellipse et un rectangle. Une troisième illustration, intitulée "Forêt aléatoire", n'est pas tout à fait une ellipse, mais elle est beaucoup plus proche d'une ellipse que l'illustration intitulée "Arborescence de décision élancée".

Figure 22 Vérité terrain et prédictions générées par un seul arbre de décision élagué et prédictions générées par une forêt aléatoire

Le graphique suivant montre les prédictions des trois premiers arbres de décision non élagués de la forêt aléatoire. En d'autres termes, les arbres de décision sont tous entraînés avec une combinaison des éléments suivants:

  • bagging
  • échantillonnage d'attributs
  • désactivation de l'élagage

Notez que les prédictions individuelles de ces trois arbres de décision sont moins bonnes que celles de l'arbre de décision élagué de la figure précédente. Toutefois, comme les erreurs des arbres de décision individuels ne sont que faiblement corrélées, les trois arbres de décision se combinent en un ensemble pour créer des prédictions efficaces.

Trois ellipses très bruyantes.

Figure 23 Trois arbres de décision non élancés qui constitueront un ensemble efficace.

Étant donné que les arbres de décision d'une forêt aléatoire ne sont pas élagués, l'entraînement d'une forêt aléatoire ne nécessite pas d'ensemble de données de validation. En pratique, et en particulier sur les petits ensembles de données, les modèles doivent être entraînés sur toutes les données disponibles.

Lors de l'entraînement d'une forêt aléatoire, l'erreur diminue presque toujours à mesure que d'autres arbres de décision sont ajoutés, c'est-à-dire que la qualité du modèle s'améliore presque toujours. Oui, l'ajout d'arbres de décision supplémentaires réduit presque toujours l'erreur de la forêt aléatoire. En d'autres termes, l'ajout d'arbres de décision supplémentaires ne peut pas entraîner de surapprentissage dans la forêt aléatoire. À un moment donné, le modèle cesse de s'améliorer. Leo Breiman a déclaré : "Les forêts d'arbres décisionnels ne nécessitent pas de surapprentissage, car davantage d'arbres sont ajoutés".

Par exemple, le graphique suivant montre l'évaluation d'un modèle de forêt aléatoire à mesure que d'autres arbres de décision sont ajoutés. La précision s'améliore rapidement jusqu'à stagner autour de 0,865. Toutefois, l'ajout d'arbres de décision supplémentaires ne réduit pas la justesse. En d'autres termes,le modèle ne surapprend pas. Ce comportement est (pour la plupart) toujours vrai et indépendant des hyperparamètres.

Représentation graphique de la justesse en fonction du nombre d'arbres de décision décrits au paragraphe précédent.

Figure 24 La précision reste constante à mesure que d'autres arbres de décision sont ajoutés à la forêt aléatoire.