Развить интуицию значения Шепли и рассказать, как рассчитать значение Шепли.
- Часть 1. Ценность Шепли
- Часть 2. Ценность Шепли как вклад функции
- Часть 3. ЯдроSHAP
- Часть 4. TreeSHAP
- Часть 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объединение, который не учитывает порядок элементов, объединение — это то же самое, что и множество.
- Предельный вклад для X равен (Другие участники + X)-(Другие участники)
- Комбинация — мы видим, что Боб получает разные предельные вклады в разных комбинациях сотрудников (Аллан и Боб против Синди и Боба).
- Комбинированный порядок – это связано с тем, что расчет маржи основан на порядке последовательности. В нашем примере мы можем видеть, что Боб получает разные предельные вклады в Синди и Боbи Боб и Синди.
Шаг 3Расчет значений Шепли. Значения Шепли для игрока (или сотрудника в нашем примере) — это средневзвешенное значение всего предельного вклада игрока во всех возможных комбинациях, а вес — это вероятность возникновения комбинации. Ниже в таблице наглядно показаны процессы расчета значения Шепли:
добавка
Основываясь на приведенном выше расчете, распределение прибыли, основанное на значениях Шепли, составляет 42,5 доллара США Аллана, 52,5 доллара США Боба и 65 долларов США Синди, обратите внимание, что сумма значений Шепли трех сотрудников составляет 42,5 + 52,5 + 65 = 160. Это фактически доказывает ценность Шепли аддитивноесвойство, все значения Шепли атрибута (или игрока) должны добавляться к общему выигрышу .
Теперь, после объяснения Shapleyи Additive на примере,я хочу, чтобы мы получили интуиция о том, что такое значения Шепли и как их рассчитать. Следующим шагом давайте обобщим математическую формулу значения Шепли, пожалуйста, наберитесь терпения, я постараюсь объяснить формулу очень подробно, чтобы помочь вам быстро ее понять :)
Понимание определения формулы ценности Шепли
Ниже приведено формальное определение значения Шепли из Википедии, формула вычисляет значение Шепли для игрока i
- n — общее количество игроков.
- N содержит все возможные подмножества игроков, не содержащие игрока i, здесь подмножество не будет учитывать порядок элементов, на самом деле в наборе нет порядка
- S – это один набор из N
- |S|количество игроков в наборе S
- 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!
Свойства ценности Шепли или аксиомы
Обычно значение Шепли имеет следующие три основные аксиомы.
- Эффективность (Сложение) — все значения Шепли атрибута (или игрока) должны быть добавлены к общему выигрышу. Как и в нашем примере выше, сумма значений Шепли от Аллана, Боба и Синди равна общему выигрышу (160)
- Симметрия — значение Шепли двух атрибутов (или игроков) должно быть одинаковым, если они вносят одинаковый вклад во все возможные коалиции.
- Dummy — значение Shapley должно быть равно 0, если атрибут (или игрок) ничего не вносит. Аксиомы №2 и №3 оправдывают справедливость значения Шепли.
Вывод
В этой части мы исследуем интуицию ценности Шепли и ее расчет, а во второй части мы увидим, как применять модель ценности Шепли, чтобы получить вклад в модель машинного обучения.
Полное руководство по SHAP для объяснения модели:
- Часть 1. Ценность Шепли
- Часть 2. Ценность Шепли как вклад функции
- Часть 3. ЯдроSHAP
- Часть 4. TreeSHAP
- Часть 5. Пример Python
ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА
- Интерпретируемое машинное обучение: https://christophm.github.io/interpretable-ml-book/shap.html
- Унифицированный подход к интерпретации предсказания модели: https://arxiv.org/abs/1705.07874
- Согласованная индивидуализированная атрибуция функций для древовидных
ансамблей: https://arxiv.org/abs/1802.03888 - SHAP Часть 3: Дерево SHAP: https://medium.com/analytics-vidhya/shap-part-3-tree-shap-3af9bcd7cd9b
- Встреча PyData в Тель-Авиве: ценности SHAP для объяснимости машинного обучения — Ади Вацман: https://www.youtube.com/watch?v=0yXtdkIL3Xk
- Наука, стоящая за InterpretML-SHAP: https://www.youtube.com/watch?v=-taOhqkiuIo
- Теория игр (Стэнфорд) — 7.3 — Ценность Шепли: https://www.youtube.com/watch?v=P46RKjbO1nQ
- Понимание SHAP для интерпретируемого машинного обучения: https://medium.com/ai-in-plain-english/understanding-shap-for-interpretable-machine-learning-35e8639d03db
- Ядро SHAP: https://www.telesens.co/2020/09/17/kernel-shap/
- Понимание метода интерпретации SHAP: Kernel SHAP: https://data4thought.com/kernel_shap.html