Kom igångKom igång gratis

Särdragsvikter för gradientboostning

Precis som med slumpskogar kan vi extrahera särdragsvikter från gradientboostningsmodeller för att förstå vilka särdrag som är bäst på att göra förutsägelser. Det kan vara värdefullt att prova olika trädbaserade modeller och jämföra särdragsvikterna från dem alla – det hjälper till att jämna ut eventuella avvikelser som kan uppstå i en enskild modell.

Särdragsvikterna lagras som en numpy-array i egenskapen .feature_importances_ hos gradientboostningsmodellen. Vi behöver hämta de sorterade indexen för särdragsvikterna med np.argsort() för att kunna skapa en tydlig graf. Eftersom vi vill visa särdragen från störst till minst använder vi Pythons indexering för att vända den sorterade ordningen, som i feat_importances[::-1].

Den här övningen är en del av kursen

Maskininlärning för finans i Python

Visa kurs

Övningsinstruktioner

  • Vänd variabeln sorted_index så att ordningen går från störst till minst med hjälp av Pythons indexering.
  • Skapa den sorterade listan med särdragsetiketter som labels genom att konvertera feature_names till en numpy-array och indexera med sorted_index.
  • Skapa ett stapeldiagram med x-tick-värdena och feature_importances indexerat med variabeln sorted_index, och använd labels som etiketter för x-tickarna.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod