Importances des caractéristiques avec le gradient boosting
Comme pour les forêts aléatoires (random forests), on peut extraire les importances des caractéristiques à partir des modèles de gradient boosting pour déterminer quelles variables sont les meilleurs prédicteurs. Il est souvent utile d'essayer différents modèles à arbres et de comparer leurs importances des caractéristiques. Cela aide à atténuer les particularités pouvant provenir d'un seul modèle.
Les importances des caractéristiques sont stockées sous forme de tableau numpy dans la propriété .feature_importances_ du modèle de gradient boosting. Nous devrons récupérer les indices triés des importances à l'aide de np.argsort() pour produire un joli graphique. Nous voulons les caractéristiques de la plus importante à la moins importante, donc nous utiliserons l'indexation Python pour inverser l'ordre trié, comme feat_importances[::-1].
Cette activité fait partie du cours
Machine Learning pour la finance en Python
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 étiquettes de caractéristiques
labelsen convertissantfeature_namesen tableau numpy, puis en l'indexant avecsorted_index. - Créez un diagramme à barres avec les xticks,
feature_importancesindexées 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()