Důležitost příznaků v gradient boosting modelu
Stejně jako u random forests můžeme z gradient boosting modelů extrahovat důležitost příznaků a zjistit, které z nich jsou nejlepšími prediktory. Občas se vyplatí vyzkoušet různé modely založené na stromech a porovnat důležitost příznaků ve všech z nich – tím lze vyrovnat případné zvláštnosti, které by mohly vzniknout u jednoho konkrétního modelu.
Důležitost příznaků je uložena jako pole numpy ve vlastnosti .feature_importances_ gradient boosting modelu. Pro vytvoření přehledného grafu budeme potřebovat seřazené indexy důležitosti příznaků pomocí np.argsort(). Protože chceme příznaky seřazené od největšího po nejmenší, použijeme indexování Pythonu k obrácení seřazených hodnot: feat_importances[::-1].
Toto cvičení je součástí kurzu
Machine Learning for Finance in Python
Pokyny k cvičení
- Obrať proměnnou
sorted_indextak, aby byla seřazena od největší hodnoty po nejmenší – použij indexování Pythonu. - Vytvoř seřazený seznam popisků příznaků jako
labels: převeďfeature_namesna numpy pole a indexuj ho pomocísorted_index. - Vytvoř sloupcový graf s hodnotami na ose x, hodnotami
feature_importancesindexovanými proměnnousorted_indexa popiskylabelsjako popisy na ose x.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()