Введение
В этом лабораторном занятии мы узнаем о методе важности признаков перестановки, который представляет собой технику проверки модели, используемую для определения важности признаков в прогнозной модели. Эта техника может быть особенно полезной для не-линейных или непрозрачных моделей, которые трудно интерпретировать.
Советы по работе с ВМ
После завершения запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Загрузка датасета
Во - первых, нам нужно загрузить датасет, который мы можем использовать для обучения нашей прогнозной модели. Мы будем использовать датасет Diabetes из scikit - learn, который содержит информацию о пациентах с диабетом.
from sklearn.datasets import load_diabetes
## Load the Diabetes dataset
диабет = load_diabetes()
## Split the data into training and validation sets
X_train, X_val, y_train, y_val = train_test_split(диабет.data, диабет.target, random_state = 0)
Обучение модели
Далее мы обучим регрессионную модель на тренировочных данных. В этом примере мы будем использовать модель Ridge - регрессии.
from sklearn.linear_model import Ridge
## Train the Ridge regression model
модель = Ridge(alpha = 1e - 2).fit(X_train, y_train)
Оценка модели
Теперь мы оценим обученную модель с использованием валидационного набора данных. Метрикой оценки, используемой здесь, является коэффициент детерминации (R - squared score).
## Evaluate the model on the validation set
score = model.score(X_val, y_val)
print("Validation score:", score)
Вычисление важности признаков перестановки
Теперь мы вычислим важность признаков перестановки с использованием функции permutation_importance из scikit - learn. Эта функция принимает на вход обученную модель, валидационный набор данных и количество раз, которое нужно переставлять признаки.
from sklearn.inspection import permutation_importance
## Calculate permutation feature importance
result = permutation_importance(model, X_val, y_val, n_repeats = 30, random_state = 0)
## Print the feature importances
for i in result.importances_mean.argsort()[::-1]:
if result.importances_mean[i] - 2 * result.importances_std[i] > 0:
print(f"{диабет.feature_names[i]}: {result.importances_mean[i]:.3f} +/- {result.importances_std[i]:.3f}")
Интерпретация результатов
Вычисленная важность признаков представляет собой уменьшение значения оценки модели при случайном перемешивании значений одного признака. Признаки с более высоким значением важности показывают, что модель более сильно полагается на эти признаки при своих прогнозах.
В этом примере наиболее важными признаками, вносящими вклад в производительность модели, являются "s5", "bmi", "bp" и "sex".
Резюме
В этом практическом занятии мы изучили метод Permutation Feature Importance для оценки важности признаков в прогностической модели. Мы прошли через шаги загрузки набора данных, обучения модели, оценки модели, вычисления важности признаков и интерпретации результатов. Этот метод может быть полезен для понимания, какие признаки наиболее предсказательны и насколько модель зависит от каждого признака.