Как избежать черного ящика машинного обучения с помощью SHAP

Я считаю, что все мы согласны с идеей о том, что машинное обучение значительно улучшило технические продукты и, как следствие, повысило благосостояние всех нас. Однако компании и исследователи, работающие над машинным обучением, сталкиваются с одной огромной проблемой: «алгоритмами черного ящика».

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

Имея это в виду, очень хорошим инструментом, который мне недавно пришлось изучить, был SHAP, что означает аддитивные объяснения Шапли.

Что такое SHAP?

Эта структура позволяет любому алгоритму машинного обучения, по сути, объяснять, предоставляя интуитивно понятную и интерактивную визуализацию, цель которой - показать, какие функции более актуальны для определенного прогноза и для модели в целом.

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

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

Чему нас учит SHAP?

Я начал с Бостонского набора данных (значения аббревиатур функций можно найти по ссылке). Этот набор данных содержит собранную Службой переписи США информацию о жилье в районе Бостона, где целевой переменной является медианная стоимость дома. Я обучил ученика XGBoost работе с этим набором данных с оптимизацией гиперпараметров с помощью GridSearch.

Теперь давайте посмотрим на результат SHAP.

Объяснение предсказаний

Эта первая диаграмма направлена ​​на объяснение индивидуальных прогнозов. В данном случае я выбрал первый образец тестового набора. Мы видим, что модель предсказала среднюю стоимость дома 16,51 (16 510 $). Кроме того, мы можем видеть, какие функции способствуют увеличению этого значения (красный) или меньшему (синий). В этом случае LSTAT, равный 4,98, является наиболее определяющей функцией, которая подтверждает целевую переменную, то есть улучшает значение прогноза. С другой стороны, значения RM, NOX и DIS ухудшают прогноз.

Объяснение модели

Эта диаграмма предназначена для объяснения модели в целом. По сути, все образцы нанесены на ось x (в данном случае упорядочены по сходству, но это можно изменить в поле со списком), а их прогнозные значения нанесены на ось y. Кроме того, он имеет индивидуальный вклад каждой функции для каждого образца на основе значения функции.

В этом примере я выбрал образец номер 60 (ось x), который имеет значение прогноза 10,01 (ось y) и где RM и LSTAT являются наиболее важными функциями - хотя они опускают прогноз. Однако, просто наведя курсор на другие образцы, можно увидеть, как меняются значения характеристик и их влияние, а также прогнозы.

График зависимости

На этой диаграмме мы можем увидеть, как 2 функции связаны друг с другом с точки зрения их влияния на модель, измеренного с помощью значения SHAP (мера релевантности функции в модели). Значения SHAP также можно рассматривать как нечетные - значение -2 означает, что наблюдение за этой функцией снижает ваши логические шансы на выигрыш на 2, где «выигрыш» здесь просто означает наличие более дорогого дома.

В этом случае мы видим, что для значений RM ниже 7 (ось x) значения SHAP (ось y) практически всегда отрицательны, что означает, что более низкие значения этой функции снижают значение прогноза. Кроме того, если у вас есть RM, равный 6, тогда вы можете иметь значение SHAP от -2,5 до 0, в зависимости от значения RAD. Это означает, что иметь меньше комнат (RM) менее плохо, если у вас также есть хорошая доступность к автомагистралям (RAD). Обратите внимание, что этот вертикальный спред сильно сужается при RM ниже 5 и выше 7, что доказывает, что другие функции (например, RAD) теряют значительную часть влияния, которое они оказали.

Сводный график

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

В качестве примера мы видим, что LSTAT, безусловно, является наиболее влиятельной функцией, будь то положительно или отрицательно. В этом случае более низкие значения LSTAT, по-видимому, положительно влияют на прогноз. Мы также можем видеть, что RM имеет противоположное поведение - более высокие значения приводят к более высоким значениям прогноза.

Все это имеет смысл, если мы рассмотрим значение аббревиатур. Ожидается, что более низкий процент более низкого статуса населения (LSTAT) и большее количество комнат (RM) приведут к более дорогим домам.

Завершение…

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

ПОДСКАЗКА: также взгляните на пост Скотта Лундберга на TDS, он один из первых создателей SHAP 😉