Arbres de décision de la racine
Comment utilisons-nous les distributions pour identifier les divisions candidates? Lorsque nous examinons les variables catégorielles, nous voulons sélectionner une catégorie qui a une distribution nettement différente des autres. Par exemple, nous pouvons voir que les hommes et les femmes ont survécu à des taux différents. Pour les variables quantitatives, nous recherchons une région où une ligne est beaucoup plus élevée que l’autre. Âge <10 semble correspondre à ce projet de loi, tout comme les personnes voyageant seules (Taille de la famille <1).
Mais maintenant que nous avons plusieurs divisions potentielles, comment évaluer si elles sont bonnes? Comment comparer plusieurs options?
Vous vous souvenez de l’objectif des «nœuds enfants purs» dont nous avons discuté précédemment? Nous pouvons utiliser ce concept pour construire une mesure quantitative de la «qualité» d’une scission.
Nous allons définir entropie, une mesure de la pureté d’un nœud, et gain d’information, une mesure de la façon dont une scission améliore la entropie d’un nœud parent à ses enfants³. Vous trouverez ci-dessous les définitions et les formules. Si cela est un peu déroutant, n’hésitez pas à passer au visuel ci-dessous qui présente les métriques en contexte.
Entropie
- Une mesure de la «pureté» d’un nœud.
- Sur la base du rapport des deux classes, par ex. survivants aux non-survivants.
- Les plages de 0 à 1. 0 signifie un nœud pur (tous les survivants ou vice versa) et 1 signifie une répartition 50/50. Notez qu’une entropie de 1 correspond au «pire scénario» où nous sommes le moins en mesure de faire une supposition éclairée.
Gain d’informations
- Une mesure de combien une division diminue l’entropie (une plus grande diminution est meilleure, car 0 est l’objectif).
- Égal à l’entropie du nœud parent moins la moyenne pondérée des entropies des nœuds enfants.
- L’algorithme qui construit des arbres de décision trouve la division à chaque nœud ayant le gain d’informations le plus élevé.
Visualisation de l’entropie des nœuds parents et enfants
Nous pouvons obtenir une meilleure intuition sur la façon de choisir les meilleures divisions en superposant les calculs sur la structure de l’arbre de décision. Le visuel ci-dessous évalue le gain d’informations de la division Classe = troisième classe.
Les carrés orange et bleu indiquent la répartition des survivants / disparus à chaque nœud. Pour chaque nœud, nous avons également l’entropie, le taux de survie et le nombre de personnes. Ensemble, ces faits racontent une histoire sur l’ensemble de données ET nous permettent d’évaluer la qualité de cette répartition:
- Notre ensemble de données comprend 891 personnes, dont 38% ont survécu. Parce qu’une division 38/62 est assez proche de 50/50, notre entropie est presque 1.
- 491 passagers (55%) étaient en 3e classe. Ces gens n’avaient qu’un taux de survie de 24%, bien pire que dans l’ensemble. Pour ce sous-ensemble, l’entropie tombe donc à 0,8.
- Dans la branche de droite, nous avons des passagers de 1re et 2e classe, qui étaient plus susceptibles de survivre. Ce sous-ensemble avait un taux de survie de 56%. Cependant, même si nous avons appris quelque chose d’important sur ce groupe, l’entropie ici est en fait un peu plus élevée que dans l’ensemble de données global. Un taux de survie de 56% est encore plus proche de 50/50 que le taux de survie de 40% de la population – notez que la direction n’a pas d’importance pour déterminer l’entropie.
- Parce qu’un côté de notre division avait une entropie significativement plus faible, et l’autre est resté essentiellement le même, et le sous-ensemble à faible entropie est plus grand, cette division réduit effectivement l’entropie globale. Cela se reflète dans la formule de gain d’informations en bas.
- Le gain d’informations pour cette répartition est de 0,076. Notez que ce nombre a une signification en tant que quantité absolue (par rapport à l’entropie globale de la variable cible), mais est plus utile par rapport à d’autres divisions.
Construire un arbre de décision à la main
Armé du concept de gain d’information, nous pouvons maintenant calculer la valeur relative d’une division individuelle. Un algorithme de construction d’arbres de décision peut évaluer rapidement de nombreuses divisions potentielles pour en trouver la meilleure. Pour ce faire manuellement, nous avons besoin d’un outil pour nous aider.
Cette visualisation interactive nous permet d’essayer de nombreuses divisions potentielles. Les graphiques de distribution des fonctionnalités antérieurs ont été augmentés avec la possibilité de sélectionner une division, en cliquant sur une catégorie dans les graphiques à barres ou simplement en faisant un panoramique sur les fonctionnalités quantitatives. Lorsqu’un fractionnement est sélectionné, les sous-graphiques ci-dessous répertorient le gain d’informations et l’entropie des sous-ensembles gauche et droit.
Notez que les chiffres d’entropie et de gain d’informations ont été multipliés par 100 pour plus de lisibilité. Sinon, l’exemple ci-dessus peut être recréé exactement.
Prenez le temps de jouer avec la visualisation interactive et de déterminer la meilleure répartition pour le premier nœud.
Création de la couche suivante d’un arbre de décision
Il y a clairement un gagnant dans le gain d’informations ici: Homme / Femme est de loin le meilleur partage. Cependant, étant donné que nous voulons un modèle multi-variables plus complexe, nous pouvons répéter ce processus à gauche et à droite pour déterminer la meilleure répartition pour chacun de ces nœuds. Nous construisons maintenant un modèle comme celui-ci:
Vous pouvez utiliser la visualisation interactive avec le sous-ensemble féminin iciet le sous-ensemble masculin ici. Cette version ajoute un graphique linéaire montrant le gain d’informations pour toutes les divisions possibles. Recherchez les scénarios intéressants où plusieurs divisions ont des valeurs de gain d’informations similaires.
Trouvez les meilleures répartitions pour les sous-ensembles masculins et féminins en utilisant le vis.
Comparaison de notre arbre fait à la main avec la version de Scikit-Learn
Nous pouvons maintenant comparer ce modèle simple et fait à la main avec la version produite par une implémentation d’un algorithme d’arbre de décision, tel que celui de scikit-learn. Le code suivant effectue le nettoyage de base des données et l’ingénierie des fonctionnalités, puis construit le modèle et génère sa structure.
Ce modèle a un gain d’information total (du premier nœud aux feuilles) de 0,312 et une précision de 0,796. Avez-vous obtenu les mêmes scissions?
Conclusion
Nous considérons parfois les modèles d’apprentissage automatique comme un type d’intelligence fondamentalement différent du nôtre. Cependant, dans ce cas, au moins, le processus de construction de modèles est enraciné dans le même type de solutions de bon sens que nous pourrions apporter à un problème. Les arbres de décision sont construits en utilisant une maximisation gourmande itérative simple de entropie, une quantité pour laquelle nous avons une intuition.
De plus, se familiariser avec l’algorithme de construction d’arbres nous aide en tant que scientifiques des données à comprendre et à apprécier les compromis inhérents aux modèles que nous pouvons faire avec quelques lignes de code.
Dans mon prochain article sur les arbres de décision, nous nous appuierons sur ces concepts pour analyser les structures d’arbres de décision plus complexes et comprendre comment les arbres peuvent overfit à un ensemble de formation. Comprendre les caractéristiques structurelles de bons arbres de décision et placer les différents types de structures dans une taxonomie est une compétence très utile pour un scientifique des données.
Notes de bas de page
¹Les termes alternatifs pour une scission comprennent règle ou nœud de test. j’utilise Divisé ici pour attirer l’attention sur la façon dont le prédicat divise l’ensemble de données en sous-ensembles.
²L’ensemble de données comprend les 891 passagers du sous-ensemble «train» Kaggle. Les données manquantes pour la colonne Âge ont été imputées. Les détails sont disponibles dans le code source.
³Vous verrez souvent impureté gini comme critère alternatif pour diviser les nœuds. Par exemple, scikit-learn utilise cela comme critère par défaut, avec la possibilité de passer au gain d’informations. Bien que ces calculs soient légèrement différents, les considérations conceptuelles sont les mêmes et, dans la pratique, peu importe laquelle est utilisée.