Выведите на экран таблицу с важностями признаков:
- Инициализируйте модель с лучшими гиперпараметрами, которые вы получили случайным поиском:
{'min_samples_split': 6, 'min_samples_leaf': 8, 'max_depth': 4}. - Обучите модель.
- Сформируйте таблицу важности признаков.
# импортируем библиотеки и объявляем константы
import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
RANDOM_STATE = 42
# подготавливаем данные заранее созданной функцией
# в код добавили кодирование ранговых и неранговых переменных
X_train, X_test, y_train, y_test = prepare_data('railway_full.csv')
# инициализируйте модель дерева решений с лучшими гиперпараметрами
model = DecisionTreeClassifier(min_samples_split = 6,
min_samples_leaf = 8,
max_depth = 4,
random_state = RANDOM_STATE)
# обучите модель
model.fit(X_train, y_train)
# сформируйте таблицу важности признаков
feature_importances = pd.DataFrame(
{
'Feature': X_train.columns,
'Importance': model.feature_importances_
})
# сортируем таблицу по важности — от большей к меньшей
print(feature_importances.sort_values('Importance', ascending=False))
Результат
Feature Importance
11 Общая оценка качества предоставленной услуги 1.0
0 Возраст 0.0
1 Расстояние 0.0
18 Оценка качества питания_плохо 0.0
17 Оценка качества питания_отсутствует 0.0
16 Тип_св 0.0
15 Тип_плацкарт 0.0
14 Путешествует по работе_нет 0.0
13 Путешествует с детьми_нет 0.0
12 Пол_муж 0.0
10 Оценка комфортности времени отправления/прибытия 0.0
9 Оценка качества wifi 0.0
8 Оценка комфортности покупки билета онлайн 0.0
7 Оценка качества обслуживания в пути 0.0
6 Оценка качества уборки 0.0
5 Оценка комфортности места 0.0
4 Наличие wifi 0.0
3 Питание включено 0.0
2 Покупка билета онлайн 0.0
19 Оценка качества питания_хорошо 0.0