Aan de slagBegin gratis

Feature-importances van random forest

Een handig aspect van boomgebaseerde methoden is dat je feature-importances kunt uitlezen. Dit is een kwantitatieve manier om te meten hoeveel elke feature bijdraagt aan onze voorspellingen. Het helpt je te focussen op je beste features, die je mogelijk kunt verbeteren of tunen, en het helpt ook om nutteloze features te verwijderen die je model alleen maar vervuilen.

Boommodellen in sklearn hebben na het fitten een .feature_importances_-eigenschap. Daarin staan de scores voor de feature-importances. We moeten de indexen van de gesorteerde feature-importances ophalen met np.argsort() om een nette staafgrafiek van feature-importances te maken (gesorteerd van grootste naar kleinste belangrijkheid).

Deze oefening maakt deel uit van de cursus

Machine Learning voor finance in Python

Bekijk cursus

Oefeninstructies

  • Gebruik de eigenschap feature_importances_ van ons random-forestmodel (rfr) om de feature-importances op te halen in de variabele importances.
  • Gebruik argsort van numpy om de indexen van de feature-importances van groot naar klein te krijgen, en sla de gesorteerde indexen op in de variabele sorted_index.
  • Stel de xtick-labels in op de featurenamen in de variabele labels, met behulp van de lijst sorted_index. feature_names moet worden omgezet naar een numpy-array zodat we die kunnen indexeren met de lijst sorted_index.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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