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
Oefeninstructies
- Gebruik de eigenschap
feature_importances_van ons random-forestmodel (rfr) om de feature-importances op te halen in de variabeleimportances. - Gebruik
argsortvan numpy om de indexen van de feature-importances van groot naar klein te krijgen, en sla de gesorteerde indexen op in de variabelesorted_index. - Stel de xtick-labels in op de featurenamen in de variabele
labels, met behulp van de lijstsorted_index.feature_namesmoet worden omgezet naar een numpy-array zodat we die kunnen indexeren met de lijstsorted_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()