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

Вечная борьба Объяснимого и Могущественного

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

  • простые, подотчетные и объяснимые алгоритмы, такие как логистическая регрессия;
  • мощные алгоритмы, которые достигают гораздо более высокой точности, но за счет потери разборчивости, такие как Gradient Boosting или Support Vector Machines. Эти модели обычно называют «черными ящиками», подразумевая, что вы знаете, что входит, а что выходит, но нет никакого способа понять, что на самом деле происходит под капотом.

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

Данные

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

В нашем распоряжении есть следующие переменные:

  • Pclass: класс билета;
  • Пол: Пол пассажира;
  • Возраст: возраст пассажира;
  • SibSp: количество братьев и сестер / супругов на борту «Титаника»;
  • Перч: количество родителей / детей на борту Титаника;
  • Тариф: пассажирский тариф;
  • Посадка: порт посадки.

(Примечание: для простоты некоторые другие переменные были опущены, и предварительная обработка данных почти не производилась).

Данные выглядят так:

Старый добрый LogReg

Что касается задач классификации, то за основу часто берется логистическая регрессия.

После быстрого кодирования качественных характеристик (класс билета, пол пассажира и порт посадки) мы применили простую логистическую регрессию к данным обучения. Точность, вычисленная на проверочном наборе, составляет 81,56%.

Какие выводы мы можем извлечь из этой модели? Поскольку логистическая регрессия строится как

анализ вращается вокруг β. Легко видеть, что при увеличении xⱼ на 1 единицу шансы увеличиваются в exp (βⱼ) раз.

Интерпретация проста: увеличение возраста на один год приведет к увеличению шансов на 0,961.

То есть:

  • парень А, 25 лет: шансы на выживание = 3
  • парень B, идентичный парню A по всем переменным, кроме возраста (26 лет): шансы на выживание = 3 × 0,961 = 2,883

Ограничения этой модели с точки зрения объяснимости очевидны:

  • связь между exp (βⱼ) и коэффициентами линейна, например разница между возрастом от 2 до 12 лет такая же, как между возрастом от 52 до 62 лет;
  • никакое взаимодействие не допускается, например 60 лет одинаково влияют на вероятность выживания независимо от того, принадлежит ли пассажир 1-му классу или 3-му классу.

Пробуем черный ящик: Catboost и SHAP

А теперь попробуем модель черного ящика. В этом примере мы будем использовать Catboost, алгоритм повышения градиента на деревьях решений.

Выполнение быстрого Catboost (без какой-либо настройки гиперпараметров) для тех же данных обучения (на этот раз не требуется горячее кодирование) приводит к точности данных проверки 87,15%.

Как мы и ожидали, Catboost значительно превзошел LogReg (87,15% против 81,56%). Пока что неудивительно.

Теперь вопрос на 64000 долларов в машинном обучении: если Catboost настолько лучше, чем LogReg в прогнозировании выживаемости по невидимым данным, не следует ли нам просто доверять ему и не слишком беспокоиться о механизмах?

Смотря как. Если это соревнование Kaggle, ответ может быть да, но в целом это определенно нет!. Если вам интересно, почему, просто ознакомьтесь с некоторыми громкими инцидентами, такими как Amazon сексистский инструмент найма ИИ или Microsoft расистский чат-бот.

Итак, чтобы выяснить, какие решения принимает Catboost, нам на помощь приходит еще один инструмент под названием SHAP (Аддитивные объяснения Шапли). SHAP (вероятно, новейшее объяснение машинного обучения) родился в 2017 году, и это блестящий способ реконструировать выходные данные любого алгоритма прогнозирования.

Применение анализа SHAP к нашим данным и выходным данным Catboost создает матрицу, которая имеет тот же размер, что и исходная матрица данных, содержащая значения SHAP. Значения SHAP выглядят так:

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

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

Это означает: предположим, что для первого человека мы знаем все переменные, кроме возраста. Его сумма SHAP тогда составляет -0,36 -0,76 +0,05 -0,03 -0,3 -0,08 = -1,48. Как только мы узнаем возраст человека (также принимая во внимание взаимодействие между возрастом и другими переменными), мы можем обновить сумму: -1,48 +0,11 = -1,37.

