Alibi — это библиотека Python, предназначенная для проверки и интерпретации моделей машинного обучения. Цель библиотеки — предоставить высококачественные реализации методов «черного ящика», «белого ящика», локального и глобального объяснения для моделей классификации и регрессии.
Если вас интересует обнаружение выбросов, дрейф концепций или обнаружение состязательных экземпляров, ознакомьтесь с нашим дочерним проектом alibi-detect.
Привязка пояснений к изображениям | Интегрированные градиенты для текста |
Контрфактические примеры | Накопленные локальные эффекты |
Алиби можно установить из:
pip
)conda
/ mamba
)Alibi можно установить из PyPI:
pip install alibi
Альтернативно можно установить версию для разработчиков:
pip install git+https://github.com/SeldonIO/alibi.git
Чтобы воспользоваться преимуществами распределенного вычисления объяснений, установите alibi
с помощью ray
:
pip install alibi[ray]
Для поддержки SHAP установите alibi
следующим образом:
pip install alibi[shap]
Для установки из conda-forge рекомендуется использовать mamba, которую можно установить в базовую среду conda с помощью:
conda install mamba -n base -c conda-forge
Для стандартной установки Алиби:
mamba install -c conda-forge alibi
Для поддержки распределенных вычислений:
mamba install -c conda-forge alibi ray
Для поддержки SHAP:
mamba install -c conda-forge alibi shap
API объяснения алиби основан на scikit-learn
и состоит из отдельных шагов инициализации, подгонки и объяснения. Мы будем использовать объяснитель AnchorTabular для иллюстрации API:
from alibi . explainers import AnchorTabular
# initialize and fit explainer by passing a prediction function and any other required arguments
explainer = AnchorTabular ( predict_fn , feature_names = feature_names , category_map = category_map )
explainer . fit ( X_train )
# explain an instance
explanation = explainer . explain ( x )
Возвращаемое объяснение представляет собой объект Explanation
с атрибутами meta
и data
. meta
— это словарь, содержащий метаданные объяснителя, а также любые гиперпараметры и data
. Это словарь, содержащий все, что связано с вычисленным объяснением. Например, для алгоритма Anchor доступ к объяснению можно получить через explanation.data['anchor']
(или explanation.anchor
). Точная информация о доступных полях варьируется от метода к методу, поэтому мы рекомендуем читателю ознакомиться с типами поддерживаемых методов.
В следующих таблицах суммированы возможные варианты использования каждого метода.
Метод | Модели | Пояснения | Классификация | Регрессия | Табличный | Текст | Изображения | Категориальные особенности | Требуется комплект поездов | Распределенный |
---|---|---|---|---|---|---|---|---|---|---|
ЭЛЬ | ББ | глобальный | ✔ | ✔ | ✔ | |||||
Частичная зависимость | ББ ВБ | глобальный | ✔ | ✔ | ✔ | ✔ | ||||
ПД-дисперсия | ББ ВБ | глобальный | ✔ | ✔ | ✔ | ✔ | ||||
Важность перестановки | ББ | глобальный | ✔ | ✔ | ✔ | ✔ | ||||
Якоря | ББ | местный | ✔ | ✔ | ✔ | ✔ | ✔ | Для табличных | ||
СЕМ | BB* TF/Керас | местный | ✔ | ✔ | ✔ | Необязательный | ||||
Контрфакты | BB* TF/Керас | местный | ✔ | ✔ | ✔ | Нет | ||||
Контрфакты прототипа | BB* TF/Керас | местный | ✔ | ✔ | ✔ | ✔ | Необязательный | |||
Контрафакты с RL | ББ | местный | ✔ | ✔ | ✔ | ✔ | ✔ | |||
Интегрированные градиенты | ТФ/Керас | местный | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Необязательный | |
Ядро ШАП | ББ | местный глобальный | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
Дерево ШАП | ВБ | местный глобальный | ✔ | ✔ | ✔ | ✔ | Необязательный | |||
Объяснения сходства | ВБ | местный | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Эти алгоритмы предоставляют оценки для конкретного экземпляра, измеряющие уверенность модели в выполнении конкретного прогноза.
Метод | Модели | Классификация | Регрессия | Табличный | Текст | Изображения | Категориальные особенности | Требуется комплект поездов |
---|---|---|---|---|---|---|---|---|
Рейтинги доверия | ББ | ✔ | ✔ | ✔(1) | ✔(2) | Да | ||
Мера линейности | ББ | ✔ | ✔ | ✔ | ✔ | Необязательный |
Ключ:
Эти алгоритмы обеспечивают четкое представление набора данных и помогают построить интерпретируемый классификатор 1-KNN.
Метод | Классификация | Регрессия | Табличный | Текст | Изображения | Категориальные особенности | Этикетки поездов |
---|---|---|---|---|---|---|---|
Протоселект | ✔ | ✔ | ✔ | ✔ | ✔ | Необязательный |
Накопленные локальные эффекты (ALE, Apley and Zhu, 2016)
Частичная зависимость (Дж. Х. Фридман, 2001)
Частичная зависимость дисперсии (Greenwell et al., 2018)
Важность перестановки (Брейман, 2001; Фишер и др., 2018)
Якорные пояснения (Рибейро и др., 2018)
Метод контрастивного объяснения (CEM, Dhurandhar et al., 2018)
Контрфактические объяснения (расширение Wachter et al., 2017)
Контрафактические объяснения, основанные на прототипах (Ван Луверен и Клэйз, 2019)
Независимые от модели контрфактические объяснения с помощью RL (Samoilescu et al., 2021)
Интегрированные градиенты (Сундарараджан и др., 2017)
Объяснения аддитивности ядра Шепли (Lundberg et al., 2017)
Пояснения к аддитивам дерева Шепли (Lundberg et al., 2020)
Показатели доверия (Цзян и др., 2018 г.)
Мера линейности
Протоселект
Объяснения сходства
Если вы используете алиби в своем исследовании, пожалуйста, рассмотрите возможность сослаться на него.
Запись в BibTeX:
@article{JMLR:v22:21-0017,
author = {Janis Klaise and Arnaud Van Looveren and Giovanni Vacanti and Alexandru Coca},
title = {Alibi Explain: Algorithms for Explaining Machine Learning Models},
journal = {Journal of Machine Learning Research},
year = {2021},
volume = {22},
number = {181},
pages = {1-7},
url = {http://jmlr.org/papers/v22/21-0017.html}
}