Какие есть способы интерпретируемости моделей
Что проверяют
Умеете ли вы объяснить, почему модель приняла решение, и отличаете ли глобальные объяснения от локальных. Часто следом дают кейс: заказчик спрашивает, почему клиенту отказали в кредите, что вы ему покажете.
Как отвечать
Разложите методы по двум осям: объяснение всей модели или одного предсказания, подход под любую модель или под конкретный класс моделей.
- интерпретируемые сами по себе: линейная и логистическая регрессия (коэффициенты сравнимы только после стандартизации признаков), неглубокие деревья, GAM и Explainable Boosting Machine из InterpretML, которая по качеству часто близка к бустингу;
- permutation importance: перемешиваем признак на отложенной выборке и смотрим, насколько падает метрика. В scikit-learn это
sklearn.inspection.permutation_importance; - PDP и ICE: как в среднем и для каждого объекта меняется прогноз при изменении признака,
PartialDependenceDisplay. При сильно коррелированных признаках надёжнее ALE; - SHAP: вклад признаков по значениям Шепли, сумма вкладов равна отклонению прогноза от базового значения. Для деревьев есть быстрый
TreeExplainer, универсальныйKernelExplainerмедленный. Графики: beeswarm для общей картины, waterfall для одного клиента; - LIME: локальная линейная модель, обученная на возмущённых соседях объекта;
- контрфактические объяснения: минимальное изменение признаков, которое меняет решение, например через библиотеку DiCE. Бизнесу это понятнее всего: «при доходе на 15 тысяч выше заявку бы одобрили»;
- для нейросетей: Integrated Gradients, Grad-CAM для изображений, библиотека Captum для PyTorch.
Где спотыкаются
Выдают встроенный feature_importances_ деревьев за истину. Важность по уменьшению неоднородности завышает признаки с большим числом уникальных значений, permutation importance на отложенной выборке честнее.
Трактуют SHAP как причинность. Он объясняет поведение модели, а не мир: большой вклад признака не значит, что его изменение в жизни изменит исход.
Не проверяют стабильность объяснений. LIME на двух запусках с разным seed может выдать разные топ-признаки, поэтому его результаты стоит сверять с SHAP.