Развить интуицию значения Шепли и рассказать, как рассчитать значение Шепли.

  1. Часть 1. Ценность Шепли
  2. Часть 2. Ценность Шепли как вклад функции
  3. Часть 3. ЯдроSHAP
  4. Часть 4. TreeSHAP
  5. Часть 5. Пример Python

SHAP означает Пояснения с добавками Shapley.

Из «Аддитивных объяснений Шепли» мы можем получить две подсказки.

(1) Два ключевых слова: Shapley и Добавка.

(2) Цель SHAP — что-то объяснить

Итак, давайте начнем с понимания двух ключевых слов, а затем вернемся к цели объяснения.

Шэпли

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

Если команда из трех сотрудников (Аллан, Боб, Синди) вместе получает прибыль в размере 160 долларов США, то как справедливо распределить прибыль между каждым сотрудником?

Задача в этом вопросе заключается в том, как добиться справедливости, верно?

Давайте пройдемся по процессу расчета значения Шепли, чтобы ответить на поставленный выше вопрос, и в ходе этого процесса будет естественным образом развиваться интуиция.

Шаг 1. Предположим, мы знаем или оцениваем прибыльность отдельного сотрудника (работающего в одиночку) и прибыльность пары сотрудников (в нашем случае всего три сотрудника), как показано в таблице ниже.

Шаг 2. Нам нужно понять, что такое предельный вклад и как его рассчитать. Давайте рассмотрим следующие примеры, чтобы понять их.

Аллан и Бобмогут заработать95 долларов США, поэтому предельный вклад Боба равен Аллану и Бобу-Аллану = 95 долларов. сильный>-$40 = $55

Синди и Бобмогут заработать120 долларов США, поэтому предельный вклад Боба равен Синди и Бобу-Синди = 120 долларов США. strong>-$60 = 60$

Боб и Синдимогут заработать120 долларов США, поэтому предельный вклад Боба равен Бобу и Никто - Никто = 50 долларов США. strong>-$0 = $50(здесь, потому что Боб стоит первым в очереди, поэтому тот(е) перед Бобом - Никто, и Никто не получает прибыли)

Из вышеприведенных примеров можно сделать вывод о правилах расчета маржинального вклада.

Примечание: в этой части предположим, что cобъединение — это упорядоченная последовательность, есть еще один термин cобъединение, который не учитывает порядок элементов, объединение — это то же самое, что и множество.

  1. Предельный вклад для X равен (Другие участники + X)-(Другие участники)
  2. Комбинация — мы видим, что Боб получает разные предельные вклады в разных комбинациях сотрудников (Аллан и Боб против Синди и Боба).
  3. Комбинированный порядок – это связано с тем, что расчет маржи основан на порядке последовательности. В нашем примере мы можем видеть, что Боб получает разные предельные вклады в Синди и Боbи Боб и Синди.

Шаг 3Расчет значений Шепли. Значения Шепли для игрока (или сотрудника в нашем примере) — это средневзвешенное значение всего предельного вклада игрока во всех возможных комбинациях, а вес — это вероятность возникновения комбинации. Ниже в таблице наглядно показаны процессы расчета значения Шепли:

добавка

Основываясь на приведенном выше расчете, распределение прибыли, основанное на значениях Шепли, составляет 42,5 доллара США Аллана, 52,5 доллара США Боба и 65 долларов США Синди, обратите внимание, что сумма значений Шепли трех сотрудников составляет 42,5 + 52,5 + 65 = 160. Это фактически доказывает ценность Шепли аддитивноесвойство, все значения Шепли атрибута (или игрока) должны добавляться к общему выигрышу .

Теперь, после объяснения Shapleyи Additive на примере,я хочу, чтобы мы получили интуиция о том, что такое значения Шепли и как их рассчитать. Следующим шагом давайте обобщим математическую формулу значения Шепли, пожалуйста, наберитесь терпения, я постараюсь объяснить формулу очень подробно, чтобы помочь вам быстро ее понять :)

Понимание определения формулы ценности Шепли

