ПочатиПочніть безкоштовно

Важливості ознак у 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()
Редагувати та запускати код