Shap Versions Save

A game theoretic approach to explain the output of any machine learning model.

v0.38.1

3 years ago

Fixes a version mismatch with the v0.38.0 release and serialization updates.

v0.38.0

3 years ago

This release contains improved support for explanations of transformer text models and support for the new Explanation object based API. Specific improvements include:

  • Transformer model support in the Text explainer courtesy of @ryserrao
  • Interventional Tree explainer GPU support courtesy of @RAMitchell
  • Image captioning model support courtesy of @anusham1990
  • Benchmarking improvements courtesy of @maggiewu19
  • New text and image visualizations courtesy of @vivekchettiar
  • New explainer serialization support courtesy of @vivekchettiar
  • Bug fixes for Linear explainer and the new API courtesy of @heimengqi
  • Fix for categorical plots courtesy of @jeffreyftang
  • CUDA support improvements courtesy of @JohnZed
  • Support for econML model courtesy of @vasilismsr
  • Many other bug fixes and API improvements.

v0.37.0

3 years ago

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:

  • Fix Sampling explainer sample counting issue courtesy of @tcbegley
  • Add multi-bar plotting support.
  • Preliminary support for cohorts.
  • Fixed an import error courtesy of @suragnair
  • Fix Tree explainer issues with isolation forests with max_features < 1 courtesy of @zhanjiezhu
  • Huge documentation cleanup and update courtesy of @lrjball
  • Typo fix courtesy of @anusham1990
  • Added a documentation notebook for the Exact explainer.
  • Text and Image explainers courtesy of @anusham1990 and Ryan Serrao
  • Bug fix for shap.utils.hclust
  • Initial support for InterpretML EBM models.
  • Added column grouping functionality to Explainer objects.
  • Fix for loop index bug in Deep explainer for PyTorch courtesy of @quentinRaq
  • Initial text to text visualization concepts courtesy of @vivekchettiar
  • Color conversion warning fix courtesy of @wangjoshuah
  • Fix invertibility issues in Kernel explainer with the pseudoinverse courtesy of @PrimozGodec
  • New benchmark code courtesy of @maggiewu19 and @vivekchettiar
  • Other small bug fixes and enhancements.

v0.36.0

3 years ago

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:

  • A new shap.Explainer object that auto-chooses the explainer based on the given model and masking dataset.
  • A new shap.Explanation object that allows for parallel slicing of data, SHAP values, base values (expected values), and other explanation-specific elements.
  • A new shap.maskers.* module that separates the various ways to mask (i.e. perturb/hide) features from the algorithms themselves.
  • A new shap.explainers.Partition explainer that can explain any text or image models very quickly.
  • A new shap.maskers.Partition masker that ensures tightly grouped features are perturbed in unison, so preventing "unrealistic" model inputs from inappropriately influencing the model prediction. It also allows for the exact quadratic time computation of SHAP values for the 'structured games' (with coalitions structured according to a hierarchical clustering).
  • A new shap.plots.* module with revamped plot types that all support the new API. Plots are now named more directly, so 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.
  • A new notebooks/plots/* directory given examples of how to use the new plotting functions.
  • A new shap.plots.bar function to directly create bar plots and also display hierarchical clustering structures to group redundant features together, and show the structure used by a Partition explainer (that relied on Owen values, which are an extension of Shapley values).
  • Equally check fixes courtesy of @jameslamb
  • Sparse kmeans support courtesy of @PrimozGodec
  • Pytorch bug fixes courtesy of @rightx2
  • NPM JS code clean up courtesy of @SachinVarghese
  • Fix logit force plot bug courtesy of @ehuijzer
  • Decision plot documentation updates courtesy of @floidgilbert
  • sklearn GBM fix courtesy of @ChemEngDataSci
  • XGBoost 1.1 fix courtesy of @lrjball
  • Make SHAP spark serializable courtesy of @QuentinAmbard
  • Custom summary plot color maps courtesy of @nasir-bhanpuri
  • Support string inputs for KernelSHAP courtesy of @YotamElor
  • Doc fixes courtesy of @imatiach-msft
  • Support for GPBoost courtesy of @fabsig
  • Import bug fix courtesy of @gracecarrillo and @aokeson

0.35.0

4 years ago

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.

0.34.0

4 years ago

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

0.33.0

4 years ago

This release contains various bug fixes and new features including:

  • Added PySpark support for TreeExplainer courtesy of @QuentinAmbard
  • A new type of plot that is an alternative to the force_plot, a waterfall_plot
  • A new PermutationExplainer that is an alternative to KernelExplainer and SamplingExplainer.
  • Added return_variances to GradientExplainer for PyTorch courtesy of @s6juncheng
  • Now we use exceptions rather than assertions in TreeExplainer courtesy of @ssaamm
  • Fixed image_plot transpose issue courtesy of @Jimbotsai
  • Fix color bar axis attachment issue courtesy of Lasse Valentini Jensen
  • Fix tensor attachment issue in PyTorch courtesy of @gabrieltseng
  • Fix color clipping ranges in summary_pot courtesy of @joelostblom
  • Address sklearn 0.22 API changes courtesy of @lemon-yellow
  • Ensure matplotlib is optional courtesy of @imatiach-msft

0.32.1

4 years ago

This release is just intended to push better auto-deploy bundles out of travis and appveyor.

0.32.0

4 years ago

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

0.31.0

4 years ago

This release contains several new features and bug fixes:

  • GradientExplainer now supports TensorFlow 2.0.
  • We now do a lazy load of the plotting dependencies, which means a pip install no longer needs to also pull in matplotlib, skimage, and ipython. This should make installs much lighter, especially those that don't need plotting :)
  • Added a new BruteForceExplainer for easy testing and comparison on small problems.
  • Added a new partial_dependence_plot function. This function will be used to illustrate the close connections between partial dependence plots and SHAP values in future example notebooks.
  • Handle the multiclass case with no intercept in LinearExplainer courtesy of @gabrieltseng
  • Some extras_require options during the pip install courtesy of @AbdealiJK
  • Other small bug fixes and updates