Importanza delle feature con la random forest
Un aspetto utile dei metodi basati su alberi è la possibilità di estrarre l'importanza delle feature. È un modo quantitativo per misurare quanto ciascuna feature contribuisce alle nostre previsioni. Può aiutarci a concentrarci sulle feature migliori, magari migliorandole o ottimizzandole, e può anche aiutarci a eliminare feature inutili che potrebbero appesantire il modello.
I modelli ad albero in sklearn hanno una proprietà .feature_importances_, accessibile dopo l'addestramento del modello. Questa contiene i punteggi di importanza delle feature. Per creare un bar plot ordinato delle importanze (dalla più alla meno importante), dobbiamo ottenere gli indici delle importanze ordinate usando np.argsort().
Questo esercizio fa parte del corso
Machine Learning per la finanza in Python
Istruzioni dell'esercizio
- Usa la proprietà
feature_importances_del nostro modello di random forest (rfr) per estrarre le importanze delle feature nella variabileimportances. - Usa
argsortdi NumPy per ottenere gli indici delle importanze dalla più grande alla più piccola e salva gli indici ordinati nella variabilesorted_index. - Imposta le etichette degli xtick con i nomi delle feature nella variabile
labels, usando la listasorted_index.feature_namesdeve essere convertita in un array NumPy così da poterla indicizzare con la listasorted_index.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Get feature importances from our random forest model
importances = rfr.____
# Get the index of importances from greatest importance to least
sorted_index = ____(importances)[::-1]
x = range(len(importances))
# Create tick labels
labels = np.array(____)[____]
plt.bar(x, importances[sorted_index], tick_label=labels)
# Rotate tick labels to vertical
plt.xticks(rotation=90)
plt.show()