The AI Explainability 360 toolkit is an open-source library that supports interpretability and explainability of datasets and machine learning models. The AI Explainability 360 Python package includes a comprehensive set of algorithms that cover different dimensions of explanations along with proxy explainability metrics.
The AI Explainability 360 interactive experience provides a gentle introduction to the concepts and capabilities by walking through an example use case for different consumer personas. The tutorials and example notebooks offer a deeper, data scientist-oriented introduction. The complete API is also available.
There is no single approach to explainability that works best. There are many ways to explain: data vs. model, directly interpretable vs. post hoc explanation, local vs. global, etc. It may therefore be confusing to figure out which algorithms are most appropriate for a given use case. To help, we have created some guidance material and a chart that can be consulted.
We have developed the package with extensibility in mind. This library is still in development. We encourage the contribution of your explainability algorithms and metrics. To get started as a contributor, please join the AI Explainability 360 Community on Slack by requesting an invitation here. Please review the instructions to contribute code here.
- ProtoDash (Gurumoorthy et al., 2019)
- Disentangled Inferred Prior VAE (Kumar et al., 2018)
- ProtoDash (Gurumoorthy et al., 2019)
- Contrastive Explanations Method (Dhurandhar et al., 2018)
- Contrastive Explanations Method with Monotonic Attribute Functions (Luss et al., 2019)
- LIME (Ribeiro et al. 2016, Github)
- SHAP (Lundberg, et al. 2017, Github)
- Teaching AI to Explain its Decisions (Hind et al., 2019)
- Boolean Decision Rules via Column Generation (Light Edition) (Dash et al., 2018)
- Generalized Linear Rule Models (Wei et al., 2019)
- ProfWeight (Dhurandhar et al., 2018)
- Faithfulness (Alvarez-Melis and Jaakkola, 2018)
- Monotonicity (Luss et al., 2019)
Supported Configurations:
OS | Python version |
---|---|
macOS | 3.6 |
Ubuntu | 3.6 |
Windows | 3.6 |
AI Explainability 360 requires specific versions of many Python packages which may conflict with other projects on your system. A virtual environment manager is strongly recommended to ensure dependencies may be installed safely. If you have trouble installing the toolkit, try this first.
Conda is recommended for all configurations though Virtualenv is generally interchangeable for our purposes. Miniconda is sufficient (see the difference between Anaconda and Miniconda if you are curious) and can be installed from here if you do not already have it.
Then, to create a new Python 3.6 environment, run:
conda create --name aix360 python=3.6
conda activate aix360
The shell should now look like (aix360) $
. To deactivate the environment, run:
(aix360)$ conda deactivate
The prompt will return back to $
or (base)$
.
Note: Older versions of conda may use source activate aix360
and source deactivate
(activate aix360
and deactivate
on Windows).
Clone the latest version of this repository:
(aix360)$ git clone https://github.com/Trusted-AI/AIX360
If you'd like to run the examples and tutorial notebooks, download the datasets now and place them in their respective folders as described in aix360/data/README.md.
Then, navigate to the root directory of the project which contains setup.py
file and run:
(aix360)$ pip install -e .
- Under
AIX360
directory build the container image from Dockerfile usingdocker build -t aix360_docker .
- Start the container image using command
docker run -it -p 8888:8888 aix360_docker:latest bash
assuming port 8888 is free on your machine. - Inside the container start jupuyter lab using command
jupyter lab --allow-root --ip 0.0.0.0 --port 8888 --no-browser
- Access the sample tutorials on your machine using URL
localhost:8888
If you would like to quickly start using the AI explainability 360 toolkit without cloning this repository, then you can install the aix360 pypi package as follows.
(your environment)$ pip install aix360
If you follow this approach, you may need to download the notebooks in the examples folder separately.
The examples
directory contains a diverse collection of jupyter notebooks
that use AI Explainability 360 in various ways. Both examples and tutorial notebooks illustrate
working code using the toolkit. Tutorials provide additional discussion that walks
the user through the various steps of the notebook. See the details about
tutorials and examples here.
A technical description of AI Explainability 360 is available in this paper. Below is the bibtex entry for this paper.
@misc{aix360-sept-2019,
title = "One Explanation Does Not Fit All: A Toolkit and Taxonomy of AI Explainability Techniques",
author = {Vijay Arya and Rachel K. E. Bellamy and Pin-Yu Chen and Amit Dhurandhar and Michael Hind
and Samuel C. Hoffman and Stephanie Houde and Q. Vera Liao and Ronny Luss and Aleksandra Mojsilovi\'c
and Sami Mourad and Pablo Pedemonte and Ramya Raghavendra and John Richards and Prasanna Sattigeri
and Karthikeyan Shanmugam and Moninder Singh and Kush R. Varshney and Dennis Wei and Yunfeng Zhang},
month = sept,
year = {2019},
url = {https://arxiv.org/abs/1909.03012}
}
- Introductory video to AI Explainability 360 by Vijay Arya and Amit Dhurandhar, September 5, 2019 (35 mins)
AIX360 is built with the help of several open source packages. All of these are listed in setup.py and some of these include:
- Tensorflow https://www.tensorflow.org/about/bib
- Pytorch https://github.com/pytorch/pytorch
- scikit-learn https://scikit-learn.org/stable/about.html
Please view both the LICENSE file and the folder supplementary license present in the root directory for license information.