Перейти к основному содержимому

Влияние признаков на качество прогнозов

Описание метода

Метод перестановочной важности признаков (permutation feature importance) представляет собой способ расчёта степени влияния каждого признака на прогнозы модели.

Достоинством метода является то, что он применим

  • для любой модели (white-box, black-box models);

  • для любой задачи (классификация, регерссия и др.);

  • для любой функции потерь.

Пусть XRN×DX\in\mathbb{R}^{N\times D} - матрица объекты-признаки (вектора признаков для каждого объекта составляют строки этой матрицы), а YRNY\in\mathbb{R}^{N} - вектор откликов для объектов в матрице XX. Пара (X,Y)(X,Y) может соответствовать как обучающей, так и внешней валидационной выборке (не использовавшейся при настройке).

Пусть L(fX,Y)L\left(f|X,Y\right) - потери модели на выборке (X,Y)(X,Y), например, средний модуль ошибки для регрессии или частота ошибок для классификации. Чтобы оценить важность jj-го признака, перемешаем (с возвращением) случайным образом значения этого признака, т.е. значения jj-го столбца матрицы XX, получим новую матрицу X~j\widetilde{X}_{j}, отличную от XX только в jj-м столбце.

При таком случайном перемешивании общее распределение jj-го признака сохранится, но связь с yy потеряется. Пусть L(fX~j,Y)L\left(f|\widetilde{X}_{j},Y\right) - потери модели на выборке (X~j,Y)(\widetilde{X}_{j},Y). Тогда перестановочная важность признака jj (permutation feature importance, PMI) считается по одной из следующих формул:

L(fX~j,Y)L(fX,Y)(1)\tag{1} \frac{L\left(f|\widetilde{X}_{j},Y\right)}{L\left(f|X,Y\right)} L(fX~j,Y)L(fX,Y)(2)\tag{2} L\left(f|\widetilde{X}_{j},Y\right)-L\left(f|X,Y\right)

Таким образом, перестановочная важность признака показывает во сколько/на сколько среднее качество прогнозов изменится, если модель не сможет использовать информацию, хранящуюся в этом признаке, при построении прогнозов.

Обратим внимание, что результат зависит от случайной перестановки признака. При различных перестановках будем получать различный результат. Поэтому рекомендуется запускать расчёт несколько раз и в качестве ответа выдавать средние значения важности признаков.

Пример расчёта важности признаков по формуле (1) для задачи bike sharing приведён ниже (источник), где точками обозначены средние значения важности при перезапусках метода, а интервал показывает нижнюю и верхнюю квантиль по значениям в различных запусках:

permutation-feature-importance.png

Как видим, все признаки оказывают значимое влияние на прогноз, кроме признака holiday, поскольку его доверительный интервал покрывает единицу.

Рекомендуется использовать отношение (2), а не разность потерь (1), т.к. тогда можно сопоставлять важность признаков на разных задачах с разным уровнем потерь.

Перестановочную важность признаков можно считать

  • по обучающей выборке: тогда узнаем, на какие признаки модель сильнее всего переобучилась

  • по валидационной тестовой выборке: тогда узнаем, какой признак в действительности полезнее для прогнозов.

Достоинства

Метод даёт глобальную интерпретируемость для всей выборки в привязке к конкретной модели и функции потерь. В этом её достоинство по сравнению с внешними эвристическими методами расчёта важности признаков, такими как корреляция с откликом или нормализованная взаимная информация (normalized mutual information, NMI), которые привязаны к значениям отклика, но не зависят от рассматриваемой функции потерь.

Недостатки

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

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

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