Фичи в парламент: еще один подход оценить важность признаков в древесных анcамблях

в 10:51, , рубрики: ml, shap, xai

Привет, друзья!

Признаки, которыми орудует модель ИИ, в чём-то похожи на группы лиц, соединяющихся, чтобы сыграть в игру и выйграть максимально много. Этой идеей в задаче оценки важности коэффициентов в модели вдохновлен метод SHAPley values, который объективно обладает рядом хороших свойств. Теперь он не один! Про метод, основанный на идее выборов в парламент в этой статье.

Необходимость

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

Но вот проблема — методов, которые считают важность признаков в процессе построения модели недостаточно, потому что с признаками всё непросто. А именно, у них есть:

  • вероятность наличия взаимодействия между признаками

  • разный подход к оценки важности от модели к модели (важность признака в дереве neq важность признака в линейной модели)

  • факт – при обучении задача — максимизировать корректность прогноза (что пересекается с задачей использования наиболее валидных признаков, но не равно ей).

Решить эти проблемы стремятся методы отдельной области "Explanable Artificial Intelligence" (XAI). Один из популярных (и на самом деле объективно сильно сильных, о чем я писала, например, здесь) — значения Шепли. Я выделяю его здесь не только из-за популярности, но и из-за идеи.

Оценка вкладов признаков на основе "групп лиц".

Значения Шепли

Про значения Шеппли есть ряд хороших статей на Хабр. Если вы слышите про SHAP впервые, рекомендую ознакомиться, прежде чем идти дальше. Если нет, то просто вспомним основную теорию. Вычисление вклада признака i задается согласно соотношению:

phi_i=sum_{S subseteq N setminus {i}} frac{|S|! cdot (|N| - |S| - 1)!}{|N|!} cdot Delta f(i, S)

где Delta f(i, S)=f(S cup {i}) - f(S) разность прогноза модели без признака i и с ним;
|S| — размер подмножества признаков;
|N|— общее число признаков.

Для нас важно, что:

  • признаки рассматриваются как команды игроков S;

  • важность каждого признака есть его усредненный выгрыш при добавлении в команду;

Из используемых методов shap единственный смотрит на признаки как на "группы, играющие в игру". Также, как я уже сказала, стратегия оценки командного вклада показывает его сильным методом. Однако недавно мне попалась статья, где вдохновление "командным рассмотрением" привело к еще одному подходу — вычисление важности признаков на основе метода Д'Онта.

Метод Д’Ондта

Метод Д’Ондта (он же — метод Джефферсона) — способ распределения мест между партиями из политики. Что интересно, он используется в настоящее время в ряде стран. Он распределяет места между партиями, чтобы обеспечить представительство, пропорциональное доле голосов каждой партии.

При использовании метода Д’Ондта места распределяются последовательно, что в теории должно дать справедливость при назначении полномочий. В статье EXPLAINABLE AI THROUGH A DEMOCRATIC LENS: DHONDTXAI FOR PROPORTIONAL FEATURE IMPORTANCE USING THE D’HONDT METHOD было предложено рассмотреть вклад признаков именно на основе такой истории. Расширив и адаптировав её под ML, конечно.

Предложена идея:

Рассматривается каждый конкретный признак A. Его важность вычисляется по шагам:

Шаг 1. База — рассчет уменьшения неопределенности. Это некоторая отправная точка для измеренеия важности признака. Она считается аналогично важности, считаемой при построении деревьев:

Importance_A=sum_{n in N} Delta I_A

где N — число всех услов дерева, а n — число узлов, где фигурирует признак A, а Delta I_A — уменьшение неопределенности в каждом узле, то есть:

Delta I_A=I(n) - I'(n),

де I(n) — мера чистоты узла до разбиения, аI'(n) — после разбиения.

А если у нас анасамбль, мы повторяем описанный процесс по каждому дереву и после усредняем Importance_A на количество всех деревьев.

Шаг 2. Перевод на язык выборов. Для каждого признака считаем вес его "начального голоса" как:

initial_vote_i=frac{Importance_i}{sum_{j in F} Importance_j} cdot V

где V — общее число голосов, задаваемое пользователем.

Шаг 3. Применение порогов и перераспределение.