Ниже приведено формальное определение значения Шепли из Википедии, формула вычисляет значение Шепли для игрока i

  1. n — общее количество игроков.
  2. N содержит все возможные подмножества игроков, не содержащие игрока i, здесь подмножество не будет учитывать порядок элементов, на самом деле в наборе нет порядка
  3. S – это один набор из N
  4. |S|количество игроков в наборе S
  5. v(S) – это функция для расчета вклада множества S.

Прежде чем я начну обсуждать формулу, давайте рассмотрим значение Шепли в целом.

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

В приведенной выше формуле для определенного подмножества или коалиции S КРАСНАЯ СТАТЬЯ предназначена для расчета веса вероятности коалиции, ЖЕЛТАЯ СТЕНКА предназначена для расчета предельного вклада.

Желтое поле предназначено для расчета предельного вклада игрока i для заданного набора S. Он различает вклады S с игроком i и S без игрока i.

КРАСНАЯ КОРОБКА Объяснение

Знаменатель n! – это общее количество заказанных комбинаций для n игроков. Представьте, что мы строим последовательность заказов из n игроков, первая позиция в последовательности может выбирать из n игроков, вторая позиция может выбирать из n-1 игроков, третья позиция n-2, четвертый n-3… поэтому общее количество упорядоченных комбинаций будет n*(n-1)*(n-2)*(n-3) …*1

Чтобы понять числитель |S|! *(n-|S|-1)!, мы можем разделить всю последовательность элементов набора на 3 части:

[0,|S|), [|S| ,|S|+1), [|S|+1, n)

Первая часть предназначена для заданного набора S, поэтому у него |S|! различные упорядоченные комбинации, вторая часть имеет только один вариант i, третья часть имеет (n-|S|-1)! различные упорядоченные комбинации.

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

|S|! *1*(n-|S|-1)!

Наконец, вероятность упорядоченной комбинации, полученной из заданного набора S, равна

= |S|! *(n-|S|-1)! / n!

Свойства ценности Шепли или аксиомы

Обычно значение Шепли имеет следующие три основные аксиомы.

  1. Эффективность (Сложение) — все значения Шепли атрибута (или игрока) должны быть добавлены к общему выигрышу. Как и в нашем примере выше, сумма значений Шепли от Аллана, Боба и Синди равна общему выигрышу (160)
  2. Симметрия — значение Шепли двух атрибутов (или игроков) должно быть одинаковым, если они вносят одинаковый вклад во все возможные коалиции.
  3. Dummy — значение Shapley должно быть равно 0, если атрибут (или игрок) ничего не вносит. Аксиомы №2 и №3 оправдывают справедливость значения Шепли.

Вывод

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

Полное руководство по SHAP для объяснения модели:

  1. Часть 1. Ценность Шепли
  2. Часть 2. Ценность Шепли как вклад функции
  3. Часть 3. ЯдроSHAP
  4. Часть 4. TreeSHAP
  5. Часть 5. Пример Python

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА

  1. Интерпретируемое машинное обучение: https://christophm.github.io/interpretable-ml-book/shap.html
  2. Унифицированный подход к интерпретации предсказания модели: https://arxiv.org/abs/1705.07874
  3. Согласованная индивидуализированная атрибуция функций для древовидных
    ансамблей: https://arxiv.org/abs/1802.03888
  4. SHAP Часть 3: Дерево SHAP: https://medium.com/analytics-vidhya/shap-part-3-tree-shap-3af9bcd7cd9b
  5. Встреча PyData в Тель-Авиве: ценности SHAP для объяснимости машинного обучения — Ади Вацман: https://www.youtube.com/watch?v=0yXtdkIL3Xk
  6. Наука, стоящая за InterpretML-SHAP: https://www.youtube.com/watch?v=-taOhqkiuIo
  7. Теория игр (Стэнфорд) — 7.3 — Ценность Шепли: https://www.youtube.com/watch?v=P46RKjbO1nQ
  8. Понимание SHAP для интерпретируемого машинного обучения: https://medium.com/ai-in-plain-english/understanding-shap-for-interpretable-machine-learning-35e8639d03db
  9. Ядро SHAP: https://www.telesens.co/2020/09/17/kernel-shap/
  10. Понимание метода интерпретации SHAP: Kernel SHAP: https://data4thought.com/kernel_shap.html