L’algorithme de forêt aléatoire : un guide complet

Random forest est un algorithme d’apprentissage automatique flexible et facile à utiliser qui produit, même sans réglage d’hyper-paramètres, un excellent résultat la plupart du temps. C’est également l’un des algorithmes les plus utilisés, en raison de sa simplicité et de sa diversité (il peut être utilisé à la fois pour des tâches de classification et de régression). Dans cet article, nous allons découvrir comment fonctionne l’algorithme de forêt aléatoire, en quoi il diffère des autres algorithmes et comment l’utiliser.
Qu’est-ce qu’une forêt aléatoire ?
La forêt aléatoire est un algorithme d’apprentissage supervisé. La « forêt » qu’il construit, est un ensemble d’arbres de décision, généralement formés avec la méthode du « bagging ». L’idée générale de la méthode d’ensachage est qu’une combinaison de modèles d’apprentissage augmente le résultat global.
Table des matières
Comment fonctionne la forêt aléatoire
La forêt aléatoire est un algorithme d’apprentissage supervisé. La « forêt » qu’il construit est un ensemble d’arbres de décision, généralement formés avec la méthode « d’ensachage ». L’idée générale de la méthode d’ensachage est qu’une combinaison de modèles d’apprentissage augmente le résultat global.
En termes simples : la forêt aléatoire crée plusieurs arbres de décision et les fusionne pour obtenir une prédiction plus précise et plus stable.
L’un des grands avantages de la forêt aléatoire est qu’elle peut être utilisée à la fois pour les problèmes de classification et de régression, qui constituent la majorité des systèmes d’apprentissage automatique actuels. Examinons la forêt aléatoire dans la classification, car la classification est parfois considérée comme la pierre angulaire de l’apprentissage automatique. Ci-dessous, vous pouvez voir à quoi ressemblerait une forêt aléatoire avec deux arbres :
La forêt aléatoire a presque les mêmes hyperparamètres qu’un arbre de décision ou un classificateur d’ensachage. Heureusement, il n’est pas nécessaire de combiner un arbre de décision avec un classificateur d’ensachage, car vous pouvez facilement utiliser la classe de classificateur de forêt aléatoire. Avec la forêt aléatoire, vous pouvez également gérer les tâches de régression en utilisant le régresseur de l’algorithme.
La forêt aléatoire ajoute un caractère aléatoire supplémentaire au modèle, tout en faisant pousser les arbres. Au lieu de rechercher la fonctionnalité la plus importante tout en divisant un nœud, il recherche la meilleure fonctionnalité parmi un sous-ensemble aléatoire de fonctionnalités. Il en résulte une grande diversité qui se traduit généralement par un meilleur modèle.
Par conséquent, dans la forêt aléatoire, seul un sous-ensemble aléatoire des caractéristiques est pris en compte par l’algorithme de division d’un nœud. Vous pouvez même rendre les arbres plus aléatoires en utilisant en plus des seuils aléatoires pour chaque caractéristique plutôt que de rechercher les meilleurs seuils possibles (comme le fait un arbre de décision normal).
Analogie de la vie réelle
Andrew veut décider où aller pendant les vacances d’un an, il demande donc des suggestions aux personnes qui le connaissent le mieux. Le premier ami qu’il cherche lui pose des questions sur les goûts et les aversions de ses voyages passés. Sur la base des réponses, il donnera quelques conseils à Andrew.
Il s’agit d’une approche d’algorithme d’arbre de décision typique. L’ami d’Andrew a créé des règles pour guider sa décision sur ce qu’il devrait recommander, en utilisant les réponses d’Andrew.
Par la suite, Andrew commence à demander de plus en plus à ses amis de le conseiller et ils lui posent à nouveau différentes questions dont ils peuvent se servir pour en tirer des recommandations. Enfin, Andrew choisit les endroits qui lui sont le plus recommandés, ce qui correspond à l’approche typique de l’algorithme de forêt aléatoire.
Importance de la fonctionnalité
Une autre grande qualité de l’algorithme de forêt aléatoire est qu’il est très facile de mesurer l’importance relative de chaque caractéristique sur la prédiction. Sklearn fournit un excellent outil pour cela qui mesure l’importance d’une fonctionnalité en examinant dans quelle mesure les nœuds d’arbre qui utilisent cette fonctionnalité réduisent les impuretés dans tous les arbres de la forêt. Il calcule ce score automatiquement pour chaque caractéristique après la formation et met à l’échelle les résultats de sorte que la somme de toutes les importances soit égale à un.
Si vous ne savez pas comment fonctionne un arbre de décision ou ce qu’est une feuille ou un nœud, voici une bonne description de Wikipedia : ‘ »Dans un arbre de décision, chaque nœud interne représente un « test » sur un attribut (par exemple, si un arrive à pile ou face), chaque branche représente le résultat du test et chaque nœud feuille représente une étiquette de classe (décision prise après le calcul de tous les attributs). Un nœud qui n’a pas d’enfant est une feuille.' »
En examinant l’importance des fonctionnalités, vous pouvez décider quelles fonctionnalités supprimer éventuellement car elles ne contribuent pas suffisamment (ou parfois rien du tout) au processus de prédiction. Ceci est important car une règle générale en apprentissage automatique est que plus vous avez de fonctionnalités, plus votre modèle risque de souffrir de surapprentissage et vice versa.
Vous trouverez ci-dessous un tableau et une visualisation montrant l’importance de 13 caractéristiques, que j’ai utilisées lors d’un projet de classification supervisé avec le célèbre jeu de données Titanic sur Kaggle. Vous pouvez trouver l’ensemble du projet ici.
Différence entre les arbres de décision et les forêts aléatoires
Bien que la forêt aléatoire soit une collection d’arbres de décision, il existe quelques différences.
Si vous saisissez un jeu de données d’entraînement avec des caractéristiques et des étiquettes dans un arbre de décision, il formulera un ensemble de règles qui seront utilisées pour faire les prédictions.
Par exemple, pour prédire si une personne va cliquer sur une publicité en ligne, vous pouvez collecter les publicités sur lesquelles la personne a cliqué dans le passé et certaines caractéristiques qui décrivent sa décision. Si vous placez les fonctionnalités et les étiquettes dans un arbre de décision, il générera des règles qui aideront à prédire si la publicité sera cliquée ou non. En comparaison, l’algorithme de forêt aléatoire sélectionne au hasard des observations et des caractéristiques pour construire plusieurs arbres de décision, puis fait la moyenne des résultats.
Une autre différence est que les arbres de décision « profonds » peuvent souffrir d’un surapprentissage. La plupart du temps, la forêt aléatoire empêche cela en créant des sous-ensembles aléatoires des caractéristiques et en créant des arbres plus petits à l’aide de ces sous-ensembles. Ensuite, il combine les sous-arbres. Il est important de noter que cela ne fonctionne pas à chaque fois et que cela ralentit également le calcul, en fonction du nombre d’arbres construits par la forêt aléatoire.
Hyperparamètres importants
Les hyperparamètres de la forêt aléatoire sont soit utilisés pour augmenter la puissance prédictive du modèle, soit pour rendre le modèle plus rapide. Examinons les hyperparamètres de la fonction de forêt aléatoire intégrée à sklearns.
1. Augmenter le pouvoir prédictif
Premièrement, il y a le n_estimateurs hyperparamètre, qui est juste le nombre d’arbres que l’algorithme construit avant de prendre le vote maximum ou de prendre les moyennes des prédictions. En général, un nombre plus élevé d’arbres augmente les performances et rend les prédictions plus stables, mais cela ralentit également le calcul.
Un autre hyperparamètre important est max_features, qui est le nombre maximum de fonctionnalités que la forêt aléatoire considère pour diviser un nœud. Sklearn propose plusieurs options, toutes décrites dans le Documentation.
Le dernier hyperparamètre important est min_sample_leaf. Cela détermine le nombre minimum de feuilles requises pour diviser un nœud interne.
2. Augmenter la vitesse du modèle
le n_emplois L’hyperparamètre indique au moteur combien de processeurs il est autorisé à utiliser. S’il a la valeur un, il ne peut utiliser qu’un seul processeur. Une valeur de « -1 » signifie qu’il n’y a pas de limite.
le état_aléatoire l’hyperparamètre rend la sortie du modèle réplicable. Le modèle produira toujours les mêmes résultats lorsqu’il a une valeur définie de random_state et s’il a reçu les mêmes hyperparamètres et les mêmes données d’apprentissage.
Enfin, il y a le oob_score (également appelé échantillonnage oob), qui est une méthode de validation croisée aléatoire des forêts. Dans cet échantillonnage, environ un tiers des données ne sont pas utilisées pour entraîner le modèle et peuvent être utilisées pour évaluer ses performances. Ces échantillons sont appelés échantillons hors sac. C’est très similaire à la méthode de validation croisée Leave-one-out-cross, mais presque aucune charge de calcul supplémentaire ne l’accompagne.
Avantages et inconvénients de l’algorithme de forêt aléatoire
L’un des plus grands avantages de la forêt aléatoire est sa polyvalence. Il peut être utilisé à la fois pour les tâches de régression et de classification, et il est également facile de visualiser l’importance relative qu’il attribue aux entités en entrée.
La forêt aléatoire est également un algorithme très pratique car les hyperparamètres par défaut qu’il utilise produisent souvent un bon résultat de prédiction. Comprendre les hyperparamètres est assez simple, et il n’y en a pas beaucoup non plus.
L’un des plus gros problèmes de l’apprentissage automatique est le surapprentissage, mais la plupart du temps, cela ne se produira pas grâce au classificateur de forêt aléatoire. S’il y a suffisamment d’arbres dans la forêt, le classificateur ne surajustera pas le modèle.
La principale limitation de la forêt aléatoire est qu’un grand nombre d’arbres peut rendre l’algorithme trop lent et inefficace pour les prédictions en temps réel. En général, ces algorithmes sont rapides à entraîner, mais assez lents à créer des prédictions une fois qu’ils sont entraînés. Une prédiction plus précise nécessite plus d’arbres, ce qui se traduit par un modèle plus lent. Dans la plupart des applications du monde réel, l’algorithme de forêt aléatoire est assez rapide, mais il peut certainement y avoir des situations où les performances d’exécution sont importantes et d’autres approches seraient préférables.
Et, bien sûr, la forêt aléatoire est un outil de modélisation prédictive et non un outil descriptif, ce qui signifie que si vous recherchez une description des relations dans vos données, d’autres approches seraient préférables.
Cas d’utilisation de forêt aléatoire
L’algorithme de forêt aléatoire est utilisé dans de nombreux domaines différents, comme la banque, la bourse, la médecine et le commerce électronique.
En finance, par exemple, il est utilisé pour détecter les clients plus susceptibles de rembourser leur dette à temps, ou d’utiliser les services d’une banque plus fréquemment. Dans ce domaine, il est également utilisé pour détecter les fraudeurs cherchant à arnaquer la banque. En trading, l’algorithme peut être utilisé pour déterminer le comportement futur d’une action.
Dans le domaine de la santé, il est utilisé pour identifier la bonne combinaison de composants en médecine et pour analyser les antécédents médicaux d’un patient afin d’identifier les maladies.
La forêt aléatoire est utilisée dans le commerce électronique pour déterminer si un client aimera réellement le produit ou non.
Résumé
La forêt aléatoire est un excellent algorithme pour s’entraîner tôt dans le processus de développement du modèle, pour voir comment il fonctionne. Sa simplicité fait de la construction d’une « mauvaise » forêt aléatoire une proposition difficile.
L’algorithme est également un excellent choix pour quiconque a besoin de développer un modèle rapidement. En plus de cela, il fournit un assez bon indicateur de l’importance qu’il accorde à vos fonctionnalités.
Les forêts aléatoires sont également très difficiles à battre en termes de performances. Bien sûr, vous pouvez probablement toujours trouver un modèle plus performant, comme un réseau de neurones par exemple, mais ceux-ci prennent généralement plus de temps à se développer, bien qu’ils puissent gérer de nombreux types de fonctionnalités différents, comme binaires, catégoriques et numériques.
Dans l’ensemble, la forêt aléatoire est un outil (principalement) rapide, simple et flexible, mais non sans certaines limitations.
Niklas Donges est un entrepreneur, un rédacteur technique et un expert en IA. Il a travaillé dans une équipe d’IA de SAP pendant un an et demi, après quoi il a fondé Solutions de Markov. La société basée à Berlin est spécialisée dans l’intelligence artificielle, l’apprentissage automatique et l’apprentissage en profondeur, offrant des solutions logicielles personnalisées et des programmes de conseil basés sur l’IA à diverses entreprises.
Source de l’article