1.3 Entraîner des modèles d'arbres avec Sklearn
Maintenant que la théorie a été comprise et appliquée, il est temps d’utiliser des bibliothèques optimisées pour créer des arbres de décision.
Dans cette partie, vous allez découvrir comment utiliser au mieux la fonction d’arbres de décision Sklearn.
Cette fonction possède un grand nombre de paramètres. Ne pas les comprendre et les renseigner au hasard donne souvent de très mauvais résultats.
Le but ici est de vous présenter les principaux paramètres à modifier pour entraîner les modèles d’arbre les plus performants possibles.
Seul les paramètres les plus importants seront expliqués ici. Si vous voulez plus de détails, n’hésitez pas à regarder les vidéos.
A/ Les paramètres
max_depth
La profondeur de l’arbre est un des paramètres les plus importants à définir.
Ce paramètre va déterminer la longueur maximum de votre arbre.
Je vous déconseille de laisser ce paramètre à None. Si le paramètre est à None, l’arbre va continuer de grandir jusqu’à son maximum. Plus l’arbre sera profond plus il sera complexe et plus il souffrira du sur-entraînement.
Plus l’arbre est profond, plus il sera performant sur le jeu d’entraînement mais plus vous dégraderez les performances sur le jeu de test.
Plus la profondeur est réduite, plus le modèle sera simple et généralisable. Cette meilleure généralisation augmentera les performances du modèle sur le jeu de test.
Attention, si vous réduisez trop la profondeur de l’arbre, vous dégraderez aussi les performances globales du modèle. Tester plusieurs profondeurs afin de maximiser vos performances sur votre jeu de tests.
min_samples_split
Le min sample split est le nombre minimal d’exemples que le modèle doit avoir pour pouvoir faire une nouvelle séparation.
Vous avez le choix de remplir ce paramètre avec un entier (int) ou un flottant (float).
Si vous utilisez un entier, le modèle le comprendra comme le nombre minimal d’exemples que le noeud doit avoir pour pouvoir créer une nouvelle séparation.
Si vous utiliser un flottant, le modèle le comprendra comme la fraction de données que le noeud doit avoir pour pouvoir créer une nouvelle séparation.
Plus ce paramètre est petit, plus le modèle sera performant sur le jeu d’entraînement, mais plus vous dégraderez les performances sur le jeu de test.
Plus ce paramètre est élevé, plus le modèle sera simple et généralisable. Cette meilleure généralisation augmentera les performances du modèle sur le jeu de test.
Attention, si vous augmentez trop ce paramètre, vous dégraderez aussi les performances globales du modèle. Tester plusieurs valeurs afin de maximiser vos performances sur votre jeu de tests.
min_samples_leaf
Le min_sample_leaf est le minimum d’exemples requis pour créer une feuille.
Seules les feuilles ayant ce minimum d’exemples seront conservées. Pour ce paramètre aussi vous pouvez spécifier un nombre entier ou un nombre flottant.
Plus ce paramètre est petit, plus le modèle sera performant sur le jeu d’entraînement, mais plus vous dégraderez les performances sur le jeu de test.
Plus ce paramètre est élevé, plus le modèle sera simple et généralisable. Cette meilleure généralisation augmentera les performances du modèle sur le jeu de test.
Attention, si vous augmentez trop ce paramètre, vous dégraderez aussi les performances globales du modèle. Tester plusieurs valeurs afin de maximiser vos performances sur votre jeu de tests.
random_state
Ce paramètre permet d’initialiser une seed. C’est-à-dire que les nombres générés aléatoirement seront toujours les mêmes. C’est intéressant à utiliser durant les tests où l’on voudra tomber sur les mêmes résultats et être sûr que les changements de performances sont dû au changement des paramètres et non à une initialisation différente.
ccp_alpha
Ce paramètre initialise le alpha de l’algorithme du minimal Cost-Complexity Pruning (CCP).
Le CCP est un algorithme qui permet de supprimer des parties de l’arbre qui ajoutent de la complexité au modèle sans apporter beaucoup de valeur supplémentaire. Le but de cette suppression est de rendre l’algorithme plus simple et plus généralisable tout en conservant une performance acceptable.
Le paramètre alpha est un nombre positif. Plus le paramètre est élevé plus le modèle sera simplifié.
Attention si alpha est trop élevé, votre modèle deviendra trop simple et cela dégradera la performance de votre modèle.
B/ Les attributs
feature_importances
L’attribut feature_importances permet de retourner l’importance des variables dans votre modèle. L’importance de chaque variable peut être facilement évaluée lorsque votre modèle est simple. Mais plus votre modèle sera complexe, plus cet attribut vous sera utile.
tree
L’attribut tree_ retourne l’objet de l’arbre créé pendant l’entraînement. Vous pouvez vous en servir pour étudier l’arbre plus en profondeur et en retirer les règles de décisions.