Table of Contents
Lors de la construction d'un pipeline d'apprentissage automatique pour la classification ou la régression, l'un des premiers choix que vous rencontrez est l'algorithme à utiliser. Les arbres de décision et les forêts aléatoires sont deux des modèles les plus largement appliqués, chacun ayant une longue expérience de succès dans les industries, de la finance aux soins de santé.
Qu'est-ce qu'un arbre de décision?
Un arbre de décision est un algorithme d'apprentissage supervisé qui modélise les décisions et leurs conséquences possibles en tant que structure semblable à un arbre. Il divise récursivement l'ensemble de données en sous-ensembles basés sur les valeurs des caractéristiques d'entrée, chaque noeud interne représentant un test sur une caractéristique, chaque branche représentant le résultat du test, et chaque noeud foliaire tenant une étiquette de classe prédite (classification) ou une valeur continue (régression).
Les arbres décisionnels sont pris en considération pour leur transparence. Vous pouvez littéralement tracer un chemin de la racine à une feuille pour comprendre exactement pourquoi une prédiction particulière a été faite. Cette interprétabilité est inestimable dans des domaines où la conformité réglementaire ou la confiance des intervenants exige un raisonnement clair, comme la notation de crédit ou le diagnostic médical. Cependant, la même flexibilité qui les rend interprétables les rend également sujettes à des variances élevées – de petits changements dans les données de formation peuvent produire des arbres très différents, conduisant à des surajustements.
Comment les arbres de décision prennent les décisions
Le processus de construction d'arbres consiste à sélectionner la meilleure caractéristique à diviser à chaque nœud. Les critères communs pour choisir les fractionnements incluent l'impureté gini (pour la classification) et l'entropie[ (le gain d'information), tandis que les arbres de régression utilisent généralement la réduction moyenne des erreurs carrées. L'algorithme évalue chaque point de fractionnement possible pour chaque caractéristique et choisit celui qui maximise la réduction de l'impureté.
Par exemple, dans une tâche de classification prédictive de la courge du client, le noeud racine peut se diviser sur la longueur du contrat ≤ 12 mois. Si cette séparation sépare les churners de non-couronnes mieux que toute autre caractéristique, elle devient la première décision. Le processus se répète récursivement sur chaque noeud enfant jusqu'à ce qu'une condition d'arrêt soit remplie – par exemple atteindre une profondeur maximale, avoir moins d'un nombre minimum d'échantillons par feuille, ou aucune réduction supplémentaire d'impureté.
Hyperparamètres communs
Les implémentations pratiques d'arbres de décision, comme celles de scikit-learn, exposent plusieurs hyperparamètres qui contrôlent la croissance des arbres et réduisent les surajustements :
- max profondeur – Limite la profondeur de l'arbre. Les arbres peu profonds sont encombrés; les arbres profonds sont encombrés.
- min samples split – Le nombre minimum d'échantillons requis pour diviser un noeud interne. Des valeurs plus élevées empêchent les fractions sur de petits groupes.
- min samples leaf – Le nombre minimum d'échantillons autorisés dans un noeud de feuille. Lisse le modèle et aide à la généralisation.
- max features – Le nombre de fonctionnalités à considérer lors de la recherche de la meilleure division. Réduire cela ajoute le hasard et peut améliorer les performances.
- critère[ – La fonction de mesure de la qualité fractionnée (p. ex., -gini ou -entropie pour la classification, -mse-de-la-régression).
L'accord de ces paramètres est essentiel pour équilibrer biais et variance. Sans contraintes, un arbre de décision peut parfaitement mémoriser les données d'entraînement, ce qui conduit à de mauvaises performances de l'ensemble de tests.
Forces et faiblesses des arbres de décision
Résistances:
- Facile à comprendre et à visualiser, même pour les non-experts.
- Nécessite peu de prétraitement des données (pas besoin de variables de graduation ou de mannequin).
- Gérer naturellement les données numériques et les données catégoriques.
- Peut saisir des relations non linéaires sans ingénierie de fonctionnalités.
- Interprétable – vous pouvez expliquer chaque prédiction avec un ensemble de règles.
Faiblessses:
- variance élevée : de petites modifications de données peuvent modifier radicalement la structure de l'arbre.
- Prone à sur-ajustement, surtout sur les données bruyantes ou à haute dimension.
- La précision prédictive est généralement plus faible que celle des méthodes d'ensemble.
- Instabilité : une scission différente à un nœud supérieur peut s'accumuler en un arbre complètement différent.
- Peut créer des arbres biaisés si certaines classes dominent (déséquilibre de classe).
Qu'est-ce qu'une forêt aléatoire?
Une forêt aléatoire est une méthode d'apprentissage d'ensemble qui construit une collection d'arbres de décision et combine leurs extrants pour améliorer la précision et la robustesse. Elle repose sur deux techniques de randomisation clés : baguage (aggrégation de bootstrap) et méthode de subespace aléatoire. Chaque arbre est formé sur un échantillon de bootstrap différent (échantillon aléatoire avec remplacement) des données originales, et à chaque fraction, seul un sous-ensemble aléatoire de caractéristiques est pris en considération.
La puissance des forêts aléatoires vient de la loi des grands nombres : comme vous ajoutez plus d'arbres, l'erreur de généralisation converge à une limite. Elles sont remarquablement robustes à sur-adapter et peuvent gérer de grands ensembles de données avec une dimensionalité élevée, des valeurs manquantes et des valeurs aberrantes. Cependant, cette nature d'ensemble sacrifie l'interprétation directe d'un arbre unique. Vous pouvez encore extraire des scores d'importance, mais vous ne pouvez pas tracer un seul chemin de décision pour une prédiction spécifique.
La mécanique des forêts aléatoires
La formation d'une forêt aléatoire comporte trois étapes :
- Echantillonnage de bootstrap: Créer n estimateurs des échantillons de bootstrap de l'ensemble d'entraînement. Chaque échantillon a la même taille que l'original, mais contient des lignes dupliquées tout en excluant environ 37 % des données (échantillons hors sac).
- Édifice d'arbres: Pour chaque échantillon de bootstrap, faire pousser un arbre de décision sans élagage. À chaque noeud, sélectionner max features des caractéristiques aléatoires (communément squrt(p) pour la classification, p/3 pour la régression) et choisir la meilleure division parmi eux.
- Agrégation: Pour la classification, prendre le vote majoritaire sur les arbres. Pour la régression, la moyenne des sorties.
L'erreur hors sac (OOB)[ est une estimation impartiale de l'erreur de généralisation calculée à partir des échantillons non utilisés pour la formation de chaque arbre. Cela élimine la nécessité d'un ensemble de validation distinct dans de nombreux cas.
Tuning hyperparamétrique
Les hyperparamètres clés dans les forêts aléatoires (mise en œuvre de l'apprentissage par scikit) comprennent :
- n estimateurs – Nombre d'arbres. D'autres arbres améliorent généralement les performances jusqu'à un point, avec des rendements décroissants.
- max features – Taille du sous-ensemble de fonctionnalités aléatoires. Les valeurs inférieures augmentent le caractère aléatoire mais peuvent aider avec les fonctionnalités bruyantes.
- max profondeur – Souvent laissé illimité (ou grand) parce que le marquage réduit déjà le surajustement.
- min samples leaf – Peut être réglé plus haut pour lisser le modèle, mais généralement laissé petit.
- bootstrap – Drapeau booléen pour permettre/désactiver l'échantillonnage (désactivation le transforme en une forêt de - - des arbres déterministes, moins communs).
Les forêts aléatoires sont relativement faciles à régler car elles sont moins sensibles aux hyperparamètres que les arbres simples. Un point de départ raisonnable est et , puis s'ajuste en fonction d'une erreur OOB ou d'une validation croisée.
Quand utiliser la forêt aléatoire
Considérez les forêts aléatoires lorsque:
- La précision prédictive est le but principal et vous avez suffisamment de ressources de calcul.
- Votre ensemble de données est grand, haute dimension, ou contient des interactions et des non-linéarités.
- Vous avez besoin de classements intégrés d'importance de la fonctionnalité pour comprendre quelles variables conduisent les prédictions.
- Des données manquantes sont présentes (les forêts aléatoires peuvent gérer les valeurs manquantes par imputation basée sur la proximité, bien qu'une imputation explicite soit recommandée).
- Vous voulez un modèle qui généralise bien sans réglage hyperparamétrique étendu.
Comparaison des arbres de décision et des forêts aléatoires
La comparaison suivante met en lumière les différences critiques entre les deux algorithmes dans plusieurs dimensions pertinentes aux décisions de projet.
Interprétation
Arbre de décision: Entièrement interprétable. Vous pouvez visualiser l'arbre et dériver des règles explicites. Random forest:[ Mauvaise interprétabilité dans son ensemble. Vous pouvez inspecter les arbres individuels, mais la décision de l'ensemble est un agrégat.
Précision et généralisation
Les forêts aléatoires surpassent systématiquement les arbres de décision uniques en précision sur la plupart des ensembles de données du monde réel. L'ensemble réduit la variance, ce qui conduit à une meilleure généralisation.
Surajustement et écarts
Les arbres de décision sont des modèles à haute variation : un petit changement dans les données d'entraînement peut produire un arbre très différent. Les forêts aléatoires réduisent la variance en faisant la moyenne de nombreux arbres liés à la décoration, les rendant beaucoup plus robustes.
Coût informatique
La formation d'un seul arbre décisionnel est rapide. Les forêts aléatoires nécessitent une formation n] des arbres, chacun sur un échantillon de bootstrap, qui peut être calculablement coûteux. Cependant, la formation d'arbres est parallélisante, et le matériel moderne rend les forêts aléatoires faisables même pour les grands ensembles de données.
Traitement des données manquantes
Les arbres de décision peuvent gérer les valeurs manquantes dans une certaine mesure en utilisant des fractionnements de substitution (scikit-learn ne met pas en œuvre ce natif; de nombreuses implémentations traitent les valeurs manquantes comme une catégorie distincte).Les forêts aléatoires peuvent également gérer les données manquantes, mais l'imputation est généralement recommandée.
Importance de la caractéristique
Les deux modèles peuvent fournir des scores d'importance des caractéristiques. Pour les arbres de décision, l'importance est basée sur la réduction totale des impuretés de chaque caractéristique. Les forêts aléatoires fournissent une mesure plus stable et fiable en moyenne sur de nombreux arbres.
Stabilité et robustesse
Les arbres de décision sont instables – de petites perturbations dans les données conduisent à des scissions différentes. Les forêts aléatoires sont stables; les prédictions de l'ensemble sont insensibles au hasard dans le processus de formation.
Échelle
Les arbres de décision s'échellent mal à de très grands ensembles de données si la culture est profonde (l'utilisation de la mémoire augmente). Les forêts aléatoires s'échellent bien grâce à l'entraînement parallèle, mais la mémoire peut devenir un goulot d'étranglement lors du stockage de nombreux arbres.
Quels sont les éléments à utiliser?
Le choix entre un arbre de décision et une forêt aléatoire dépend de vos priorités de projet. Utilisez les lignes directrices suivantes:
- Si l'interprétation n'est pas négociable:[ Commencez par un arbre de décision. Assurez-vous de le tailler (set max profondeur, min samples leaf) pour éviter les surajustements. Si la précision est encore insuffisante, considérez une forêt aléatoire avec analyse d'importance de caractéristiques pour expliquer le modèle approximativement.
- Si la précision est primordiale:[ La forêt aléatoire est presque toujours meilleure. Elle surperformera un arbre unique sur des données complexes.
- Si les ressources de calcul sont limitées:[ Un arbre de décision unique est léger. Vous pouvez également essayer un arbre peu profond comme base. Si la forêt aléatoire est trop lente, envisager des méthodes de stimulation du gradient (bien qu'elles soient également intensives en calcul).
- Si l'ensemble de données est très petit (p. ex. moins de quelques centaines d'échantillons):[ Un arbre de décision avec une taille soignée peut être suffisant. Les forêts aléatoires peuvent encore fonctionner mais pourraient sur-adapter si les échantillons de bootstrap sont trop semblables.
- Si vous devez gérer des types de données mixtes et des valeurs manquantes: Les deux peuvent faire face, mais les arbres de décision avec des fractions de substitution (par exemple, R=S rpart) sont plus simples pour la disparition.
- Si vous êtes prototypage et besoin d'itération rapide: Utilisez un arbre de décision d'abord. Il s'entraîne instantanément et vous donne une base. Puis, déplacez-vous dans la forêt aléatoire pour le modèle de production finale.
Conseils pratiques pour la mise en œuvre
Voici quelques recommandations pratiques pour utiliser ces algorithmes dans votre flux de travail de la science des données (exemples d'apprentissages ci-dessous).
- Commencez avec des scikits : Réglez ou pour obtenir un arbre interprétable. Utilisez pour visualiser. Évaluer avec la validation croisée pour détecter la suradéquation.
- Pour les forêts aléatoires, utiliser avec comme point de départ. Surveiller la note OOB (). Augmenter jusqu'à ce que l'erreur OOB se stabilise.
- Ingénierie des caractéristiques: Les deux modèles gèrent bien les caractéristiques brutes, mais les forêts aléatoires bénéficient de fonctionnalités informatives.
- Classes déséquilibrées à la main: Utiliser ou dans les forêts aléatoires. Les arbres de décision peuvent également utiliser des échantillons pondérés.
- Tuyautage du paramètre d'hyperparamètre[: Pour les forêts aléatoires, concentrez-vous sur et . Utilisez la recherche aléatoire avec validation croisée pour trouver de bonnes valeurs efficacement.
- compromis d'interprétabilité[: Si vous avez besoin de précision et d'explication, utilisez la forêt aléatoire pour les prédictions et adaptez un arbre de décision peu profond comme modèle de substitution pour en rapprocher les décisions (une forme de distillation du modèle).
Conclusion
Les arbres de décision et les forêts aléatoires sont des outils puissants, mais ils répondent à des besoins différents. Les arbres de décision offrent une transparence et une simplicité inégalées, ce qui les rend idéales pour les analyses exploratoires et les scénarios où la compréhension de chaque prédiction est critique. Les forêts aléatoires sacrifient une certaine interprétabilité en échange d'une précision, d'une robustesse et d'une résistance nettement plus élevées à l'excès.
Pour plus de détails, consulter la documentation officielle sur les arbres de décision et des forêts de ranch[, ainsi que les documents de base de Breiman des forêts de random[, 2001) et de la Wikipedia entry on decision tree learning.