Признаки, чьи голоса ниже установленного порога, исключаются. Данный шаг достигается за счет разделения признаков на множества F_{above} — признаки выше порога и F_{below} — ниже порога.

И дальше голоса перераспределяются между признаками в F_{above}

redistributed_vote_j=initial_vote_j + frac{Importance_j}{sum_{k in F_{above}} Importance_k} cdot sum_{l in F_{below}} initial_vote_l,

где F_{above} — признаки выше порога, а F_{below} — ниже порога.

Шаг 4. Когда получены голоса, на их основе идет распределение получаемых призныком мест. Считаются оценки:

S_i=frac{redistributed_vote_i}{k + 1}

где k — текущее число мест у признака i.

Признак с максимальным S_i получает место. Потом S_i перерасчитываются и процесс повторяется, пока все места не будут распределены.

Вот такой красивый метод! И если вы устали от формул и скипнули их до более текстового куска, то вот важные отличия идеи Метода Донта от значений Шепли:

  • Общая масса, которая распределяется между признаками, есть величина V, задаваемая пользователем;

  • На месте признака может быть альянс признаков, что позволяет тестировать гипотезы и силе вклада конкретного подмножества;

  • Можно исключать признаки и не допускать их к голосованию (вычислению важности) вообще;

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

Эксперимент

В библиотеке shap для деревьев (и только для них) доступно вычисление shap interaction values — значений, которые оценивают взаимное влияние признаков. Мне не удалось найти хороших примеров, иллюстрирующих их на практике, и я провела простой эксперимент. Для обученного задаче классификации случайного леса, вычислила shap interactions для каждого наблюдения в тестовых данных и проссумировала их абсолютные значения.

Скрытый текст
Interaction coefficients

Interaction coefficients

Допустим, при этом мне важно было проверить — значима ли пара признаков mean radius и mean texture. Проанализировать ответ на свой вопрос я могу задействуя как раз DhontXAI — задав альянс (в терминах библиотеки) "mean radius and mean texture".

Согласно подсчету методом Донта — вклад моей пары 9й из 29. Полный код построения можете найти здесь (Google collab).

Вклады признаков, рассчитанные методом Донта

Вклады признаков, рассчитанные методом Донта

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

А что лучше?

Отлично. У нас есть целых два метода на основе кооперативного (то есть общего) вклада признака в группу. Что выбирать, а самое главное — что работает?

1. Что выбирать?

Авторы статьи утверждают, что методы коррелируют статистически значимо, что в теории позволяет выбрать один и идти дальше. Но несмотря на сравнение, предложенное авторами и утверждение о статистически значимой корреляции для важностей, присвоенных методами, нельзя сказать, что DhontXAI будет давать ответы в точности такие же как значения Шепли и наоборот.

Нельзя сказать, что сила корреляци в статье отражает абсолютную действительность. Я обучила случайный лес на том же наборе данных и сравнила важности по SHAP и DHONT, получив коэффициент корреляции Спирмена r=0.88, что даже чуть выше авторского r=0.83. Такая разница — чувствительность связи к гиперпараметрам модели и такая разница справедлива только для этого набора данных.

2. Что работает?

Отличный вопрос, который нужно проверять эмпирически. Если рассмотреть корреляцию Спирмена с важностью, вычисляемой при построении (она знакома вам по feature importances), методом Донта и SHAP, то r_{shap, feature-imp}=0.88, а r_{dhont, feature-imp}=0.99.

И может хочется сказать, что лучше метод Донта (тк как ранговая связь больше, да и возможности шире), но делать это нельзя в силу в целом открытого вопроса XAI — "какой метод лучше?".

Метод и все методы следует рассматривать как то, что имеет место быть, а истинность и связь с реальностью — тестировать и уточнять у предметной области.

Спасибо за чтение, друзья!

Мы рассмотрели ещё один подход к вычислению важности в древесных ансамблях на основе идеи "группового", который можно рассматривать в своем арсенале. Он удобен для задач тестирования гипотез о группах признаках тогда, когда shap молчит и красивой аналогии.

От автора:

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

Если вам также нравится идея сделать машинное и глубокое обучение более "прозрачным", присоединяйтесь к моему каналу в Telegram! Там я делюсь своими наработками, интересными статьями и новым из мира XAI.

Ссылка на канал.

Добро пожаловать!

Автор: sad__sabrina

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js