Debug machine learning classifiers and explain their predictions
Project description
ELI5 is a Python package which helps to debug machine learning classifiers and explain their predictions.
Currently it allows to:
explain weights and predictions of scikit-learn linear classifiers and regressors;
explain weights of scikit-learn decision trees and tree-based ensemble classifiers (via feature importances);
debug scikit-learn pipelines which contain HashingVectorizer, by undoing hashing;
explain predictions of any black-box classifier using LIME ( http://arxiv.org/abs/1602.04938 ) algorithm.
TODO:
IPython and HTML support
https://github.com/TeamHG-Memex/sklearn-crfsuite and https://github.com/tpeng/python-crfsuite
fasttext (?)
xgboost (?)
eli5.lime improvements
image input
built-in support for non-text data in eli5.lime
tensorflow, theano, lasagne, keras
Naive Bayes from scikit-learn (see https://github.com/scikit-learn/scikit-learn/issues/2237)
Reinforcement Learning support
explain predictions of decision trees and treee-based ensembles
License is MIT.
Check docs for more (sorry, also TODO).
Changelog
0.0.5 (2016-09-27)
HashingVectorizer support in explain_prediction;
add an option to pass coefficient scaling array; it is useful if you want to compare coefficients for features which scale or sign is different in the input;
bug fix: classifier weights are no longer changed by eli5 functions.
0.0.4 (2016-09-24)
eli5.sklearn.InvertableHashingVectorizer and eli5.sklearn.FeatureUnhasher allow to recover feature names for pipelines which use HashingVectorizer or FeatureHasher;
added support for scikit-learn linear regression models (ElasticNet, Lars, Lasso, LinearRegression, LinearSVR, Ridge, SGDRegressor);
doc and vec arguments are swapped in explain_prediction function; vec can now be omitted if an example is already vectorized;
fixed issue with dense feature vectors;
all class_names arguments are renamed to target_names;
feature name guessing is fixed for scikit-learn ensemble estimators;
testing improvements.
0.0.3 (2016-09-21)
support any black-box classifier using LIME (http://arxiv.org/abs/1602.04938) algorithm; text data support is built-in;
“vectorized” argument for sklearn.explain_prediction; it allows to pass example which is already vectorized;
allow to pass feature_names explicitly;
support classifiers without get_feature_names method using auto-generated feature names.
0.0.2 (2016-09-19)
‘top’ argument of explain_prediction can be a tuple (num_positive, num_negative);
classifier name is no longer printed by default;
added eli5.sklearn.explain_prediction to explain individual examples;
fixed numpy warning.
0.0.1 (2016-09-15)
Pre-release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.