SHAP
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 распределяет вклад между ними).
- Не всегда даёт «человечески понятные» объяснения для очень сложных моделей.
