
Alibi is a Python library aimed at machine learning model inspection and interpretation. The focus of the library is to provide high-quality implementations of black-box, white-box, local and global explanation methods for classification and regression models. * Documentation
If you're interested in outlier detection, concept drift or adversarial instance detection, check out our sister project alibi-detect.
Anchor explanations for images
|
Integrated Gradients for text
|
Counterfactual examples
|
Accumulated Local Effects
|
Alibi can be installed from:
pip)conda/mamba)bash
pip install alibi
Alternatively, the development version can be installed:
bash
pip install git+https://github.com/SeldonIO/alibi.git
To take advantage of distributed computation of explanations, install alibi with ray:
bash
pip install alibi[ray]
For SHAP support, install alibi as follows:
bash
pip install alibi[shap]
To install from conda-forge it is recommended to use mamba, which can be installed to the base conda enviroment with:
conda install mamba -n base -c conda-forge
For the standard Alibi install:
bash
mamba install -c conda-forge alibi
For distributed computing support:
bash
mamba install -c conda-forge alibi ray
For SHAP support:
bash
mamba install -c conda-forge alibi shap
The alibi explanation API takes inspiration from scikit-learn, consisting of distinct initialize,
fit and explain steps. We will use the AnchorTabular
explainer to illustrate the 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)
The explanation returned is an Explanation object with attributes meta and data. meta is a dictionary
containing the explainer metadata and any hyperparameters and data is a dictionary containing everything
related to the computed explanation. For example, for the Anchor algorithm the explanation can be accessed
via explanation.data['anchor'] (or explanation.anchor). The exact details of available fields varies
from method to method so we encourage the reader to become familiar with the
types of methods supported.
The following tables summarize the possible use cases for each method.
| Method | Models | Explanations | Classification | Regression | Tabular | Text | Images | Categorical features | Train set required | Distributed |
|---|---|---|---|---|---|---|---|---|---|---|
| ALE | BB | global | ✔ | ✔ | ✔ | |||||
| Partial Dependence | BB WB | global | ✔ | ✔ | ✔ | ✔ | ||||
| PD Variance | BB WB | global | ✔ | ✔ | ✔ | ✔ | ||||
| Permutation Importance | BB | global | ✔ | ✔ | ✔ | ✔ | ||||
| Anchors | BB | local | ✔ | ✔ | ✔ | ✔ | ✔ | For Tabular | ||
| CEM | BB* TF/Keras | local | ✔ | ✔ | ✔ | Optional | ||||
| Counterfactuals | BB* TF/Keras | local | ✔ | ✔ | ✔ | No | ||||
| Prototype Counterfactuals | BB* TF/Keras | local | ✔ | ✔ | ✔ | ✔ | Optional | |||
| Counterfactuals with RL | BB | local | ✔ | ✔ | ✔ | ✔ | ✔ | |||
| Integrated Gradients | TF/Keras | local | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Optional | |
| Kernel SHAP | BB | local |
global | ✔ | ✔ | ✔ | | | ✔ | ✔ | ✔ | | Tree SHAP | WB | local
global | ✔ | ✔ | ✔ | | | ✔ | Optional | | | Similarity explanations | WB | local | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
These algorithms provide instance-specific scores measuring the model confidence for making a particular prediction.
| Method | Models | Classification | Regression | Tabular | Text | Images | Categorical Features | Train set required |
|---|---|---|---|---|---|---|---|---|
| Trust Scores | BB | ✔ | ✔ | ✔(1) | ✔(2) | Yes | ||
| Linearity Measure | BB | ✔ | ✔ | ✔ | ✔ | Optional |
Key: - BB - black-box (only require a prediction function) - BB* - black-box but assume model is differentiable - WB - requires white-box model access. There may be limitations on models supported - TF/Keras - TensorFlow models via the Keras API - Local - instance specific explanation, why was this prediction made? - Global - explains the model with respect to a set of instances - (1) - depending on model - (2) - may require dimensionality reduction
These algorithms provide a distilled view of the dataset and help construct a 1-KNN interpretable classifier.
| Method | Classification | Regression | Tabular | Text | Images | Categorical Features | Train set labels |
|---|---|---|---|---|---|---|---|
| ProtoSelect | ✔ | ✔ | ✔ | ✔ | ✔ | Optional |
Examples: California housing dataset, Iris dataset
Partial Dependence (J.H. Friedman, 2001)
Examples: Bike rental
Partial Dependence Variance(Greenwell et al., 2018)
Examples: Friedman’s regression problem
Permutation Importance(Breiman, 2001; Fisher et al., 2018)
Examples: Who's Going to Leave Next?
Anchor explanations (Ribeiro et al., 2018)
$ claude mcp add alibi \
-- python -m otcore.mcp_server <graph>