#python #shap
#python #shap
Вопрос:
Я заинтересован в применении значений SHAP к некоторой работе, которую я выполняю в области машинного обучения, и замечаю, что существует несколько различных методов, которые можно выбрать на странице github: https://github.com/slundberg/shap
У меня есть модель нейронной сети, поэтому, насколько я понимаю, я могу использовать функции: DeepExplainer, GradientExplainer или KernelExplainer. Я знаю, что DeepExplainer основан на DeepLift, а GradientExplainer основан на интегрированных градиентах, но я действительно изо всех сил пытаюсь найти четкое изложение предположений, которые делает каждый метод. Кто-нибудь может прояснить, какие предположения делает каждый из этих методов, или указать мне в направлении источника для этого?
Чтобы было ясно, я не говорю о конкретной скорости каждого из них, я рассматриваю следующие моменты: принимает ли какой-либо из них какое-либо свойство модели? Предполагают ли они, что входные данные независимы? Какие из них подходят для сочетания однократно закодированных и непрерывных переменных? Короче говоря, я не могу найти четкую ссылку на это или даже четкую ссылку на то, что делает алгоритм GradientExplainer.
Комментарии:
1. У них есть
notebooks
папка, в которой четко объясняется каждый алгоритм, и показана версия python для объяснителя. Если этого недостаточно, вы можете просмотреть исходный код. Кроме того, пакет SHAP выглядит как проект Python для поддержки исследований, опубликованный на arXiv Скоттом Лундбергом и др.