Вступление

Сложные алгоритмы машинного обучения, такие как XGBoost, становятся все более популярными для задач прогнозирования. Традиционно существует компромисс между интерпретацией и точностью, и простые модели, такие как линейная регрессия, иногда предпочтительнее ради прозрачности и интерпретируемости.

Но SHAP (или добавочные значения Шепли) - один из многих подходов, которые меняют эту тенденцию, и мы постепенно движемся к моделям, которые являются сложными, точными и интерпретируемыми.

Эта статья в значительной степени основана на выступлении Скотта Лундберга, о котором я упоминаю в источниках ниже. Я сосредоточусь на теории SHAP, а затем перейду к некоторым приложениям. Поскольку кода и руководств предостаточно, я свяжу некоторые из них в разделе источников.

(I) Теория, которая привела к SHAP

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

Это важно помнить: мы объясняем вклад каждой функции в индивидуальное прогнозируемое значение. В линейной регрессии мы знаем вклад каждой функции X по построению (X * бета), и сумма этих вкладов объясняет результат Y, что приводит к интуитивной интерпретации модели (см. Рисунок 1).

Идея SHAP состоит в том, чтобы найти функцию Phi для приписывания достоверности прогнозу, как в линейной модели:

Так как же получить Phis? (обратите внимание на зависимость Phi от данных X и модели машинного обучения f на рисунке 2)

В целях иллюстрации представим, что мы используем алгоритм XGBoost для прогнозирования Y, вероятности госпитализации в будущем, на основе двух переменных X1 и X2:

X1: пациент был госпитализирован в прошлом году
X2: пациент посещал отделение неотложной помощи (ER) в прошлом году

и что из этого алгоритма мы получаем среднюю прогнозируемую вероятность (будущей госпитализации) 5%.

С помощью SHAP мы пытаемся объяснить индивидуальный прогноз. Итак, давайте возьмем пример с пациентом А и попытаемся объяснить его вероятность госпитализации. Представим, что согласно нашей модели машинного обучения эта вероятность составляет 27%. Мы можем спросить себя: как мы отклонились от среднего прогноза модели (5%), чтобы добраться до прогноза пациента А (27%)?

Один из способов получить Phi (вклады в прогнозируемую вероятность) для пациента A - это посмотреть на ожидаемое значение f (X) в зависимости от наблюдаемых значений характеристик. Мы знаем, что пациент А в прошлом году был госпитализирован и посещал скорую помощь, поэтому X1 и X2 равны 1.

Начнем с расчета:

А потом:

В этом примере мы видим из рисунка 4, что Phi1 (вклад переменной X1) составляет:
20% -5% = 15%

И Phi2 (вклад переменной X2):
27% -20% = 7%

Но мы не можем останавливаться на достигнутом. Оказывается, получить фи не так просто, потому что порядок важен для их вычисления (на какую переменную мы начинаем ставить условие?). Это связано с тем, что при наличии взаимодействий вклад взаимодействия в окончательный прогноз переходит к последней переменной в порядке.

Например, если между нашими переменными X1 и X2 существует такое взаимодействие, что, если они обе равны 1, окончательная предсказанная вероятность выше, вклад взаимодействия будет поглощен (или, проще говоря, добавлен к вкладу ) вторая упорядоченная переменная X2, поскольку мы вычисляем второй член:

Давайте визуализируем это, поменяв порядок обуславливания. Итак, на этот раз мы начинаем ставить условие на X2 вместо X1.

Теперь мы видим из рисунка 5, что Phi1 (вклад переменной X1) составляет:
27% -10% = 17% (ранее мы обнаружили, что это было 15%).

И Phi2 (вклад переменной X2) составляет:
10% -5% = 5% (ранее мы обнаружили, что это было 7%)

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

Решение исходит из теории игр и, в частности, из ценностей Шепли, представленных лордом Шепли в 1950-х годах.

В этом контексте игроки (функции) вместе играют в игру (наблюдение), чтобы выиграть приз (прогноз). Некоторые игроки внесли больше, чем другие, в победу в игре, но игроки взаимодействуют друг с другом (взаимодействия), чтобы выиграть игру. Так как же справедливо разделить приз?

Шепли выдвинул некоторые предположения, определяя свойства справедливости, ведущие к уникальному решению при разделении приза: «ценности Шепли». Теоретически значения Шепли легко вычислить, поскольку они являются результатом усреднения по всем возможным порядкам N! (когда N - количество функций). Но на практике этот подход очень вычислительный, поэтому авторы находят более быстрые способы вычисления значений Шепли для класса функций (например, для деревьев).

Прежде чем мы перейдем к некоторым иллюстрациям, обратите внимание на одну важную оговорку:

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

