Лучше интерпретируйте и объясните свои прогнозы машинного обучения с помощью этого трюка

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

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

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

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

  1. Создайте таблицу с входными функциями и прогнозами. Начните с создания фрейма данных pandas, который содержит ваши входные функции в виде столбцов и прогнозы вашей модели в виде строк.
  2. Вычисление значений Шепли. Используйте библиотеку или инструмент, поддерживающий вычисление значений Шепли, например библиотеку SHAP в Python, для вычисления значений Шепли для каждой функции и прогноза. Эти значения будут использоваться для окрашивания ячеек таблицы на следующем шаге.
  3. Выделение ячеек таблицы на основе значений Shapley. Назначьте цветовой градиент ячейкам таблицы на основе соответствующих значений Shapley. Например, вы можете использовать расходящуюся цветовую шкалу, где красный цвет представляет положительные значения Шепли (т. е. функции, которые увеличивают прогноз), а синий — отрицательные значения (т. е. функции, которые уменьшают прогноз). Интенсивность цвета должна отражать величину значения Шепли, а более яркие цвета указывают на более значительное влияние на прогноз.

Давайте подробнее рассмотрим несколько значений:

Этот конкретный пример был построен на основе модели оттока, которую я обсуждаю в этом посте.

Если вы посмотрите на крайний правый столбец, то увидите, что клиенты с более низким уровнем использования продукта (в данном случае количество уникальных пользователей за последний месяц) выделены красным цветом, тогда как клиенты с более высоким уровнем использования продукта выделены синим цветом. Это выделение говорит нам о том, что наша модель выводит более высокую вероятность оттока клиентов с меньшим количеством пользователей. Имеет смысл!

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

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

Я покажу вам, как копаться и раскрывать эти взаимодействия в моем следующем посте. А пока перейдите здесь, чтобы увидеть код, и подпишитесь на меня в Medium и LinkedIn, чтобы получить дополнительные полезные советы по науке о данных. Спасибо за прочтение!