Aan de slagBegin gratis

Feature importances met gradient boosting

Net als bij random forests kun je feature importances uit gradient boosting-modellen halen om te zien welke features de beste voorspellers zijn. Het is soms handig om verschillende boomgebaseerde modellen te proberen en naar de feature importances van allemaal te kijken. Dat helpt eventuele eigenaardigheden van één specifiek model uit te middelen.

De feature importances zijn opgeslagen als een numpy-array in de eigenschap .feature_importances_ van het gradient boosting-model. We moeten de gesorteerde indexen van de feature importances ophalen met np.argsort() om een duidelijke plot te maken. We willen de features van groot naar klein, dus gebruiken we Python-indexering om de gesorteerde importances om te keren, zoals feat_importances[::-1].

Deze oefening maakt deel uit van de cursus

Machine Learning voor finance in Python

Bekijk cursus

Oefeninstructies

  • Keer de variabele sorted_index om, van groot naar klein, met Python-indexering.
  • Maak de gesorteerde lijst met featurelabels als labels door feature_names om te zetten naar een numpy-array en te indexeren met sorted_index.
  • Maak een staafdiagram met de xticks, en feature_importances geïndexeerd met de variabele sorted_index, en labels als de xtick-labels.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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()
Code bewerken en uitvoeren