https://github.com/eli5-org/eli5
A library for debugging/inspecting machine learning classifiers and explaining their predictions
https://github.com/eli5-org/eli5
Last synced: about 1 month ago
JSON representation
A library for debugging/inspecting machine learning classifiers and explaining their predictions
- Host: GitHub
- URL: https://github.com/eli5-org/eli5
- Owner: eli5-org
- License: mit
- Created: 2021-01-20T08:02:26.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-04-20T16:38:15.000Z (7 months ago)
- Last Synced: 2025-10-10T22:59:40.539Z (about 2 months ago)
- Language: Jupyter Notebook
- Size: 68.5 MB
- Stars: 312
- Watchers: 3
- Forks: 45
- Open Issues: 12
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-mlops - ELI5 - Python package which helps to debug machine learning classifiers and explain their predictions. (Model Interpretability)
README
====
ELI5
====
.. image:: https://img.shields.io/pypi/v/eli5.svg
:target: https://pypi.python.org/pypi/eli5
:alt: PyPI Version
.. image:: https://github.com/eli5-org/eli5/actions/workflows/python-package.yml/badge.svg?branch=master
:target: https://github.com/eli5-org/eli5/actions
:alt: Build Status
.. image:: https://codecov.io/github/TeamHG-Memex/eli5/coverage.svg?branch=master
:target: https://codecov.io/github/TeamHG-Memex/eli5?branch=master
:alt: Code Coverage
.. image:: https://readthedocs.org/projects/eli5/badge/?version=latest
:target: https://eli5.readthedocs.io/en/latest/?badge=latest
:alt: Documentation
ELI5 is a Python package which helps to debug machine learning
classifiers and explain their predictions.
.. image:: https://raw.githubusercontent.com/eli5-org/eli5/refs/heads/master/docs/source/static/readme-show-prediction.png
:alt: explain_prediction for text data
.. image:: https://raw.githubusercontent.com/eli5-org/eli5/refs/heads/master/docs/source/static/gradcam-catdog.png
:alt: explain_prediction for image data
.. image:: https://raw.githubusercontent.com/eli5-org/eli5/refs/heads/master/docs/source/static/readme-show-weights.png
:alt: explain_weights for text data
It provides support for the following machine learning frameworks and packages:
* scikit-learn_. Currently ELI5 allows to explain weights and predictions
of scikit-learn linear classifiers and regressors, print decision trees
as text or as SVG, show feature importances and explain predictions
of decision trees and tree-based ensembles. ELI5 understands text
processing utilities from scikit-learn and can highlight text data
accordingly. Pipeline and FeatureUnion are supported.
It also allows to debug scikit-learn pipelines which contain
HashingVectorizer, by undoing hashing.
* Keras_ - explain predictions of image classifiers via Grad-CAM visualizations.
* xgboost_ - show feature importances and explain predictions of XGBClassifier,
XGBRegressor and xgboost.Booster.
* LightGBM_ - show feature importances and explain predictions of
LGBMClassifier, LGBMRegressor and lightgbm.Booster.
* CatBoost_ - show feature importances of CatBoostClassifier,
CatBoostRegressor and catboost.CatBoost.
* lightning_ - explain weights and predictions of lightning classifiers and
regressors.
* sklearn-crfsuite_. ELI5 allows to check weights of sklearn_crfsuite.CRF
models.
* OpenAI_ python client. ELI5 allows to explain LLM predictions with token probabilities.
ELI5 also implements several algorithms for inspecting black-box models
(see `Inspecting Black-Box Estimators`_):
* TextExplainer_ allows to explain predictions
of any text classifier using LIME_ algorithm (Ribeiro et al., 2016).
There are utilities for using LIME with non-text data and arbitrary black-box
classifiers as well, but this feature is currently experimental.
* `Permutation importance`_ method can be used to compute feature importances
for black box estimators.
Explanation and formatting are separated; you can get text-based explanation
to display in console, HTML version embeddable in an IPython notebook
or web dashboards, a ``pandas.DataFrame`` object if you want to process
results further, or JSON version which allows to implement custom rendering
and formatting on a client.
.. _lightning: https://github.com/scikit-learn-contrib/lightning
.. _scikit-learn: https://github.com/scikit-learn/scikit-learn
.. _sklearn-crfsuite: https://github.com/scrapinghub/sklearn-crfsuite
.. _LIME: https://eli5.readthedocs.io/en/latest/blackbox/lime.html
.. _TextExplainer: https://eli5.readthedocs.io/en/latest/tutorials/black-box-text-classifiers.html
.. _xgboost: https://github.com/dmlc/xgboost
.. _LightGBM: https://github.com/Microsoft/LightGBM
.. _Catboost: https://github.com/catboost/catboost
.. _Keras: https://keras.io/
.. _Permutation importance: https://eli5.readthedocs.io/en/latest/blackbox/permutation_importance.html
.. _Inspecting Black-Box Estimators: https://eli5.readthedocs.io/en/latest/blackbox/index.html
.. _OpenAI: https://github.com/openai/openai-python
License is MIT.
Check `docs `_ for more.
.. note::
This project was previously developed at https://github.com/TeamHG-Memex/eli5/
with support from `Hyperion Gray `_.