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
Övningsinstruktioner
- Vänd variabeln
sorted_indexså att ordningen går från störst till minst med hjälp av Pythons indexering. - Skapa den sorterade listan med särdragsetiketter som
labelsgenom att konverterafeature_namestill en numpy-array och indexera medsorted_index. - Skapa ett stapeldiagram med x-tick-värdena och
feature_importancesindexerat med variabelnsorted_index, och användlabelssom 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()