L'Aléa de la Forêt
Glissez pour afficher le menu
La forêt aléatoire construit un grand nombre d’arbres de décision – généralement autour de 100 ou même plus. Créer autant d’arbres différents n’est pas simple en ajustant uniquement les paramètres, c’est pourquoi on introduit de la randomisation. Heureusement, les arbres de décision sont très sensibles aux petites variations des données et des paramètres, ce qui conduit naturellement à une grande diversité d’arbres dans la forêt.
Il existe deux sources de hasard dans une forêt aléatoire :
- Échantillonnage des données pour chaque arbre ;
- Échantillonnage des variables à chaque nœud de décision de chaque arbre.
Échantillonnage des données
Pour créer un ensemble d’entraînement différent pour chaque arbre de décision dans une forêt, on utilise la méthode du bootstrap (également appelée bagging). Le principe consiste à échantillonner, avec remise, un ensemble de données de même taille pour chaque arbre.
Par défaut, la taille de l’ensemble de données de chaque arbre correspond à la taille de l’ensemble de données d’origine. L’échantillonnage avec remise peut être vu comme une sélection aléatoire d’un point de données dans l’ensemble d’entraînement – similaire au tirage d’une carte dans un jeu. Cependant, contrairement au tirage classique, chaque point de données sélectionné n’est pas retiré, donc le même point peut être choisi plusieurs fois.
Chaque arbre est entraîné sur un sous-ensemble différent des données, ce qui contribue déjà à diversifier les arbres. Pour ajouter encore plus d'aléa et accélérer l'entraînement, il est également possible de limiter le nombre de variables que chaque arbre prend en compte lors des séparations.
Échantillonnage des variables
Dans un arbre de décision standard, chaque nœud examine toutes les variables disponibles pour trouver la meilleure séparation – généralement en calculant des métriques comme l’impureté de Gini. Ce processus est coûteux en calcul.
Dans une forêt aléatoire, seul un sous-ensemble aléatoire de variables est considéré à chaque nœud. Cela accélère l'entraînement et ajoute de l'aléa, ce qui contribue à diversifier les arbres. Une approche courante consiste à utiliser la racine carrée du nombre total de variables. Par exemple, s’il y a 9 variables, 3 peuvent être choisies aléatoirement à chaque nœud ; s’il y en a 10 000, environ 100 peuvent être sélectionnées.
Les variables sont échantillonnées sans remise, donc une même variable n’apparaîtra pas plus d’une fois à un même nœud. Le nombre de variables à considérer peut être ajusté selon le cas d’usage.
Vous pouvez contrôler le nombre de caractéristiques prises en compte à chaque nœud de décision à l'aide du paramètre max_features dans l’implémentation de scikit-learn. Voici quelques choix courants :
max_features='sqrt': utilise la racine carrée du nombre total de caractéristiques. Il s'agit d'une valeur par défaut courante qui équilibre précision et efficacité ;max_features='log2': utilise le logarithme en base 2 du nombre total de caractéristiques, offrant encore plus d'aléa ;max_features=0.1: utilise 10 % des caractéristiques, où la valeur est considérée comme une proportion.
Vous pouvez également définir max_features sur n'importe quelle proportion comprise entre 0 et 1 (par exemple, max_features=0.1 utilise 10 % des caractéristiques).
En résumé, une forêt aléatoire est conçue de sorte que chaque arbre soit entraîné sur un échantillon différent des données, et que chaque nœud de décision au sein de ces arbres considère un sous-ensemble aléatoire différent de caractéristiques. Cette part d'aléa intégrée conduit à une collection diversifiée d'arbres, ce qui améliore les performances globales du modèle.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion