Интерпретируемость моделей стала основной темой в сообществе машинного обучения. Появилось много инноваций. Модуль InterpretML, разработанный командой Microsoft Inc., обеспечивает точность прогнозирования, интерпретируемость модели и предназначен для использования в качестве унифицированного API. Его Github получает активные обновления. Я написал серию статей об интерпретируемости моделей, в том числе Объясните свою модель с помощью значений SHAP, Объясните любые модели с помощью значений SHAP - используйте KernelExplainer, Объясните свою модель с помощью LIME, SHAP с более элегантными диаграммами и Создание диаграмм водопада для значений SHAP для всех моделей.

Я собираюсь посвятить эту статью, чтобы познакомить вас с InterpretML.

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

Пакет InterpretML

Здесь стоит упомянуть несколько важных особенностей. Во-первых, команда Microsoft нацелена на разработку пакета как окончательного унифицированного API фреймворка, такого как единый API scikit-learn, включающий все алгоритмы. Во-вторых, пакет использует множество библиотек, таких как Plotly, LIME, SHAP, SALib, поэтому он уже совместим с другими модулями. В-третьих, пакет предлагает новый алгоритм интерпретируемости под названием Explainable Boosting Machine (EBM), который основан на обобщенных аддитивных моделях (GAM).

GAM также используется в модуле Пророк с открытым исходным кодом Facebook. См. Бизнес-прогнозирование с помощью Facebook’s Prophet.

Интерпретируемость модели не означает причинно-следственной связи

Важно отметить, что интерпретируемость модели не предполагает причинно-следственной связи. Чтобы доказать причинно-следственную связь, вам понадобятся разные методы. В серии статей Определите причинно-следственную связь я демонстрирую эконометрические методы, которые определяют причинно-следственную связь. В этих статьях рассматриваются следующие методы: прерывность регрессии (см. Определение причинно-следственной связи по прерывности регрессии), различие в различиях (DiD) (см. « Определение причинно-следственной связи по разнице в различиях ), модели с фиксированными эффектами (см. « Выявление причинно-следственной связи с помощью моделей с фиксированными эффектами ») и рандомизированное контролируемое испытание с факторным дизайном (см. Планирование экспериментов для вашего управления изменениями).

Общие сведения об обобщенных аддитивных моделях (GAM)

Обобщенные аддитивные модели были первоначально изобретены Тревором Хасти и Робертом Тибширани в 1986 году. Хотя GAM пока не пользуется достаточной популярностью как случайный лес или градиентное усиление в сообществе специалистов по обработке данных, это, безусловно, мощный и простой метод. Идея GAM интуитивно понятна:

  • Отношения между отдельными предикторами и зависимой переменной следуют плавным схемам, которые могут быть линейными или нелинейными. На рисунке (A) показано, что взаимосвязь между x1 и y может быть нелинейной.
  • Добавка: эти плавные отношения можно оценить одновременно, а затем сложить.

На рисунке (A) E (Y) обозначает ожидаемое значение. Функция link g () связывает ожидаемое значение с переменными-предикторами. Функция f () называется гладкой или непараметрической функцией. (Непараметрический означает, что форма функций-предикторов определяется исключительно данными. Напротив, параметрические означает, что форма функций-предикторов определяется определенной функцией и параметрами.) Когда функция f () становится линейной, GAM сводится к GLM. GLM легко интерпретировать, как и GAM.

Вы можете быть обеспокоены рисками переобучения, потому что GAM использует сглаженные функции для нелинейного подбора данных. Как GAM решает эту проблему? GAM добавляет дополнительный штраф за каждый гладкий член. Используются типичные методы регуляризации, включая LASSO, Ridge или Elastic Net. Повышение также выполняет регуляризацию как часть подгонки.

Если мы суммируем случай с GAM, мы можем сказать:

  • его легко интерпретировать.
  • он более гибок в подборе данных, и
  • он упорядочивает функции предикторов, чтобы избежать переобучения.

Добавьте условия взаимодействия в GAM для повышения точности прогнозов

Хотя GAM легко интерпретировать, его точность значительно ниже, чем у более сложных моделей, допускающих взаимодействия. В статье семинара Точные понятные модели с парными взаимодействиями »Лу et. др. (KDD-2013), они добавляют условия взаимодействия к стандартным GAM и называют это GA2M - Generalized Additive Models plus Interactions. В результате GA2M значительно увеличивает точность прогнозов, но при этом сохраняет хорошую интерпретируемость.

Машина повышения объяснимости (EBM)

Хотя условия парного взаимодействия в GA2M повышают точность, это требует очень много времени и ресурсов процессора. Как EBM решает вычислительную проблему? Во-первых, он изучает каждую сглаживающую функцию f (), используя методы машинного обучения, такие как бэггинг и градиентное усиление (в EBM это называется Boosting). Во-вторых, каждая функция проверяется на соответствие всем остальным функциям, например, в круговом турнире. Таким образом, он может найти лучшую функцию функции f () для каждой функции и показать, как каждая функция влияет на прогноз модели для проблемы. В-третьих, EBM разрабатывает алгоритм GA2M на C ++ и Python и использует joblib для обеспечения многоядерного и многомашинного распараллеливания.

InterpretML - универсальный магазин

