Какие функции важны и почему

Эта статья является продолжением моей серии статей об интерпретируемости моделей и объяснимом искусственном интеллекте. Если вы этого не сделали, я настоятельно рекомендую вам ознакомиться с первой статьей этой серии - Введение в интерпретацию модели машинного обучения », в которой рассматриваются основы интерпретируемости модели, начиная с того, что такое интерпретируемость модели, почему она нам нужна. основные различия интерпретации модели.

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

Что такое интерпретация глобальной модели?

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

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

Важность функции

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

Концепция и теория

Концепция важности функции действительно проста. Используя важность функции, мы измеряем важность функции, вычисляя увеличение ошибки данной модели после перестановки / перетасовки значений характеристик данной функции.

Функция является «важной», если ее перестановка увеличивает ошибку модели. Это связано с тем, что в этом случае модель в значительной степени полагалась на эту функцию для правильного прогноза. С другой стороны, функция считается «неважной», если ее перестановка не сильно влияет на ошибку или не меняет ее вообще.

Фишер, Рудин и Доминичи в своей статье 2018 года Все модели неверны, но многие полезны ... », что вместо случайного перемешивания функции вы должны разделить ее пополам и поменять половинки местами.

Преимущества

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

Недостатки

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

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

Для получения дополнительной информации я настоятельно рекомендую вам ознакомиться с электронной книгой Кристофа Мольнара Интерпретируемое машинное обучение, которая является отличным источником для изучения интерпретации моделей.

Пример и интерпретация

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

На этот вопрос можно ответить, используя важность функции.

Как я уже упоминал в начале статьи, мы будем работать над набором данных по сердечным заболеваниям. Вы можете найти весь код, использованный в этом руководстве, на моем Github или в виде ядра Kaggle.

Большинство библиотек, таких как Scikit-Learn, XGBoost, а также другие библиотеки машинного обучения, уже имеют свои собственные методы важности функций, но если вы хотите получить точные результаты при работе с моделями из нескольких библиотек, полезно использовать тот же метод для рассчитайте важность функции для каждой модели.

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

Чтобы вычислить важность функции, мы можем использовать метод permutation_importance. После расчета важности характеристик данной модели мы можем визуализировать ее с помощью метода show_weights.

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

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

Тем не менее, мы видим, что такие функции, как ca, sex и thal, весьма полезны для получения правильных прогнозов, в то время как возраст и cp не важны для получения правильных прогнозов.

Графики частичной зависимости

График частичной зависимости (короткий график PDP или PD) показывает предельное влияние, которое одна или две функции оказывают на прогнозируемый результат модели машинного обучения - Дж. Х. Фридман

Концепция и теория

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

Частичная зависимость легко вычисляется для категориальных признаков. Мы получаем оценку для каждой категории, заставляя все экземпляры данных иметь одну и ту же категорию. Например, если нас интересует, как пол влияет на вероятность сердечного заболевания, мы можем сначала заменить все значения в столбце «Пол» на значение «мужской» и усреднить прогнозы, а затем на то же, используя «женский» в качестве значения.

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

Пример и интерпретация

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

Чтобы установить PDPbox, введите:

pip install git+https://github.com/SauceCat/PDPbox.git

Теперь мы можем создать график частичной зависимости, чтобы проанализировать влияние разных полов на вероятность сердечного заболевания, используя методы pdp_isolate и pdp_plot.

Желто-черная линия дает нам средний эффект на прогнозы при изменении пола с sex_0 на sex_1. Только взглянув на эту строку, мы можем увидеть, что пациенты с полом sex_0 более подвержены сердечным заболеваниям, чем пациенты с полом sex_1.

Чтобы создать график частичной зависимости, который показывает нам влияние взаимодействия двух функций на цель, мы можем использовать методы pdp_interact и pdp_interact_plot.

Это может помочь нам найти взаимодействия между двумя функциями или даже отдельными значениями функций. Например, мы видим, что независимо от значения столбца «Пол» пациенты в возрасте от 55 до 63 лет имеют наименьшую вероятность сердечного заболевания.

Заключение

Интерпретация глобальной модели - это методы, которые помогают нам ответить на такие вопросы, как поведение модели в целом? Какие функции управляют прогнозами, а какие совершенно бесполезны для вашего дела.

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

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

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

Что дальше?

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

Это все из этой статьи. Если у вас есть какие-либо вопросы или вы просто хотите пообщаться со мной, не стесняйтесь оставлять комментарии ниже или связываться со мной в социальных сетях. Если вы хотите получать постоянные обновления о моем блоге, обязательно подписывайтесь на меня на Medium и присоединяйтесь к моей рассылке новостей.