Допустим, мы хотим спрогнозировать цены на квартиру, так как планируем инвестировать в рынок недвижимости. За определенную квартиру предполагается, что справедливая цена составляет 300 000 долларов. Мы хотим получить какое-то объяснение предсказанию. Квартира площадью 900 кв.м находится на 5 этаже. Рядом с домом находится парк, в нем не допускается размещение с домашними животными.

Средний прогноз для всех квартир - 330 000 долларов. Насколько значение каждого признака повлияло на прогноз по сравнению со средним прогнозом?

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

Шепли Вэлью

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

  • «Игра» - это задача прогнозирования для одного экземпляра данных.
  • «Игроки» - это значения характеристик экземпляра, которые сотрудничают, чтобы получить выигрыш.
  • «Выигрыш» - это фактический прогноз для экземпляра минус средний прогноз для всех экземпляров.

В нашем случае с квартирой значения характеристик nearby park, no pets, 900 sqft и 5th floor работают вместе, чтобы получить прогноз в 300 000 долларов.

Наша цель - объяснить разницу между фактическим прогнозом (300 000 долларов США) и средним прогнозом (330 000 долларов США): разница составляет - 30 000 долларов США.

Ответ, который мы ищем, выглядит примерно так: nearby park пожертвовал 30 000 долларов; 900 sqft пожертвовал 10 000 долларов США; 5th floor внесла - 20 000 долларов США; no pets внес вклад - 50 000 долларов. Сумма взносов составляет - 10 000 долларов, что является окончательным прогнозом за вычетом средней прогнозируемой цены квартиры.

Как рассчитать стоимость Шепли для одной функции?

Значение Шепли - это средний предельный вклад значения характеристики во всех возможных коалициях . Это может быть немного абстрактно. Вернемся к приведенному выше примеру. Допустим, мы хотим оценить вклад no pets. Мы можем случайным образом вводить и удалять другие функции, чтобы собрать полные коалиции следующим образом:

  • No other feature values
  • nearby park
  • 900 sqft
  • 5th floor
  • nearby park+900 sqft
  • nearby park+5th floor
  • 900 sqft+5th floor
  • nearby park+900 sqft+5th floor

Для каждой из этих коалиций мы можем вычислить прогнозируемую цену квартиры с учетом и без значения характеристики no pets и взять разницу, чтобы получить предельный вклад. Значение Шепли - это (взвешенное) среднее значение маржинальных взносов. Мы заменяем значения признаков признаков, которые не входят в коалицию, случайными значениями признаков из набора данных квартиры, чтобы получить прогноз на основе модели машинного обучения.

Будьте осторожны, чтобы правильно интерпретировать значение Шепли: значение Шепли - это средний вклад значения признака в прогноз в различных коалициях. Значение Шепли НЕ является разницей в прогнозе, когда мы удалим этот элемент из модели.

Плюсы и минусы

Разница между прогнозом и средним прогнозом справедливо распределена между значениями характеристик экземпляра - свойством эффективности значений Шепли. Значение Шепли может быть единственным методом для предоставления полного объяснения.

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

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

С другой стороны, значение Шепли имеет ряд недостатков:

  1. значение Шепли требует много вычислительного времени. В 99,9% реальных проблем возможно только приблизительное решение. Точное вычисление значения Шепли требует больших вычислительных ресурсов, поскольку существует 2 ^ k возможных коалиций значений признаков, а «отсутствие» признака необходимо моделировать путем рисования случайных экземпляров, что увеличивает дисперсию для оценки значений Шепли. предварительный расчет.
  2. Иногда значение Шепли может быть неверно истолковано. Значение Шепли значения признака не является разницей предсказанного значения после удаления признака из обучения модели. Правильная интерпретация значения Шепли такова: при текущем наборе значений признаков вклад значения признака в разницу между фактическим прогнозом и средним прогнозом является оценочным значением Шепли.
  3. Кроме того, пользователям потребуется доступ к данным, если они хотят вычислить значение Шепли для нового экземпляра данных. Недостаточно получить доступ к функции прогнозирования, потому что вам нужны данные для замены частей интересующего экземпляра значениями из случайно выбранных экземпляров данных.

SHAP

Аддитивные объяснения Шепли (SHAP) - это альтернативный метод оценки значений Шепли. На практике через пакет Python shap можно применить следующие методы:

Важность функции SHAP

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

Важность функции SHAP - это альтернатива важности функции перестановки. Хотя существует большая разница между обоими показателями важности: Важность перестановочного признака основана на снижении производительности модели. SHAP основан на значении атрибуции функций.

Сводный график SHAP

Сводный график сочетает в себе важность функций с эффектами функций. Каждая точка на сводном графике представляет собой значение Шепли для объекта и экземпляра. Положение по оси Y определяется функцией, а по оси X - значением Шепли. Цвет представляет значение характеристики от низкого к высокому.

Перекрывающиеся точки колеблются в направлении оси Y, поэтому мы получаем представление о распределении значений Шепли для каждого объекта. Функции упорядочены по степени важности.

График зависимости зависимости SHAP

Зависимость характеристик SHAP может быть простейшим глобальным графиком интерпретации:

  1. Выберите функцию.
  2. Для каждого экземпляра данных постройте точку со значением признака на оси x и соответствующим значением Шепли на оси y.

Резюме

Поскольку SHAP вычисляет значения Шепли, применяются все преимущества значений Шепли: SHAP имеет прочную теоретическую основу в теории игр. Однако следует отметить, что SHAP не определяет причинно-следственную связь, которую лучше определить с помощью экспериментального дизайна или аналогичных подходов.

Спасибо за прочтение!

Если вам понравилось, подпишитесь на меня на Medium, чтобы узнать больше. Это отличное кардио для 👏 И поможет другим людям увидеть историю.

Если вы хотите и дальше получать статьи этого типа, вы можете поддержать меня, став Средним подписчиком.