Alibi est une bibliothèque Python destinée à l'inspection et à l'interprétation de modèles d'apprentissage automatique. L'objectif de la bibliothèque est de fournir des implémentations de haute qualité de méthodes d'explication en boîte noire, en boîte blanche, locales et globales pour les modèles de classification et de régression.
Si vous êtes intéressé par la détection des valeurs aberrantes, la dérive des concepts ou la détection des instances contradictoires, consultez notre projet sœur alibi-detect.
Explications d'ancrage pour les images | Dégradés intégrés pour le texte |
Exemples contrefactuels | Effets locaux accumulés |
Alibi peut être installé à partir de :
pip
)conda
/ mamba
)Alibi peut être installé depuis PyPI :
pip install alibi
Alternativement, la version de développement peut être installée :
pip install git+https://github.com/SeldonIO/alibi.git
Pour profiter du calcul distribué des explications, installez alibi
avec ray
:
pip install alibi[ray]
Pour la prise en charge de SHAP, installez alibi
comme suit :
pip install alibi[shap]
Pour installer à partir de conda-forge, il est recommandé d'utiliser mamba, qui peut être installé dans l'environnement de base de conda avec :
conda install mamba -n base -c conda-forge
Pour l'installation standard d'Alibi :
mamba install -c conda-forge alibi
Pour la prise en charge de l'informatique distribuée :
mamba install -c conda-forge alibi ray
Pour la prise en charge SHAP :
mamba install -c conda-forge alibi shap
L'API d'explication d'alibi s'inspire de scikit-learn
, composée d'étapes distinctes d'initialisation, d'ajustement et d'explication. Nous utiliserons l'explicateur AnchorTabular pour illustrer l'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 )
L'explication renvoyée est un objet Explanation
avec les attributs meta
et data
. meta
est un dictionnaire contenant les métadonnées explicatives et tous les hyperparamètres et data
sont un dictionnaire contenant tout ce qui concerne l'explication calculée. Par exemple, pour l'algorithme Anchor, l'explication est accessible via explanation.data['anchor']
(ou explanation.anchor
). Les détails exacts des champs disponibles varient d'une méthode à l'autre, nous encourageons donc le lecteur à se familiariser avec les types de méthodes prises en charge.
Les tableaux suivants résument les cas d’utilisation possibles pour chaque méthode.
Méthode | Modèles | Explications | Classification | Régression | Tabulaire | Texte | Images | Caractéristiques catégorielles | Coffret requis | Distribué |
---|---|---|---|---|---|---|---|---|---|---|
ALE | BB | mondial | ✔ | ✔ | ✔ | |||||
Dépendance partielle | BB WB | mondial | ✔ | ✔ | ✔ | ✔ | ||||
Écart PD | BB WB | mondial | ✔ | ✔ | ✔ | ✔ | ||||
Importance des permutations | BB | mondial | ✔ | ✔ | ✔ | ✔ | ||||
Ancres | BB | locale | ✔ | ✔ | ✔ | ✔ | ✔ | Pour tabulaire | ||
CEM | BB*TF/Keras | locale | ✔ | ✔ | ✔ | Facultatif | ||||
Contrefactuels | BB*TF/Keras | locale | ✔ | ✔ | ✔ | Non | ||||
Prototypes contrefactuels | BB*TF/Keras | locale | ✔ | ✔ | ✔ | ✔ | Facultatif | |||
Contrefactuels avec RL | BB | locale | ✔ | ✔ | ✔ | ✔ | ✔ | |||
Dégradés intégrés | TF/Kéras | locale | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Facultatif | |
Forme du noyau | BB | locale mondial | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
Arbre SHAP | BM | locale mondial | ✔ | ✔ | ✔ | ✔ | Facultatif | |||
Explications de similarité | BM | locale | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Ces algorithmes fournissent des scores spécifiques à une instance mesurant la confiance du modèle pour effectuer une prédiction particulière.
Méthode | Modèles | Classification | Régression | Tabulaire | Texte | Images | Caractéristiques catégorielles | Coffret requis |
---|---|---|---|---|---|---|---|---|
Scores de confiance | BB | ✔ | ✔ | ✔(1) | ✔(2) | Oui | ||
Mesure de linéarité | BB | ✔ | ✔ | ✔ | ✔ | Facultatif |
Clé:
Ces algorithmes fournissent une vue distillée de l'ensemble de données et aident à construire un classificateur interprétable 1-KNN.
Méthode | Classification | Régression | Tabulaire | Texte | Images | Caractéristiques catégorielles | Étiquettes des rames |
---|---|---|---|---|---|---|---|
ProtoSélectionner | ✔ | ✔ | ✔ | ✔ | ✔ | Facultatif |
Effets locaux accumulés (ALE, Apley et Zhu, 2016)
Dépendance partielle (JH Friedman, 2001)
Variance de dépendance partielle (Greenwell et al., 2018)
Importance de la permutation (Breiman, 2001 ; Fisher et al., 2018)
Explications d'ancrage (Ribeiro et al., 2018)
Méthode d'explication contrastive (CEM, Dhurandhar et al., 2018)
Explications contrefactuelles (extension de Wachter et al., 2017)
Explications contrefactuelles guidées par des prototypes (Van Looveren et Klaise, 2019)
Explications contrefactuelles indépendantes du modèle via RL (Samoilescu et al., 2021)
Dégradés intégrés (Sundararajan et al., 2017)
Explications des additifs Kernel Shapley (Lundberg et al., 2017)
Explications des additifs Tree Shapley (Lundberg et al., 2020)
Scores de confiance (Jiang et al., 2018)
Mesure de linéarité
ProtoSélectionner
Explications de similarité
Si vous utilisez un alibi dans vos recherches, pensez à le citer.
Entrée 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}
}