Importances des variables avec le gradient boosting
Comme pour les random forests, on peut extraire les importances des variables à partir des modèles de gradient boosting pour comprendre quelles caractéristiques prédisent le mieux. Il est parfois utile d'essayer différents modèles à arbres et de comparer leurs importances de variables. Cela permet d'atténuer d'éventuelles particularités propres à un modèle donné.
Les importances des variables sont stockées dans un tableau numpy via la propriété .feature_importances_ du modèle de gradient boosting. Nous devons obtenir les indices triés des importances avec np.argsort() afin de produire un graphique lisible. Nous voulons les caractéristiques de la plus grande à la plus petite importance, donc nous utiliserons l'indexation Python pour inverser l'ordre trié, par exemple feat_importances[::-1].
Cet exercice fait partie du cours
<cours>Machine Learning pour la finance en Python</cours>Instructions de l’exercice
- Inversez la variable
sorted_indexpour aller du plus grand au plus petit à l'aide de l'indexation Python. - Créez la liste triée des libellés de caractéristiques
labelsen convertissantfeature_namesen tableau numpy puis en l'indexant avecsorted_index. - Créez un diagramme en barres des xticks, avec
feature_importancesindexé par la variablesorted_index, etlabelscomme étiquettes des xticks.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Extract feature importances from the fitted gradient boosting model
feature_importances = gbr.feature_importances_
# Get the indices of the largest to smallest feature importances
sorted_index = np.argsort(feature_importances)[::____]
x = range(features.shape[1])
# Create tick labels
labels = np.array(feature_names)[____]
plt.bar(____, feature_importances[____], tick_label=____)
# Set the tick lables to be the feature names, according to the sorted feature_idx
plt.xticks(rotation=90)
plt.show()