- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

Про значения Шеппли есть ряд хороших статей на Хабр [2]. Если вы слышите про 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 единственный смотрит на признаки как на "группы, играющие в игру". Также, как я уже сказала, стратегия оценки командного вклада показывает его сильным методом. Однако недавно мне попалась статья, где вдохновление "командным рассмотрением" привело к еще одному подходу — вычисление важности признаков на основе метода Д'Онта.

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

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

При использовании метода Д’Ондта места распределяются последовательно, что в теории должно дать справедливость при назначении полномочий. В статье EXPLAINABLE AI THROUGH A DEMOCRATIC LENS: DHONDTXAI FOR PROPORTIONAL FEATURE IMPORTANCE USING THE D’HONDT METHOD [4] было предложено рассмотреть вклад признаков именно на основе такой истории. Расширив и адаптировав её под 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 [5] для деревьев (и только для них) доступно вычисление shap interaction values — значений, которые оценивают взаимное влияние признаков. Мне не удалось найти хороших примеров, иллюстрирующих их на практике, и я провела простой эксперимент. Для обученного задаче классификации случайного леса, вычислила shap interactions для каждого наблюдения в тестовых данных и проссумировала их абсолютные значения.

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

Interaction coefficients

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

Согласно подсчету методом Донта — вклад моей пары 9й из 29. Полный код построения можете найти здесь [6] (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.

Ссылка на канал. [7]

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

Автор: sad__sabrina

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/ml/403009

Ссылки в тексте:

[1] здесь: https://habr.com/ru/articles/853794/

[2] статей на Хабр: https://habr.com/ru/articles/428213/

[3] Метод Д’Ондта : https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%94%E2%80%99%D0%9E%D0%BD%D0%B4%D1%82%D0%B0

[4] EXPLAINABLE AI THROUGH A DEMOCRATIC LENS: DHONDTXAI FOR PROPORTIONAL FEATURE IMPORTANCE USING THE D’HONDT METHOD: https://arxiv.org/pdf/2411.05196

[5] shap: https://shap.readthedocs.io/en/latest/

[6] здесь: https://colab.research.google.com/drive/1Azt-KyWWfJuRUjgUWcRWGXM7f2QHyMyd?usp=sharing

[7] Ссылка на канал. : https://t.me/jdata_blog

[8] Источник: https://habr.com/ru/articles/860668/?utm_campaign=860668&utm_source=habrahabr&utm_medium=rss