Важливості ознак у gradient boosting
Як і в random forests, ми можемо отримати важливості ознак із моделей gradient boosting, щоб зрозуміти, які ознаки найкраще прогнозують. Іноді корисно спробувати різні деревоподібні моделі й подивитися на важливості ознак у кожній з них. Це допоможе усереднити особливості, які можуть з'являтися в окремій моделі.
Важливості ознак зберігаються як масив numpy у властивості .feature_importances_ моделі gradient boosting. Нам потрібно отримати відсортовані індекси важливостей ознак за допомогою np.argsort(), щоб побудувати зручний графік. Ми хочемо впорядкувати ознаки від найбільшої до найменшої важливості, тож скористаємося індексацією Python, щоб розвернути відсортовані важливості, як-от feat_importances[::-1].
Ця вправа є частиною курсу
Machine Learning для фінансів у Python
Інструкції до вправи
- Розверніть змінну
sorted_index, щоб отримати порядок від більшого до меншого, використавши індексацію Python. - Створіть список відсортованих міток ознак як
labels, перетворившиfeature_namesна масив numpy та проіндексувавши йогоsorted_index. - Побудуйте стовпчикову діаграму: використайте
xticks,feature_importances, проіндексовані змінноюsorted_index, а такожlabelsяк мітки поділок по осі X.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()