Одно из основных предположений модели - независимость, которая помогает при вычислении условных ожиданий. Посмотрим как.
Возьмем пример Ε (f (X) | X1 = 1), который можно вычислить следующим образом:

(a) Фиксация интересующего свойства к его значению (в нашем примере X1 = 1)
(b) Случайная выборка значений из других функций (в нашем примере случайная выборка значений из переменной X2)
(c) Подача синтетических наблюдений (X1, X2), полученных из (a) и (b), в модель f (X) для получения прогнозов
(d) Взятие среднего из прогнозов

Теоретически эти шаги будут приближаться к Ε (f (X) | X1 = 1), но очевидно, что шаг (b) прерывается, если существует высокая корреляция между функциями: путем фиксации X1 в (a) и случайной выборки X2 в (b) , мы нарушаем корреляцию между X1 и X2.

Теперь, когда мы рассмотрели немного теории, давайте посмотрим, что мы можем сделать с SHAP на практике!

(II) Несколько иллюстраций SHAP на практике

(a) SHAP предоставляет функции для каждого отдельного наблюдения

Мы обсудили, как SHAP был в первую очередь ориентирован на оценку индивидуальных вкладов. График силы t показывает, как каждая функция влияет на индивидуальный прогноз.

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

На рисунке 6 показан график силы для конкретного пациента (помните, мы объясняем одно наблюдение за раз!). Мы видим, что их низкий дыхательный объем (количество воздуха, поступающего в легкие или из них) способствовал увеличению риска гипоксемии (примерно на 0,5).

Эти отношения не обязательно причинны. Влияние функции может быть связано с корреляцией.

(b) SHAP дает общие объяснения и важность функции

Локальные объяснения, как описано в (а), можно объединить, чтобы получить глобальное объяснение. А из-за аксиоматических допущений SHAP выясняется, что глобальные объяснения SHAP могут быть более надежными, чем другие меры, такие как индекс Джини.

SHAP может улучшить выбор функций

В приведенном ниже примере исследователи прогнозируют риск смерти на основе набора исходных переменных. На рисунке 7 показана важность глобальной функции. Простая иллюстрация здесь состоит в том, что возраст является наиболее предсказательной переменной для смерти.

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

Редкие эффекты высокой величины не будут отображаться на графике важности функции.

Давайте проиллюстрируем это на примере Скотта Лундберга. «Белок крови» на Рисунке 7 - наименее важная характеристика во всем мире. Но когда мы смотрим на краткую сводку объяснений (рис. 8 ниже, правая панель), мы видим, что высокий уровень белка в крови является очень важным показателем смертности для некоторых людей.

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

(c) SHAP выявляет неоднородность и взаимодействия

Мы можем использовать значения SHAP, чтобы лучше понять источники неоднородности. Один из способов сделать это - использовать SHAP график частичной зависимости (рисунок 9). Графики частичной зависимости отображают значения SHAP для определенного признака и окрашивают наблюдения в соответствии с другим признаком. В этом примере значения SHAP нанесены на график зависимости от систолического артериального давления, а наблюдения окрашены в соответствии с их возрастом.

Давайте еще раз посмотрим на сводный график местного объяснения (рис. 8, правая панель). Мы видим, что более высокое систолическое артериальное давление связано с более высоким риском смертности. Из графика частичной зависимости, приведенного ниже на рисунке 9, мы можем далее сказать: высокое систолическое артериальное давление связано с более высоким риском смерти, особенно если оно возникает в более молодом возрасте.

В заключение этой статьи обратите внимание, что помимо вышеупомянутого, у значений SHAP есть еще много приложений. Стоит упомянуть их полезность для мониторинга моделей машинного обучения после их развертывания. Например, значения SHAP могут показать, что некоторые переменные внезапно способствуют увеличению потерь в модели машинного обучения из-за аномалий в исходных данных. Чтобы получить больше информации, я бы посоветовал всем посмотреть презентацию Скотта Лундберга, ссылку на которую можно найти в приведенных ниже источниках.

Будущие исследования

По словам автора, будущие области исследований включают интерпретируемость при наличии коррелированных характеристик и включение причинных допущений в объяснения Шепли.

Источники:
(1) https://youtu.be/B-c8tIgchu0
(2) https://shap.readthedocs.io/en/latest /index.html
(3) https://christophm.github.io/interpretable-ml-book/shap.html
(4) https://towardsdatascience.com/interpretable -machine-learning-with-xgboost-9ec80d148d27
(5) https://towardsdatascience.com/a-novel-approach-to-feature-importance-shapley-additive-explanations-d18af30fc21b видео
(6) «https://arxiv.org/abs/1705.07874