В проекте моделирования вы исследуете данные, обучаете модели, сравниваете производительность моделей, а затем исследуете прогнозы на глобальном и локальном уровне - все это вы получаете в модуле InterpretML. Это универсальный магазин, которым легко пользоваться. Однако я хочу напомнить вам, что никакая машина не может заменить творческий подход к проектированию функций. Отметьте Набор инструментов специалиста по данным для кодирования категориальных переменных в числовые, Избегайте этих смертельных ошибок моделирования, которые могут стоить вам карьеры, Разработка функций для обнаружения мошенничества в сфере здравоохранения и Разработка функций для кредитования. Выявление карточного мошенничества ». Или вы можете добавить закладку Учебные программы Dataman - развивайте свои навыки, двигайте карьеру «для всех статей.

Позвольте мне показать вам следующие шаги (A) - (F).

  • (A) Изучите данные
  • (B) Обучите машину объяснимого ускорения (EBM)
  • (C) Производительность: Как работает модель EBM?
  • (D) Глобальная интерпретируемость - что модель говорит обо всех данных
  • (E) Локальная интерпретируемость - что модель говорит об отдельных данных
  • (F) Панель инструментов: поместите все на панель инструментов - это лучшее

Сначала выполните pip install -U interpret, чтобы установить модуль.

Я буду использовать те же данные о качестве красного вина, чтобы вы могли сравнивать SHAP, LIME и InterpretML, как я делал в Объясните свою модель с помощью значений SHAP, Объясните любые модели с помощью значений SHAP - Используйте KernelExplainer или Объясните свою модель с LIME ». Целевое значение этого набора данных - оценка качества от низкого до высокого (0–10). Входными переменными являются содержание каждого образца вина, включая фиксированную кислотность, летучую кислотность, лимонную кислоту, остаточный сахар, хлориды, свободный диоксид серы, общий диоксид серы, плотность, pH, сульфаты и спирт. Всего 1599 образцов вин. Код в конце статьи или на этом гитхабе.

(A) Изучите данные

Результатом является раскрывающееся меню для «Сводки» и каждой переменной. Щелкните «Сводка», появится гистограмма целевой переменной.

Выберите первую переменную «Фиксированная кислотность». Он показывает корреляцию Пирсона с целевой переменной, за которой следует гистограмма «Фиксированная кислотность» синим цветом и гистограмма целевой переменной красным цветом.

(B) Тренируйте объяснимую машину ускорения (EBM)

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

(C) Как работает модель EBM?

Используйте RegressionPerf(), чтобы оценить производительность каждой модели на тестовых данных. Значение R-квадрата EBM составляет 0,32, что превосходит показатели модели линейной регрессии и модели дерева регрессии.

(D) Глобальная интерпретируемость - что модель говорит обо всех данных

Выберите «Сводка», чтобы отобразить общую важность переменных в порядке убывания (оранжевый цвет).

Выберите первую переменную Фиксированная кислотность. Появятся два графика: график частичной зависимости (PDP) и гистограмма Фиксированной кислотности. Гистограмма показывает, что большинство значений находятся в диапазоне от 6,0 до 10,0. PDP представляет предельное влияние функции на прогнозируемый результат модели машинного обучения (J. H. Friedman, 2001). Он сообщает, является ли связь между целью и объектом линейной, монотонной или более сложной. В этом примере PDP показывает, что существует очень умеренная линейная и положительная тенденция между Фиксированной кислотностью и целевой переменной, когда Фиксированная кислотность находится в диапазоне от 6,0 до 10,0.

(E) Локальная интерпретируемость - что модель говорит об отдельных данных

Возьмем первые пять наблюдений.

В раскрывающемся меню перечислены прогнозируемые и фактические значения для каждой записи.

Выбираем первую запись. Значение «сульфатов» составляет 0,76, «хлоридов» - 0,17 и так далее. Вклады всех переменных в эту запись ранжируются в порядке убывания, как показано ниже. «Сульфаты» положительно влияют на целевое «качество», а «Хлориды», «Плотность» и т. Д. Отрицательно влияют на целевое значение. Поскольку EBM является моделью, подобной GAM, прогноз представляет собой сумму всех коэффициентов.

(F) Поместите все на панель инструментов - это лучшее

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

Заголовок панели - «Интерпретировать панель мониторинга машинного обучения». В нем пять вкладок. Первая вкладка «Обзор» - это вводная страница. Вторая вкладка «Данные» представляет те же графики, которые описаны выше в разделе «(A) Изучить данные».

Вкладка «Данные»:

Вкладка «Производительность»:

Третья вкладка «Производительность» представляет те же графики, что описаны выше в разделе «(C) Как работает модель EBM».

Вкладка «Глобальные»:

Четвертая вкладка «Глобальный» представляет те же графики, которые описаны выше в разделе «(D) Глобальная интерпретируемость».

Вкладка «Локальные»:

Пятая вкладка «Локальные» представляет те же графики, которые описаны выше в разделе «(E) Локальная интерпретируемость».

Для вашего удобства я поместил все строки кода ниже. Код также доступен на этом гитхабе.

Если вы сочтете эту статью полезной, вы можете ознакомиться с другими статьями из серии «Объясняемость модели»:

Часть I: Объясните свою модель с помощью значений SHAP

Часть II: SHAP с более элегантными диаграммами

Часть III: Объяснение объяснимого ИИ

Часть IV: Объясните любые модели со значениями SHAP - используйте KernelExplainer

Часть V: Объясните свою модель с помощью LIME

Часть VI: Объясните свою модель с помощью Microsoft InterpretML

Часть VII: Ценности SHAP с моделями H2O