Feature-Importances im Random Forest
Ein nützlicher Aspekt baumbasierter Methoden ist, dass sich Feature-Importances extrahieren lassen. Das ist eine quantitative Möglichkeit zu messen, wie stark jedes Feature zu unseren Vorhersagen beiträgt. So können wir uns auf unsere besten Features konzentrieren, sie gegebenenfalls verbessern oder feinjustieren und überflüssige Features entfernen, die das Modell nur verstopfen.
Baummodelle in sklearn haben nach dem Fitten die Eigenschaft .feature_importances_. Darin werden die Wichtigkeitswerte der Features gespeichert. Wir benötigen die Indizes der sortierten Feature-Importances mittels np.argsort(), um ein übersichtliches Balkendiagramm der Feature-Importances zu erstellen (absteigend nach Wichtigkeit sortiert).
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>Übungsanweisungen
- Verwende die Eigenschaft
feature_importances_unseres Random-Forest-Modells (rfr), um die Feature-Importances in die Variableimportanceszu extrahieren. - Verwende
argsortaus NumPy, um die Indizes der Feature-Importances von groß nach klein zu erhalten, und speichere die sortierten Indizes in der Variablesorted_index. - Setze die xtick-Beschriftungen in der Variable
labelsauf die Featurenamen, indem du die Listesorted_indexverwendest.feature_namesmuss in ein NumPy-Array konvertiert werden, damit wir es mit der Listesorted_indexindizieren können.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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()