NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1242 most downloaded on PyPI
A unified approach to explain the output of any machine learning model.
Last release 27 days ago
07 Sep 2026
Release timing varies
gaps range from 2 weeks to 8 months
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
112 releases · first in 2016
Python 3.15.0rc2 support : SHAP now builds and runs tests against Python 3.15 pre-releases, including Python 3.15.0rc2. By @CloseChoice in #5143
Full Changelog: v0.52.0...v0.53.0rc0
One column per quarter.
Fix a NumPy deprecation warning in the coalition explainer. ( #4291 , by @CloseChoice )
setup.py to scikit-build-core + CMake. The Cython_kernel_lib.pyx and the existing _cext / _cext_gpu modules are nowMANIFEST.in / setup.py have beenpyproject.toml-driven build. (#4366, byINFO message when background data is sub-sampled (closes #3461).typing-extensions dependency. (#4629, by @samudraneel05)base_score values (fixing multiclass additivityenable_categorical=True raise the existing unsupported-categorical errorfeature_types. (#4997, byNameError when with_binary=False and with_cuda=True bycompile_args. (#4322, by @mohityadav8)np.flipud so it is no longer a no-op inAdditiveForceArrayVisualizer. (#4343, by @Mahaveerjain-18)isinstance() instead of is for type checks. (#4373, by @divyam-jha123)'sample' in Explanation.op_history instead of '__getitem__'.is_color_map() in plots/_beeswarm.py.UserWarning when LGBMRegressor was fitted with featuremax_evals calculation in PermutationExplainer.shap_values().benchmark/metrics.py.make_dir (image.py).isinstance() instead of type() is for tuple checks.serializable.test_kernel.py.input_shape kwarg with an Input layer in tests.return_all_scores with top_k=None (#3974).utils/_keras.py (unused and broken on Keras 3).__check_cache function and stale cache variables inexplainers.other._random. (#4436, by @SarthakB11)shap.actions. (#4350, by @JRV7903)tests/explainers/test_linear.py. (#4416, by @naxatra2)shap/explainers/other/_treegain.py.expected_value math formula in TreeExplainer (#4414).Full Changelog: v0.51.0...v0.52.0
deprecate testing of newer llvmlite versions on macos x64_86 by @CloseChoice in #4286
Full Changelog: v0.50.0...v0.51.0
hand over threshold_types to GPUTreeExplainer by @CloseChoice in #4181
Full Changelog: v0.49.1...v0.50.0
The previous Release wasn't properly published due to HTTP errors on MacOS.
Fix broken v0.49.0 release.
The previous Release wasn't properly published due to HTTP errors on MacOS.
Released on 2025-10-14 - GitHub - PyPI
Fix broken v0.49.0 release.
The previous Release wasn't properly published due to HTTP errors on MacOS.
Add CoalitionExplainer and add possibility of using Winter Values in Partition Explainer by @CousinThrockmorton in #3666
Identity Layer by @RoyiAvital in #4028Full Changelog: v0.47.2...v0.48.0
Add experimental causalml support by @alexander-pv in #3273
Simple California Demo.ipynb by @ethanknights in #4027Full Changelog: v0.47.1...v0.47.2
Fix regression in summary violin plot by @CloseChoice in #4033
Full Changelog: v0.47.0...v0.47.1
Add deprecation warning to legacy bar plot, add migration guide to new Explainer API by @connortann in #3739
_build_delta_masked_inputs and Explainer._compute_main_effects by @connortann in #3856approximate parameter to TreeExplainer for consistency, and deprecate the argument in the explainer's init method by @CloseChoice in #3834Full Changelog: v0.46.0...v0.47.0
Removed the deprecated auto_size_plot parameter to shap.summary_plot() .
This release adds compatibility with recent version of numpy and tensorflow, and includes several bug fixes.
auto_size_plot parameter to shap.summary_plot().float16 mixed precision by @CloseChoice in #3652XGBRegressor models by @CloseChoice in #3669Plus several further documentation and code quality improvements.
Full Changelog: v0.45.1...v0.46.0
This is a patch release with a couple of bug fixes. In particular, fixes a bug relating to loading of XGBoost models with exponential losses.
This is a patch release with a couple of bug fixes. In particular, fixes a bug relating to loading of XGBoost models with exponential losses.
Plus several documentation and maintenance updates by @bewygs , @CloseChoice , @Hugh-OBrien
Full Changelog: https://github.com/shap/shap/compare/v0.45.0...v0.45.1
Released on 2024-05-07 - GitHub - PyPI
This is a patch release with a couple of bug fixes. In particular, fixes a bug relating to loading of XGBoost models with exponential losses.
This is a fairly significant release containing a number of breaking changes.
This is a fairly significant release containing a number of breaking changes.
Thank you to a number of new contributors for their contributions to this release! We are eager to grow the pool of maintainers, so please do get in touch on #3559 if you are interested in being part of the team.
feature_dependence parameters in TreeExplainer and LinearExplainer by @thatlittleboy in https://github.com/shap/shap/pull/3340beeswarm plots by @MonoHue in https://github.com/shap/shap/pull/3530.. plus a large number of documentation, testing and other maintenance updates by @CloseChoice , @yuanx749 , @LakshmanKishore and others.
Full Changelog: https://github.com/shap/shap/compare/v0.44.1...v0.45.0
Released on 2024-03-08 - GitHub - PyPI
This is a fairly significant release containing a number of breaking changes.
Thank you to a number of new contributors for their contributions to this release! We are eager to grow the pool of maintainers, so please do get in touch on #3559 if you are interested in being part of the team.
Update XGBoost parsing to use ubjson format, replacing deprecated binary format by @CloseChoice in https://github.com/shap/shap/pull/3345
<!-- Release notes generated using configuration in .github/release.yml at master -->
Patch release to fix an issue with the display of force plots.
Full Changelog: https://github.com/shap/shap/compare/v0.44.0...v0.44.1
Released on 2024-01-25 - GitHub - PyPI
Patch release to fix an issue with the display of force plots.
Fixed HTML issue affecting display of force plots by @CloseChoice in #3464
Fixed calculation of interactions values for catboost regressors by @CloseChoice in #3459
Update XGBoost parsing to use ubjson format, replacing deprecated binary format by @CloseChoice in #3345
Full Changelog : v0.44.0...v0.44.1
Removed deprecated use_line_collection in dependence_plot by @CloseChoice in https://github.com/shap/shap/pull/3369
This release contains a number enhancements and bug fixes.
ax to group_difference() plot by @mtlulka in https://github.com/shap/shap/pull/3355CatboostClassifier explanations with feature interactions on Windows by @CloseChoice in https://github.com/shap/shap/pull/3325use_line_collection in dependence_plot by @CloseChoice in https://github.com/shap/shap/pull/3369scatter plots by @SomeUserName1 in https://github.com/shap/shap/pull/2799Full Changelog: https://github.com/shap/shap/compare/v0.43.0...V0.44.0
Released on 2023-12-07 - GitHub - PyPI
This release contains a number enhancements and bug fixes.
Following the NEP 29 deprecation policy, this release drops support for python 3.7.
This release contains a number of bug fixes and improvements.
Following the NEP 29 deprecation policy, this release drops support for python 3.7.
Explanation.base_values has been standardised between different TreeExplainer models to always be of shape (N,) and not (N,1). By @thatlittleboy in https://github.com/shap/shap/pull/3121feature_names in Explanation objects with square .values by @thatlittleboy in https://github.com/shap/shap/pull/3126register_backward_hook() by @noxthot in https://github.com/shap/shap/pull/3259There have also been a large number of improvements to the tutorials and examples, by @connortann, @znacer, @arshiaar, @thatlittleboy, @dsgibbons, @owenlamont and @CloseChoice
Full Changelog: https://github.com/shap/shap/compare/v0.42.1...v0.43.0
Patch release to provide wheels for a broader range of architectures.
Patch release to provide wheels for a broader range of architectures.
Full Changelog: https://github.com/slundberg/shap/compare/v0.42.0...v0.42.1
Released on 2023-07-15 - GitHub - PyPI
Patch release to provide wheels for a broader range of architectures.
Fixed circular import issues with shap.benchmark by @thatlittleboy in #3076 .
Fixed TestPyPI releases workflow by @connortann in #3068
Fix further flaky tests by @thatlittleboy in #3073
Fix shap.summary_plot to work with matplotlib 3.6.0 by @jklaise in #2697
Fix benchmark top-level import by @thatlittleboy in #3076
Fix ipython import warning from top-level shap import by @connortann in #3090
Full Changelog : v0.42.0...v0.42.1
Fixed deprecation warnings for numba>=0.44 (fork#9 and fork#68 by @connortann).
This release incorporates many changes that were originally contributed by the SHAP community via @dsgibbons's Community Fork, which has now been merged into the main shap repository. PRs from this origin are labelled here as fork#123.
This will be the last release that supports python 3.7.
n_points parameter to all functions in shap.datasets (fork#39 by @thatlittleboy).__call__ to KernelExplainer (#2966 by @dwolfeu).plot.waterfall to support yticklabels with boolean features (fork#58 by @dwolfeu).TreeExplainer.__call__ from throwing ValueError when passed a pandas DataFrame containing Categorical columns (fork#88 by @thatlittleboy).shap.datasets to sample without replacement (fork#36 by @thatlittleboy).UnboundLocalError problem arising from passing a dictionary input to shap.plots.bar (#3001 by @thatlittleboy).Gradient (#2983 by @skamdar).shap.plots.heatmap, and use the ax matplotlib API internally for plotting (#3040 by @thatlittleboy).numba>=0.44 (fork#9 and fork#68 by @connortann).numpy>=1.24 from numpy types (fork#7 by @dsgibbons).Ipython>=8 from Ipython.core.display (fork#13 by @thatlittleboy).tensorflow>=2.11 from tf.optimisers (fork#16 by @simonangerbauer).sklearn>=1.2 from sklearn.linear_model (fork#22 by @dsgibbons).xgboost>=1.4 from ntree_limit in tree explainer (#2987 by @adnene-guessoum).shap.explainers.Exact (#3064 by @connortann).mimic.py file and MimicExplainer code (fork#53 by @thatlittleboy).ruff linting (fork#25, fork#26, fork#27, #2973, #2972 and #2976 by @connortann; #2968, #2986 by @thatlittleboy).Lots of bugs fixes and API improvements.
Lots of bugs fixes and API improvements.
This release contains many bugs fixes and lots of new functionality, specifically for transformer based NLP models. Some highlights include:
This release contains many bugs fixes and lots of new functionality, specifically for transformer based NLP models. Some highlights include:
Lots of new text explainer work courtesy of @ryserrao and serialization courtesy of @vivekchettiar! (will note all the other changes later)
Lots of new text explainer work courtesy of @ryserrao and serialization courtesy of @vivekchettiar! (will note all the other changes later)
Released on 2021-03-03 - GitHub - PyPI
Lots of new text explainer work courtesy of @ryserrao and serialization courtesy of @vivekchettiar ! (will note all the other changes later)
Fixes a version mismatch with the v0.38.0 release and serialization updates.
Fixes a version mismatch with the v0.38.0 release and serialization updates.
Released on 2021-01-15 - GitHub - PyPI
Fixes a version mismatch with the v0.38.0 release and serialization updates.
This release contains more support for the new API, many bug fixes, and preliminary model agnostic text/image explainer support (still beta). Specific
This release contains more support for the new API, many bug fixes, and preliminary model agnostic text/image explainer support (still beta). Specific contributions include:
This version contains a significant refactoring of the SHAP code base into a new (cleaner) API. Full backwards compatibility should be retained, but m
This version contains a significant refactoring of the SHAP code base into a new (cleaner) API. Full backwards compatibility should be retained, but most things are now available in locations with the new API. Note that this API is still in a beta form, so refrain from depending on it for production code until the next release. Highlights include:
summary_plot (default) becomes beeswarm, and dependent_plot becomes scatter. Not all the plots have been ported over to the new API, but most have.Better support for TensorFlow 2 (thanks @imatiach-msft)
This release includes:
Released on 2020-02-27 - GitHub - PyPI
This release includes:
Better support for TensorFlow 2 (thanks @imatiach-msft )
Support for NGBoost models in TreeExplainer (thanks @zhiruiwang )
TreeExplainer support for the new sklearn.ensemble.HistGradientBoosting model.
New improved versions of PartitionExplainer for images and text.
IBM zOS compatibility courtesy of @DorianCzichotzki .
Support for XGBoost 1.0
Many bug fixes courtesy of Ivan, Christian Paul, @RandallJEllis , and @ibuda .
Better matplotlib text alignment during rotation courtesy of @koomie
This release includes:
Released on 2019-12-27 - GitHub - PyPI
This release includes:
Many small bug fixes.
Better matplotlib text alignment during rotation courtesy of @koomie
Cleaned up the C++ transformer code to allow easier PRs.
Fixed a too tight check_additivity tolerance in TreeExplainer #950
Updated the LinearExplainer API to match TreeExplainer
Allow custom class ordering in a summary_plot courtesy of @SimonStreicher
This release contains various bug fixes and new features including:
This release contains various bug fixes and new features including:
waterfall_plotreturn_variances to GradientExplainer for PyTorch courtesy of @s6junchengThis release is just intended to push better auto-deploy bundles out of travis and appveyor.
This release is just intended to push better auto-deploy bundles out of travis and appveyor.
Released on 2019-11-06 - GitHub - PyPI
This release is just intended to push better auto-deploy bundles out of travis and appveyor.
Support for sklearn isolation forest courtesy of @JiechengZhao
This release includes:
Released on 2019-11-06 - GitHub - PyPI
This release includes:
Support for sklearn isolation forest courtesy of @JiechengZhao
New check_additivity tests to ensure no errors in DeepExplainer and TreeExplainer
Fix #861 , #860
Fix missing readme example html file
Support for spark decision tree regressor courtesy of @QuentinAmbard
Better safe isinstance checking courtesy of @parsatorb
Fix eager execution in TF < 2 courtesy of @bottydim
This release contains several new features and bug fixes:
This release contains several new features and bug fixes:
This release is primarily to remove a dependency on dill that was not in setup.py. It also includes:
This release is primarily to remove a dependency on dill that was not in setup.py. It also includes:
Released on 2019-10-09 - GitHub - PyPI
This release is primarily to remove a dependency on dill that was not in setup.py. It also includes:
A typo fix in force.py courtesy of @jonlwowski012
Test code cleanup courtesy of @jorgecarleitao
Fix floating point rounding mismatches in recent sklearn versions of tree models
decision_plot documentation updates courtesy of @floidgilbertReleased on 2019-09-09 - GitHub - PyPI
Fix floating point rounding mismatches in recent sklearn versions of tree models
An update to allow easier loading of custom tree ensemble models by TreeExplainer.
decision_plot documentation updates courtesy of @floidgilbert
New decision_plot function courtesy of @floidgilbert
Fixes an issue in DeepExplainer caused by a change in TensorFlow 1.14.
Released on 2019-06-19 - GitHub - PyPI
Various bug fixes and improvements including:
Various bug fixes and improvements including:
Fixes to support changes in the most recent version of sklearn
Fixes to support changes in the most recent version of sklearn
Released on 2019-05-15 - GitHub - PyPI
Fixes to support changes in the most recent version of sklearn
Nothing published for this version
This release is just to refresh the Windows builds on AppVeyor that didn't complete for 0.28.4
This release is just to refresh the Windows builds on AppVeyor that didn't complete for 0.28.4
Released on 2019-02-16 - GitHub - PyPI
This release is just to refresh the Windows builds on AppVeyor that didn't complete for 0.28.4
Fixes memory corruption error from TreeExplainer (courtesy of @imatiach-msft)
Released on 2019-02-16 - GitHub - PyPI
Fixes memory corruption error from TreeExplainer (courtesy of @imatiach-msft )
Adds support for skopt Random Forest and ExtraTrees Regressors (courtesy of @Bacoknight )
Adds support for matplotlib forceplot with text rotation (courtesy of @vatsan )
Adds a save_html function
Fix some plot coloring issues introduced by 0.28 (such as #406)
Released on 2019-01-24 - GitHub - PyPI
Downgrade numpy API usage to support older versions.
Released on 2019-01-23 - GitHub - PyPI
Fixes a byte-alignment issue on Windows when loading XGBoost models.
Released on 2019-01-23 - GitHub - PyPI
Fixes a byte-alignment issue on Windows when loading XGBoost models.
Now matches tree_limit use in XGBoost models courtesy of @HughChen
Fix an issue with the expected_value of transformed model outputs in TreeExplainer
Add support for rank-based feature selection in KernelExplainer.
KernelExplainer.l1_reg="auto" in KernelExplainer in favor of eventually defaulting to l1_reg="num_features(10)"TreeExplainer when feature_dependence="independent"Better hierarchal clustering orderings that now rotate subtrees to give more continuity.
Released on 2019-01-01 - GitHub - PyPI
Better hierarchal clustering orderings that now rotate subtrees to give more continuity.
Work around XGBoost JSON issue.
Account for NaNs when doing auto interaction detection.
PyTorch fixes.
Updated LinearExplainer.
Complete refactor of TreeExplainer to support deeper C++ integration
x_jitter option for categorical dependence plots courtesy of @ihopethiswillfiReleased on 2018-12-12 - GitHub - PyPI
Complete refactor of TreeExplainer to support deeper C++ integration
The ability to explain transformed outputs of tree models in TreeExplainer, including the loss. In collaboration with @HughChen
Allow for a dynamic reference value in DeepExplainer courtesy of @AvantiShri
Add x_jitter option for categorical dependence plots courtesy of @ihopethiswillfi
Added support for GradientBoostingRegressor with quantile loss courtesy of @dmilad
Better plotting support for NaN values
Fixes several bugs.
Allows ordering_keys to be given to force_plot courtesy of @JasonTam
Released on 2018-11-09 - GitHub - PyPI
Allows ordering_keys to be given to force_plot courtesy of @JasonTam
Fixes sparse nonzero background issue with KernelExplainer courtesy of @imatiach-msft
Fix to support tf.concat in DeepExplainer.
Fixes a problem where tree_shap.h was not included in the pip bundle.
Fixes a problem where tree_shap.h was not included in the pip bundle.
Released on 2018-11-08 - GitHub - PyPI
Fixes a problem where tree_shap.h was not included in the pip bundle.
Support for PyTorch in GradientExplainer and preliminary support for PyTorch in DeepExplainer courtesy of @gabrieltseng.
Released on 2018-11-07 - GitHub - PyPI
Support for PyTorch in GradientExplainer and preliminary support for PyTorch in DeepExplainer courtesy of @gabrieltseng .
A matplotlib version of the single sample force_plot courtesy of @jverre .
Support functional Keras models in GradientExplainer.
KernelExplainer speed improvements.
Various performance improvements and bug fixes.
New improvements include: Faster KernelExplainer execution for sparse inputs. Support for sklearn gradient boosting classifiers. DeepExplainer extende
New improvements include: Faster KernelExplainer execution for sparse inputs. Support for sklearn gradient boosting classifiers. DeepExplainer extended to support very deep models.
Released on 2018-08-24 - GitHub - PyPI
New improvements include: Faster KernelExplainer execution for sparse inputs. Support for sklearn gradient boosting classifiers. DeepExplainer extended to support very deep models.
Nothing published for this version
This fixes numerical stability issues with the softmax operator for DeepExplainer. It also fixes a minor alignment issue with image_plot.
This fixes numerical stability issues with the softmax operator for DeepExplainer. It also fixes a minor alignment issue with image_plot.
Released on 2018-08-16 - GitHub - PyPI
This fixes numerical stability issues with the softmax operator for DeepExplainer. It also fixes a minor alignment issue with image_plot.
This release includes a nice update courtesy of @imatiach-msft for KernelExplainer. KernelExplainer now runs faster and supports sparse data matrices!
This release includes a nice update courtesy of @imatiach-msft for KernelExplainer. KernelExplainer now runs faster and supports sparse data matrices!
We have also refactored DeepExplainer and made it compatible with TensorFlow 1.10. There are still a few issues to track down, but DeepExplainer is getting more complete :)
Released on 2018-08-16 - GitHub - PyPI
This release includes a nice update courtesy of @imatiach-msft for KernelExplainer. KernelExplainer now runs faster and supports sparse data matrices!
We have also refactored DeepExplainer and made it compatible with TensorFlow 1.10. There are still a few issues to track down, but DeepExplainer is getting more complete :)
Fixes a problem with DeepExplainer on TensorFlow >= 1.9. Fixes a bar plotting issue.
Fixes a problem with DeepExplainer on TensorFlow >= 1.9. Fixes a bar plotting issue.
Released on 2018-08-09 - GitHub - PyPI
Fixes a problem with DeepExplainer on TensorFlow >= 1.9. Fixes a bar plotting issue.
Fix a pip packaging error with other explainers.
Fix a pip packaging error with other explainers.
Released on 2018-08-08 - GitHub - PyPI
Fix a pip packaging error with other explainers.
Fix an import error introduced in the last release when installing from pip.
Fix an import error introduced in the last release when installing from pip.
Released on 2018-08-08 - GitHub - PyPI
Fix an import error introduced in the last release when installing from pip.
Adds support for more TensorFlow components in DeepExplainer. Refactors the plotting functions and removes some long-deprecated functions. Fixes an er…
Integrates the JS code from iml into shap to simplify dependencies. Adds support for more TensorFlow components in DeepExplainer. Refactors the plotting functions and removes some long-deprecated functions. Fixes an error in KernelExplainer when using a non-zero reference value (#192).
Released on 2018-08-08 - GitHub - PyPI
Integrates the JS code from iml into shap to simplify dependencies. Adds support for more TensorFlow components in DeepExplainer . Refactors the plotting functions and removes some long-deprecated functions. Fixes an error in KernelExplainer when using a non-zero reference value ( #192 ).
A new LinearExplainer that can estimate SHAP values for linear models while accounting for correlations among the input features.
A new LinearExplainer that can estimate SHAP values for linear models while accounting for correlations among the input features.
Released on 2018-07-24 - GitHub - PyPI
A new LinearExplainer that can estimate SHAP values for linear models while accounting for correlations among the input features.
Fixes some issues with categorical features in LightGBM. Also fixes some issues created by the v.20 API changes.
Fixes some issues with categorical features in LightGBM. Also fixes some issues created by the v.20 API changes.
Released on 2018-07-23 - GitHub - PyPI
Fixes some issues with categorical features in LightGBM. Also fixes some issues created by the v.20 API changes.
This is just a tag to get Window's wheel files built.
This is just a tag to get Window's wheel files built.
Released on 2018-07-17 - GitHub - PyPI
This is just a tag to get Window's wheel files built.
Adds support for embedding layers and LSTM dropout among other things.
Adds support for embedding layers and LSTM dropout among other things.
Released on 2018-07-13 - GitHub - PyPI
Adds support for embedding layers and LSTM dropout among other things.
DeepExplainer now supports the TensorFlow components used by LSTM's.
DeepExplainer now supports the TensorFlow components used by LSTM's.
Released on 2018-07-12 - GitHub - PyPI
DeepExplainer now supports the TensorFlow components used by LSTM's.
Your coding agent can read these notes before it upgrades. Set up the MCP server →