SHAP: в комнате есть слон

Вы можете использовать библиотеку Python, посвященную SHAP, чтобы получить необычные графики (в основном содержащие описательную статистику о значениях SHAP). Например, вы можете легко получить график, суммирующий значения SHAP для каждого наблюдения с разбивкой по признакам. В нашем примере:

Вы видите слона в комнате?

Если бы вы показали этот сюжет неспециалисту (или даже своему начальнику), он, вероятно, сказал бы: «Красивые цвета. Но что там за правитель? Это доллары? Килограммы? Годы?"

Короче говоря, значения SHAP непонятны для людей (даже для специалистов по данным).

От SHAP к прогнозируемым вероятностям

Понятие вероятности понять гораздо легче. На самом деле, это даже больше: это врожденное (в конце концов, именно поэтому люди продолжают летать на самолетах).

Желая перейти от SHAP к вероятностям, самое очевидное, что нужно сделать, - это построить график прогнозируемой вероятности выживания (для каждого человека) относительно суммы SHAP (для каждого человека).

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

где f (.) - это монотонно возрастающая s-образная функция, которая отображает любое действительное число в интервал [0,1] (для простоты f () может быть простой интерполяционной функцией, ограниченной в [0,1]).

Пусть использовать возьмем индивидуума. Предположим, что, зная все переменные, кроме возраста, его сумма SHAP равна 0. Теперь представьте, что значение SHAP относительно возраста равно 2.

Нам достаточно знать функцию f (), чтобы количественно оценить влияние возраста на прогнозируемую вероятность выживания: это просто f (2) -f (0). В нашем случае это f (2) -f (0) = 80% -36% = 44%

Несомненно, вероятность выживания более удобоварима, чем SHAP выживания. Что более понятно: сказать, что этот индивидуальный возраст приводит к увеличению SHAP на 2 или к увеличению вероятности на 44%?

И что?

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

получить следующее:

Например, наличие билета 3-го класса снижает вероятность выживания первого пассажира на -4,48% (что соответствует -0,36 SHAP). Обратите внимание, что также пассажир n. 3 и пассажирский № 5 были в 3-м классе. Их влияние на вероятность (соответственно -16,65% и -5,17%) различно из-за взаимодействия с другими функциями.

На этой матрице можно провести несколько анализов. Мы просто приводим некоторые сюжеты в качестве примера.

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

Добавленная стоимость этого метода заключается в том, что:

  • мы можем количественно оценить эффекты в терминах вероятностей, а не в терминах значений SHAP. Например, можно сказать, что в среднем возраст 60–70 лет приводит к снижению вероятности выживания на 27% по сравнению с возрастом 0–10 лет (с + 14% до -13%);
  • мы можем визуализировать нелинейные эффекты. Например, если посмотреть на тариф для пассажиров, вероятность выживания увеличивается до определенного пункта, а затем немного снижается;
  • мы можем представлять взаимодействия. Например, пассажирский тариф или класс билета. Если бы между двумя переменными не было взаимодействия, три линии были бы параллельны. Вместо этого они демонстрируют разное поведение. Синяя линия (пассажиры 1-го класса) немного сужается по отношению к тарифу. Особенно интересна тенденция красной линии (пассажиры 3-го класса): между двумя идентичными людьми, путешествующими в 3-м классе, вероятность выживания у того, кто заплатил 50–75 фунтов, составляет примерно на 15% (от -10% до + 5%). чем тот, кто заплатил до 50 фунтов.

Подведение итогов

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

Объяснимость означает выражение выбора модели понятным для людей способом, основанным на их восприятии реальности (включая сложное поведение).

Мы показали способ преобразования значений SHAP в вероятности. Это позволяет визуализировать функционирование черного ящика и гарантировать, что он соответствует (как качественно, так и количественно) нашим знаниям о мире: мире, который более многогранен, чем тот, который изображен более простыми моделями.

Просто дай мне код!

Код можно найти здесь:



Наслаждаться!