Inizia subitoInizia gratis

Importanza delle feature con gradient boosting

Come per i random forest, possiamo estrarre l'importanza delle feature dai modelli di gradient boosting per capire quali sono i predittori migliori. A volte conviene provare diversi modelli basati su alberi e confrontare le importanze delle feature di ciascuno. Questo aiuta a mediare eventuali particolarità di un singolo modello.

Le importanze delle feature sono memorizzate come array numpy nella proprietà .feature_importances_ del modello di gradient boosting. Per creare un bel grafico, ci serviranno gli indici ordinati delle importanze usando np.argsort(). Vogliamo le feature dalla più grande alla più piccola, quindi useremo l'indicizzazione di Python per invertire le importanze ordinate, ad esempio feat_importances[::-1].

Questo esercizio fa parte del corso

Machine Learning per la finanza in Python

Visualizza corso

Istruzioni dell'esercizio

  • Inverti la variabile sorted_index per andare dal valore più grande al più piccolo usando l'indicizzazione di Python.
  • Crea l'elenco ordinato delle etichette delle feature come labels convertendo feature_names in un array numpy e indicizzandolo con sorted_index.
  • Crea un grafico a barre usando gli xticks e feature_importances indicizzate con la variabile sorted_index, e usa labels come etichette degli xtick.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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()
Modifica ed esegui il codice