Formation des modèles d'arbres
Let's go !

4.3 Entraîner des modèles de Gradient Boosting Tree avec Sklearn

Dans cette partie, vous allez découvrir comment utiliser aux mieux la fonction Gradient Boosting Tree de 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

A/ Les paramètres

n_estimator

Le paramètre n_estimators contrôle le nombre d’arbres à entraîner pour notre ensemble.
 

learning_rate

Le taux d’apprentissage ou learning_rate réduit la contribution de chaque modèle. Plus la valeur du learning_rate est proche de 1 plus la modèle va tendre vers le sur-entraînement. Plus la valeur est proche de 0 plus le modèle va tendre vers le sous-entraînement.

Il existe un compromis entre learning_rate et n_estimateurs. Plus le paramètre learning_rate est faible, plus il faudra d’arbres pour obtenir des performances acceptables.

max_depth

La profondeur de l’arbre est un des paramètres les plus importants à définir.

Ce paramètre va déterminer la profondeur maximum de l’arbre. Vous pouvez aussi spécifier None pour ce paramètre, dans ce cas durant l’entraînement l’arbre va s’approfondir jusqu’à obtenir les feuilles les plus pures possible.

Je ne vous conseille pas de laisser ce paramètre à None, car plus votre arbre sera profond plus il sera complexe et plus il souffrira du sur-entraînement.

Plus la profondeur diminue, 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.

Pour un random forest on préfère travailler avec des « Weak Learner » un ensemble de modèles peu performants et gagner de la performance en alliant leurs forces.

min_sample_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 utilisez 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 sera grand plus votre arbre sera simple et plus il sera généralisable.

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.

B/ Les attributs

n_estimator

Cet attribut permet d’avoir accès à chaque modèle créé.
 

feature_importances

L’attribut feature_importances retourne l‘importance des variables du jeu de données dans la construction des arbres de la forêt.