===============================
TreeInterpreter
Package for interpreting scikit-learn's decision tree and random forest predictions.
Allows decomposing each prediction into bias and feature contribution components as described in http://blog.datadive.net/interpreting-random-forests/. For a dataset with n
features, each prediction on the dataset is decomposed as prediction = bias + feature_1_contribution + ... + feature_n_contribution
.
It works on scikit-learn's
- DecisionTreeRegressor
- DecisionTreeClassifier
- ExtraTreeRegressor
- ExtraTreeClassifier
- RandomForestRegressor
- RandomForestClassifier
- ExtraTreesRegressor
- ExtraTreesClassifier
Free software: BSD license
Dependencies
Installation
The easiest way to install the package is via pip
::
$ pip install treeinterpreter
Usage
::
from treeinterpreter import treeinterpreter as ti
fit a scikit-learn's regressor model
rf = RandomForestRegressor()
rf.fit(trainX, trainY)
prediction, bias, contributions = ti.predict(rf, testX)
Prediction is the sum of bias and feature contributions::
assert(numpy.allclose(prediction, bias + np.sum(contributions, axis=1)))
assert(numpy.allclose(rf.predict(testX), bias + np.sum(contributions, axis=1)))
More usage examples at http://blog.datadive.net/random-forest-interpretation-with-scikit-learn/.
History
0.1.0 (2015-07-22)