LoslegenKostenlos starten

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>
Kurs ansehen

Übungsanweisungen

  • Verwende die Eigenschaft feature_importances_ unseres Random-Forest-Modells (rfr), um die Feature-Importances in die Variable importances zu extrahieren.
  • Verwende argsort aus NumPy, um die Indizes der Feature-Importances von groß nach klein zu erhalten, und speichere die sortierten Indizes in der Variable sorted_index.
  • Setze die xtick-Beschriftungen in der Variable labels auf die Featurenamen, indem du die Liste sorted_index verwendest. feature_names muss in ein NumPy-Array konvertiert werden, damit wir es mit der Liste sorted_index indizieren 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()
Code bearbeiten und ausführen