Explainable AI на собеседовании Data Scientist
Содержание:
Зачем нужен XAI
Explainable AI (XAI) — это набор методов, которые отвечают на вопрос «почему модель выдала именно такое предсказание». Градиентный бустинг или нейросеть внутри — чёрный ящик: на вход подали фичи, на выходе получили число, но что повлияло и как — неочевидно. На собесе Data Scientist тему поднимают почти всегда, когда речь идёт о продакшене в финтехе, медицине или скоринге: там модель без объяснимости просто не пустят в прод.
Зачем интерпретируемость нужна на практике:
- Доверие. Пользователи, бизнес и регуляторы должны понимать логику модели, иначе ей не будут пользоваться. Продукт-менеджер не выкатит скоринг, если не может объяснить клиенту отказ.
- Отладка. Когда модель ошибается, объяснение показывает, какая фича утянула предсказание не туда — часто это утечка таргета (data leakage) или мусорный признак.
- Комплаенс. GDPR закрепляет «право на объяснение» автоматического решения, а финансовые регуляторы (в РФ — ЦБ) прямо требуют обоснования отказа в кредите. Модель без интерпретации тут вне закона.
- Улучшение модели. Через объяснения находят предвзятые (biased) признаки — например, когда модель фактически принимает решение по полу или региону, хотя это запрещено.
Global vs local интерпретация
Первое, что стоит развести на собесе, — уровень объяснения.
Глобальная интерпретация описывает поведение модели в целом: какие фичи важны для всех предсказаний. Пример вывода: «доход — самый значимый признак в скоринге». Инструменты: важность признаков (feature importance), permutation importance, глобальный SHAP summary plot.
Локальная интерпретация объясняет одно конкретное предсказание: почему именно этому клиенту отказали. Пример: «этой заявке отказано из-за низкого кредитного рейтинга и трёх просрочек за год». Инструменты: SHAP-values для одной строки, LIME, counterfactuals.
Интервьюер часто ловит на подмене: кандидат называет глобальную важность фичи, когда вопрос был про конкретный кейс. Для объяснения отдельного решения клиенту нужен именно локальный метод.
SHAP
SHapley Additive exPlanations — метод атрибуции вкладов признаков, основанный на теории игр (значениях Шепли из кооперативных игр). Идея: каждый признак — «игрок», а предсказание — «выигрыш», который надо честно поделить между игроками. SHAP считает средний вклад фичи по всем возможным комбинациям признаков, поэтому у него есть строгие математические свойства (аддитивность, справедливость дележа).
import shap
explainer = shap.TreeExplainer(model) # для деревьев есть быстрая версия
shap_values = explainer.shap_values(X)
shap.summary_plot(shap_values, X) # глобальная картина важностиПлюсы:
- Теоретически обоснован — единственный метод с гарантией справедливого распределения вкладов.
- Работает и на глобальном, и на локальном уровне: одни и те же SHAP-values агрегируются в общую важность или разбирают одно предсказание.
- Для деревьев есть TreeSHAP — точная и быстрая версия, без сэмплирования.
Минусы: на больших данных и на моделях без специализированной версии (KernelSHAP) вычисление дорогое — сложность растёт экспоненциально с числом признаков, поэтому его аппроксимируют сэмплированием.
LIME
Local Interpretable Model-agnostic Explanations — метод, который объясняет одно предсказание, аппроксимируя модель локально простой линейной моделью. Вокруг интересующего объекта LIME генерирует возмущённые копии (случайно меняет значения фич), прогоняет их через чёрный ящик и обучает на этих точках взвешенную линейную регрессию. Коэффициенты этой локальной модели и есть объяснение.
from lime import lime_tabular
explainer = lime_tabular.LimeTabularExplainer(X_train)
exp = explainer.explain_instance(x, model.predict_proba) # объяснение одной строкиПлюсы: model-agnostic (работает с любой моделью — от бустинга до нейросети), интуитивно понятен, объяснение легко показать бизнесу.
Минусы: локальная линейная аппроксимация может не отражать истинное поведение модели, если поверхность решения рядом сильно нелинейна. Результат нестабилен — от запуска к запуску объяснения плавают из-за случайного сэмплирования. SHAP в этом смысле надёжнее.
Counterfactuals
Контрфактическое объяснение отвечает на вопрос «какое минимальное изменение входных данных изменило бы предсказание».
Клиенту отказано в кредите. Контрфактуал:
«Если бы доход был выше на 40 000 ₽, заявку бы одобрили».Это самый actionable-формат: он даёт пользователю конкретный шаг, а не абстрактную важность признака. Feature importance говорит «доход важен», а контрфактуал — «добавь столько-то, и решение изменится». Именно поэтому его любят в клиентских продуктах.
Инструменты: DiCE (Diverse Counterfactual Explanations) и Alibi. На собесе стоит упомянуть ограничение: контрфактуал должен быть достижимым (actionable) — совет «стать на 10 лет моложе» бесполезен, поэтому в оптимизацию закладывают ограничения на изменяемые признаки.
Как это спрашивают на собесе
Типичные формулировки, которые слышно на интервью:
- «В чём разница между SHAP и LIME, что выберешь для скоринга?» Ждут: SHAP теоретически обоснован и стабилен, LIME быстрее и проще, но нестабилен; для регуляторной задачи — SHAP.
- «Модель одобряет кредиты, клиент требует объяснить отказ. Что покажешь?» Ждут: локальное объяснение (SHAP-values или counterfactual для конкретной заявки), а не глобальную важность.
- «Feature importance из
.feature_importances_дерева — можно ей доверять?» Ждут: осторожность — встроенная важность у деревьев смещена в сторону признаков с большим числом уникальных значений; permutation importance или SHAP надёжнее. - «Как объяснимость помогает найти data leakage?» Ждут: если в топе важности вдруг оказалась фича, которой не должно быть в момент предсказания, — это утечка таргета.
Частые ошибки
- Путать корреляцию с причинностью. SHAP показывает вклад фичи в предсказание модели, а не причинно-следственную связь в реальном мире. Признак может быть важен для модели, но не влиять на исход в реальности.
- Показывать глобальную важность там, где нужна локальная. Клиенту важно его решение, а не средняя важность по всей выборке.
- Доверять встроенной feature importance деревьев. Она смещена и меняется от типа (gain / split / cover); для честной картины берут permutation importance или SHAP.
- Считать LIME стабильным. Из-за случайного сэмплирования объяснения плавают — для аудита и регулятора это проблема.
- Забывать про actionability контрфактуалов. Совет изменить неизменяемый признак (возраст, пол) юзеру бесполезен и вреден.
Связанные темы
- SHAP и interpretability для DS
- Permutation importance для DS
- Bias и fairness для DS
- Model card для DS
- Подготовка к собесу Data Scientist
FAQ
Когда выбрать SHAP, а когда LIME?
SHAP — когда важны стабильность и математическая корректность: скоринг, регуляторные задачи, аудит. LIME — когда нужно быстрое, дешёвое и наглядное объяснение на любой модели и допустима нестабильность. На практике в проде чаще выбирают SHAP из-за воспроизводимости.
Чем интерпретируемость отличается от объяснимости?
Интерпретируемая модель (interpretable) прозрачна по устройству — линейная регрессия, неглубокое дерево, где логику видно напрямую. Объяснимость (explainability) — это внешние методы поверх чёрного ящика (SHAP, LIME), которые постфактум объясняют предсказание. Первое встроено в модель, второе накручивается сверху.
Что важнее для регулятора — точность или объяснимость?
В финтехе и медицине объяснимость часто важнее нескольких процентов точности: модель, которую нельзя обосновать перед регулятором, не пустят в прод. Поэтому иногда сознательно берут чуть более слабую, но прозрачную модель, либо накрывают бустинг слоем SHAP-объяснений.
Можно ли объяснимостью поймать data leakage?
Да, это один из самых полезных приёмов. Если в топе важности оказывается признак, недоступный в момент предсказания или подозрительно сильно скоррелированный с таргетом, — почти наверняка утечка. Объяснимость тут работает как инструмент отладки, а не только отчётности.
Это официальная информация?
Нет. Статья основана на работах Lundberg & Lee 2017 (SHAP), Ribeiro et al. 2016 (LIME) и документации библиотек SHAP, LIME, DiCE и Alibi. Конкретные требования зависят от компании, домена и уровня позиции.
Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.