/Skater

Python Library for Model Interpretation/Explanations

Primary LanguagePythonMIT LicenseMIT

Skater

Skater is a unified framework to enable Model Interpretation for all forms of model to help one build an Interpretable machine learning system often needed for real world use-cases(** we are actively working towards to enabling faithful interpretability for all forms models). It is an open source python library designed to demystify the learned structures of a black box model both globally(inference on the basis of a complete data set) and locally(inference about an individual prediction).

The project was started as a research idea to find ways to enable better interpretability(preferably human interpretability) to predictive "black boxes" both for researchers and practioners. The project is still in beta phase.

Build Status https://coveralls.io/repos/github/datascienceinc/Skater/badge.svg?branch=master

HighLevel Design

https://github.com/datascienceinc/Skater/blob/master/presentations/designs/interpretable_mls.png

Skater in action on an example image classification problem

https://github.com/datascienceinc/Skater/blob/master/presentations/designs/example_inference.png

📖 Documentation

Overview Introduction to the Skater library
Installing How to install the Skater library
Tutorial Steps to use Skater effectively.
API Reference The detailed reference for Skater's API.
Contributing Guide to contributing to the Skater project.
Examples Interactive notebook examples

💬 Feedback/Questions

Feature Requests/Bugs GitHub issue tracker
Usage questions Gitter chat
General discussion Gitter chat

Install Skater

For detailed information on the dependencies and intallation instruction check out installing skater.

pip

Option 1: without rule lists and without deepinterpreter
pip install -U skater

Option 2: without rule lists and with deep-interpreter:
1. Ubuntu: pip3 install --upgrade tensorflow (follow instructions at https://www.tensorflow.org/install/ for details and          best practices)
2. sudo pip install keras
3. pip install -U skater==1.1.2

Option 3: For everything included
1. conda install gxx_linux-64
2. Ubuntu: pip3 install --upgrade tensorflow (follow instructions https://www.tensorflow.org/install/ for
   details and best practices)
3. sudo pip install keras
4. sudo pip install -U --no-deps --force-reinstall --install-option="--rl=True" skater==1.1.2

To get the latest changes try cloning the repo and use the below mentioned commands to get started,

1. conda install gxx_linux-64
2. Ubuntu: pip3 install --upgrade tensorflow (follow instructions https://www.tensorflow.org/install/ for
   details and best practices)
3. sudo pip install keras
4. git clone the repo
5. sudo python setup.py install --ostype=linux-ubuntu --rl=True

Testing

1. If repo is cloned:

python skater/tests/all_tests.py

2. If pip installed:

python -c "from skater.tests.all_tests import run_tests; run_tests()"

Usage and Examples

Since the project is under active development, the best way to understand usage would be to follow the examples mentioned in the Gallery of Interactive Notebook.

Algorithms

Scope of Interpretation Algorithms
Global Interpretation Model agnostic Feature Importance
Global Interpretation Model agnostic Partial Dependence Plots
Local Interpretation Local Interpretable Model Explanation(LIME)
Local Interpretation DNNs
Global and Local Interpretation

Scalable Bayesian Rule Lists

Tree Surrogates

Citation

If you decide to use Skater to resolve interpretability needs, please consider citing the project with the below mentioned DOI,

@misc{pramit_choudhary_2018_1198885,
  author       = {Pramit Choudhary and
                  Aaron Kramer and
                  datascience.com team, contributors},
  title        = {{Skater: Model Interpretation Library}},
  month        = mar,
  year         = 2018,
  doi          = {10.5281/zenodo.1198885},
  url          = {https://doi.org/10.5281/zenodo.1198885}
}

R Client

Refer to https://github.com/christophM/iml

Books and blogs

  1. Interpreting predictive models with Skater: Unboxing model opacity
  2. Molnar Christoph, Interpretable Machine Learning
  3. Sarkar Dipanjan et al., Practical Machine Learning with Python
  4. O'Reilly article(part1) - Interpreting predictive models with Skater: Unboxing model opacity