4.2. Важность перестановочного признака

Важность перестановочного признака — это метод проверки модели, который можно использовать для любого подобранного оценщика, когда данные являются табличными. Это особенно полезно для нелинейных или непрозрачных оценщиков. Важность перестановочного признака определяется как уменьшение оценки модели, когда одно значение признака случайным образом перетасовывается (Источник 1). Эта процедура нарушает взаимосвязь между функцией и целью, поэтому снижение оценки модели указывает на то, насколько модель зависит от функции. Преимущество этого метода заключается в том, что он не зависит от модели, и его можно вычислять много раз с различными перестановками признака.

Функция permutation_importance вычисляет значение функции оценок для данного набора данных. Параметр n_repeats устанавливает, сколько раз функция случайным образом перемешивается и возвращает образец художественных важностей.

Рассмотрим следующую обученную регрессионную модель:

>>> from sklearn.datasets import load_diabetes
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import Ridge
>>> diabetes = load_diabetes()
>>> X_train, X_val, y_train, y_val = train_test_split(
...     diabetes.data, diabetes.target, random_state=0)
...
>>> model = Ridge(alpha=1e-2).fit(X_train, y_train)
>>> model.score(X_val, y_val)
0.356...

Его эффективность проверки, измеренная с помощью $R^2$ оценка, значительно превышает уровень вероятности. Это позволяет использовать функцию permutation_importance для проверки того, какие функции являются наиболее предсказуемыми:

>>> from sklearn.inspection import permutation_importance
>>> r = permutation_importance(model, X_val, y_val,
...                            n_repeats=30,
...                            random_state=0)
...
>>> for i in r.importances_mean.argsort()[::-1]:
...     if r.importances_mean[i] - 2 * r.importances_std[i] > 0:
...         print(f"{diabetes.feature_names[i]:<8}"
...               f"{r.importances_mean[i]:.3f}"
...               f" +/- {r.importances_std[i]:.3f}")
...
s5      0.204 +/- 0.050
bmi     0.176 +/- 0.048
bp      0.088 +/- 0.033
sex     0.056 +/- 0.023

Обратите внимание, что значения важности для основных функций составляют значительную часть контрольной оценки 0,356.

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

Предупреждение

Функции, которые считаются маловажными для плохой модели (низкий балл перекрестной проверки), могут быть очень важны для хорошей модели . Поэтому всегда важно оценивать предсказательную силу модели, используя удерживаемый набор (или лучше с перекрестной проверкой), прежде чем вычислять значения. Важность перестановки отражает не внутреннюю прогностическую ценность функции как таковой, а то, насколько важна эта функция для конкретной модели .

4.2.1. Схема алгоритма важности перестановки

  • Входные данные: подобранная прогнозная модель $m$, табличный набор данных (обучение или проверка) $D$.
  • Вычислить контрольную оценку $s$ модели $m$ по данным $D$ (например, точность классификатора или $R^2$ для регрессора).
  • Для каждой функции $j$ (столбец $D$):
    • За каждое повторение $k$ в $1,…,K$:
      • Случайно перемешать столбец $j$ набора данных $D$ для создания поврежденной версии данных с именем $\tilde{D}_{k,j}$.
      • Подсчитайте счет $s_{k,j}$ модели m о поврежденных данных $\tilde{D}_{k,j}$.
    • Вычислить важность $i_j$ для функции $f_j$ определяется как:
      $$i_j = s — \frac{1}{K} \sum_{k=1}^{K} s_{k,j}$$

4.2.2. Связь с важностью деревьев на основе примесей

Древовидные модели обеспечивают альтернативную меру значимости признаков, основанную на среднем уменьшении примесей (MDI). Примесь количественно оценивается критерием разделения деревьев решений (Джини, энтропия или среднеквадратичная ошибка). Однако этот метод может придавать большое значение функциям, которые не могут быть предсказаны на невидимых данных, когда модель переоснащается. С другой стороны, важность функции на основе перестановок позволяет избежать этой проблемы, поскольку ее можно вычислить на невидимых данных.

Кроме того, важность признаков на основе примесей для деревьев сильно смещена и отдает предпочтение признакам с высокой мощностью (обычно числовым признакам) по сравнению с признаками с низкой мощностью, такими как двоичные признаки или категориальные переменные с небольшим количеством возможных категорий.

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

В следующем примере подчеркиваются ограничения важности функции на основе примесей в отличие от важности функции на основе перестановок : важность перестановки и важность функции случайного леса (MDI) .

4.2.3. Вводящие в заблуждение значения сильно коррелированных характеристик

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

Один из способов справиться с этим — объединить коррелированные функции в кластер и сохранить только одну функцию из каждого кластера. Эта стратегия рассматривается в следующем примере: Важность перестановки с мультиколлинеарными или коррелированными объектами .

Рекомендации

  1. Л. Брейман, «Случайные леса», Машинное обучение, 45 (1), 5-32, 2001. https://doi.org/10.1023/A:1010933404324