Важность признаков в случайном лесу
Одно из полезных свойств древовидных методов — возможность извлекать важность признаков. Это количественный способ оценить, насколько каждый признак влияет на предсказания модели. Такой анализ помогает сосредоточиться на наиболее значимых признаках, улучшить или настроить их, а также избавиться от бесполезных признаков, которые лишь усложняют модель.
Древовидные модели в sklearn имеют свойство .feature_importances_, которое становится доступным после обучения модели и хранит оценки важности признаков. Чтобы построить аккуратный столбчатый график важности признаков (отсортированных от наибольшего к наименьшему), нам нужно получить индексы отсортированных значений с помощью np.argsort().
Это упражнение является частью курса
Машинное обучение для финансов на Python
Инструкции к упражнению
- Используйте свойство
feature_importances_нашей модели случайного леса (rfr), чтобы извлечь важность признаков в переменнуюimportances. - Используйте функцию
argsortиз numpy, чтобы получить индексы важности признаков в порядке убывания, и сохраните отсортированные индексы в переменнуюsorted_index. - Задайте метки делений по оси X как названия признаков в переменной
labels, используя списокsorted_index. Обратите внимание:feature_namesнеобходимо преобразовать в массив numpy, чтобы индексировать его с помощью спискаsorted_index.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Get feature importances from our random forest model
importances = rfr.____
# Get the index of importances from greatest importance to least
sorted_index = ____(importances)[::-1]
x = range(len(importances))
# Create tick labels
labels = np.array(____)[____]
plt.bar(x, importances[sorted_index], tick_label=labels)
# Rotate tick labels to vertical
plt.xticks(rotation=90)
plt.show()