Socket
Socket
Sign inDemoInstall

alibi

Package Overview
Dependencies
0
Maintainers
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

alibi

Algorithms for monitoring and explaining machine learning models


Maintainers
4

Readme

Alibi Logo

Build Status Documentation Status codecov PyPI - Python Version PyPI - Package Version Conda (channel only) GitHub - License Slack channel


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.

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

Table of Contents

Installation and Usage

Alibi can be installed from:

  • PyPI or GitHub source (with pip)
  • Anaconda (with conda/mamba)

With pip

  • Alibi can be installed from PyPI:

    pip install alibi
    
  • Alternatively, the development version can be installed:

    pip install git+https://github.com/SeldonIO/alibi.git 
    
  • To take advantage of distributed computation of explanations, install alibi with ray:

    pip install alibi[ray]
    
  • For SHAP support, install alibi as follows:

    pip install alibi[shap]
    

With conda

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:

    mamba install -c conda-forge alibi
    
  • For distributed computing support:

    mamba install -c conda-forge alibi ray
    
  • For SHAP support:

    mamba install -c conda-forge alibi shap
    

Usage

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.

Supported Methods

The following tables summarize the possible use cases for each method.

Model Explanations

MethodModelsExplanationsClassificationRegressionTabularTextImagesCategorical featuresTrain set requiredDistributed
ALEBBglobal
Partial DependenceBB WBglobal
PD VarianceBB WBglobal
Permutation ImportanceBBglobal
AnchorsBBlocalFor Tabular
CEMBB* TF/KeraslocalOptional
CounterfactualsBB* TF/KeraslocalNo
Prototype CounterfactualsBB* TF/KeraslocalOptional
Counterfactuals with RLBBlocal
Integrated GradientsTF/KeraslocalOptional
Kernel SHAPBBlocal

global
Tree SHAPWBlocal

global
Optional
Similarity explanationsWBlocal

Model Confidence

These algorithms provide instance-specific scores measuring the model confidence for making a particular prediction.

MethodModelsClassificationRegressionTabularTextImagesCategorical FeaturesTrain set required
Trust ScoresBB✔(1)✔(2)Yes
Linearity MeasureBBOptional

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

Prototypes

These algorithms provide a distilled view of the dataset and help construct a 1-KNN interpretable classifier.

MethodClassificationRegressionTabularTextImagesCategorical FeaturesTrain set labels
ProtoSelectOptional

References and Examples

Citations

If you use alibi in your research, please consider citing it.

BibTeX entry:

@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}
}

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc