SHAP

Материал из Энциклопедия интернет-маркетинга MarketWiki

SHAP (SHapley Additive exPlanations) - это метод интерпретации и объяснения предсказаний моделей машинного обучения, основанный на классической теории игр (концепция Шепли-значений из кооперативной теории игр). SHAP позволяет понять, какой вклад вносит каждый признак в конкретное предсказание модели, а также оценить общую важность признаков по всему набору данных.

Метод разработан Скоттом Лундбергом и Су-Ин Ли (Scott Lundberg & Su-In Lee) и впервые представлен в статье «A Unified Approach to Interpreting Model Predictions» на конференции NeurIPS 2017. С 2018 года библиотека SHAP (shap) на Python стала одним из самых популярных и надёжных инструментов для explainable AI (XAI) в мире.

Для интернет-маркетолога и аналитика данных SHAP особенно ценен: он помогает объяснить бизнесу и руководству, почему модель прогнозирует отток клиента, низкий LTV или высокую вероятность покупки именно у этого пользователя. Это критически важно при работе с моделями churn prediction, LTV-оценки, uplift-моделирования, рекомендательных систем и оптимизации рекламных кампаний - там, где от модели требуется не только точность, но и прозрачность и доверие.

Как работает SHAP

[править]

SHAP основан на Шепли-значениях (Shapley values) - концепции из теории игр, которая справедливо распределяет выигрыш между игроками в кооперативной игре. В контексте ML:

  • Модель = «кооперативная игра».
  • Признаки = «игроки».
  • Предсказание = «выигрыш» (разница между базовым предсказанием и фактическим).

SHAP-значение признака = его средний вклад в предсказание при всех возможных комбинациях других признаков.

Ключевые свойства SHAP (аксиомы, которые делают метод справедливым):

  • Локальная точность - сумма SHAP-значений + базовое предсказание = точное предсказание модели.
  • Отсутствие вклада при нулевом признаке - если признак = 0 (или базовое значение), его SHAP = 0.
  • Постоянство - если два признака вносят одинаковый вклад во всех комбинациях, их SHAP-значения равны.
  • Линейность - для комбинации моделей SHAP суммируется.

Основные типы SHAP-значений

[править]
Тип SHAP-значений Что объясняет Когда использовать Скорость расчёта
Kernel SHAP Любые модели (чёрный ящик) Малые датасеты, любые модели Медленно
Tree SHAP Деревянные модели (XGBoost, LightGBM, CatBoost, Случайный лес) Самый популярный случай в маркетинге Очень быстро
Deep SHAP / Gradient SHAP Нейросети (TensorFlow, PyTorch) Глубокое обучение Быстро на GPU
Gradient SHAP Дифференцируемые модели Когда нужна скорость Быстро
Partition SHAP Точные вычисления на малых данных Максимальная точность Медленно

В 99% маркетинговых задач (churn, LTV, uplift, рекомендации) используют Tree SHAP - он самый быстрый и точный для градиентного бустинга.

Применение SHAP в маркетинге

[править]
  • Объяснение churn-моделей. SHAP показывает: «этот клиент уйдёт с вероятностью 87%, потому что: мало покупок за последние 90 дней (+0.42), низкий средний чек (-0.18), отписался от рассылки (+0.31)».
  • Оценка важности признаков. Summary plot: какие факторы больше всего влияют на LTV по всей базе (например, RFM, канал привлечения, гео, возраст когорты).
  • Uplift-моделирование. SHAP для uplift показывает, кому именно акция принесёт прирост (treatment effect).
  • Рекомендательные системы. Объяснение, почему пользователю рекомендован конкретный товар (вклад признаков: категория, цена, история просмотров).
  • Сравнение моделей. SHAP позволяет оценить не только точность, но и интерпретируемость разных алгоритмов - например, почему градиентный бустинг даёт более стабильные объяснения, чем нейросеть.
  • Отчётность перед бизнесом. SHAP-графики (force plot, waterfall plot, beeswarm) - наглядный способ показать руководству и заказчикам, почему модель приняла то или иное решение.

Популярные библиотеки и инструменты

[править]
  • shap (Python) - основная библиотека (pip install shap).
  • shapviz - красивые визуализации.
  • DALEX / iml (R) - аналоги для R.
  • SHAP for XGBoost / LightGBM / CatBoost - встроенные методы get_booster().trees_to_dataframe() + TreeExplainer.
  • SHAP в MLflow / Azure ML / Databricks - логирование и визуализация.

Преимущества и ограничения SHAP

[править]

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

  • Теоретическая обоснованность (аксиомы Шепли).
  • Локальные и глобальные объяснения.
  • Работает с любыми моделями (через Kernel SHAP).
  • Очень быстро на деревьях (Tree SHAP - в секунды на миллионах строк).
  • Красивые и понятные визуализации.

Ограничения:

  • Kernel SHAP медленный на больших данных.
  • Требует осторожности при коррелированных признаках (SHAP распределяет вклад между ними).
  • Не всегда даёт «человечески понятные» объяснения для очень сложных моделей.

Связанные термины

[править]