Важность признаков перестановки

Machine LearningMachine LearningBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии мы узнаем о методе важности признаков перестановки, который представляет собой технику проверки модели, используемую для определения важности признаков в прогнозной модели. Эта техника может быть особенно полезной для не-линейных или непрозрачных моделей, которые трудно интерпретировать.

Советы по работе с ВМ

После завершения запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и получить доступ к 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 для оценки важности признаков в прогностической модели. Мы прошли через шаги загрузки набора данных, обучения модели, оценки модели, вычисления важности признаков и интерпретации результатов. Этот метод может быть полезен для понимания, какие признаки наиболее предсказательны и насколько модель зависит от каждого признака.