НачатьНачать бесплатно

Важность признаков в градиентном бустинге

Как и в случае со случайными лесами, из моделей градиентного бустинга можно извлечь важность признаков, чтобы понять, какие из них лучше всего предсказывают целевую переменную. Иногда полезно опробовать несколько древовидных моделей и сравнить важность признаков в каждой из них — это помогает сгладить особенности, характерные для отдельной модели.

Важность признаков хранится в виде массива numpy в атрибуте .feature_importances_ модели градиентного бустинга. Чтобы построить наглядный график, нам нужно получить отсортированные индексы с помощью np.argsort(). Поскольку нам нужны признаки от наиболее важных к наименее важным, воспользуемся индексацией Python для обращения порядка: feat_importances[::-1].

Это упражнение является частью курса

Машинное обучение для финансов на Python

Посмотреть курс

Инструкции к упражнению

  • Разверните переменную sorted_index от наибольшего значения к наименьшему с помощью индексации Python.
  • Создайте отсортированный список меток признаков labels, преобразовав feature_names в массив numpy и проиндексировав его с помощью sorted_index.
  • Постройте столбчатую диаграмму: укажите позиции делений по оси X, значения 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()
Редактировать и запускать код