Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

ibreakdown - model agnostic explanations with interactions

Project description

ibreakdown

https://travis-ci.com/jettify/ibreakdown.svg?branch=master https://codecov.io/gh/jettify/ibreakdown/branch/master/graph/badge.svg https://img.shields.io/pypi/pyversions/ibreakdown.svg https://img.shields.io/pypi/v/ibreakdown.svg

ibreakdown is model agnostic predictions explainer with interactions support, library can show contribution of each feature in your prediction value.

SHAP or LIME consider only local additive feature attributions, when ibreakdown also evaluates local feature interactions.

Algorithm

Algorithm is based on ideas describe in paper “iBreakDown: Uncertainty of Model Explanations for Non-additive Predictive Models” https://arxiv.org/abs/1903.11420 and reference implementation in R (iBreakDown)

Intuition behind algorithm is following:

The algorithm works in a similar spirit as SHAP or Break Down but is not
restricted to additive effects. The intuition is the following:

1. Calculate a single-step additive contribution for each feature.
2. Calculate a single-step contribution for every pair of features. Subtract additive contribution to assess the interaction specific contribution.
3. Order interaction effects and additive effects in a list that is used to determine sequential contributions.

This simple intuition may be generalized into higher order interactions.

In depth explanation can be found in algorithm authors free book: Predictive Models: Explore, Explain, and Debug https://pbiecek.github.io/PM_VEE/iBreakDown.html

Simple example

# model = RandomForestClassifier(...)
explainer = ClassificationExplainer(model)
classes = ['Deceased', 'Survived']
explainer.fit(X_train, columns, classes)
exp = explainer.explain(observation)
exp.print()

Please check full Titanic example here: https://github.com/jettify/ibreakdown/blob/master/examples/titanic.py

+------------------------------------+-----------------+--------------------+--------------------+
| Feature Name                       | Feature Value   |   Contrib:Deceased |   Contrib:Survived |
+------------------------------------+-----------------+--------------------+--------------------|
| intercept                          |                 |          0.613286  |          0.386714  |
| Sex                                | female          |         -0.305838  |          0.305838  |
| Pclass                             | 3               |          0.242448  |         -0.242448  |
| Fare                               | 7.7375          |         -0.119392  |          0.119392  |
| Siblings/Spouses Aboard            | 0               |         -0.0372811 |          0.0372811 |
| ('Age', 'Parents/Children Aboard') | [28.0 0]        |          0.0122196 |         -0.0122196 |
| PREDICTION                         |                 |          0.405443  |          0.594557  |
+------------------------------------+-----------------+--------------------+--------------------+

Features

  • Supports predictions explanations for classification and regression
  • Easy to use API.
  • Works with pandas and numpy
  • Support interactions between features

Installation

Installation process is simple, just:

$ pip install ibreakdown

Requirements

CHANGES

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ibreakdown, version 0.0.1a4
Filename, size File type Python version Upload date Hashes
Filename, size ibreakdown-0.0.1a4.tar.gz (9.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page