2.3 Entraîner des modèles de Random Forest avec Sklearn
Maintenant que vous êtes des pros de l’algorithme de Random Forest, il est temps d’apprendre à se servir de la fonction proposée par 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 de random forest les plus performants possibles.
Seul les paramètres les plus intéressant à challenger seront expliqués ici, si vous voulez plus de détails n’hésitez pas à regarder les vidéos.
A/ Les paramètres
n_estimators
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. 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 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.
Pour un random forest on préfère travailler avec des « Weak Learner » un ensemble de modèle peu performant et ainsi 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 performance sont dû au changement des paramètres et non à une initialisation différente.
B/ Les attributs
base_estimator
L’attribut base_estimator retourne les paramètres d’entraînement de notre algorithme de random forest.
estimators
L’attribut estimators retourne les paramètres d’entraînement de chacun des arbres de notre forêt.
feature_importance
L’attribut feature_importances retourne l’importance des variables du jeu de données dans la construction des arbres de la forêt.