Releases: shap/shap
v0.50.0
What's Changed
- hand over threshold_types to GPUTreeExplainer by @CloseChoice in #4181
- Improve base_score assignment by @lsdxp in #4187
- test against python 3.14, remove support for python 3.9 and 3.10 by @CloseChoice in #4176
- Always force transformers label2id ids to integers by @evamaxfield in #4192
- Fix gpu tree explainer tests by @CloseChoice in #4199
New Contributors
- @lsdxp made their first contribution in #4187
- @evamaxfield made their first contribution in #4192
Full Changelog: v0.49.1...v0.50.0
v0.49.1
What's Changed
Fix broken v0.49.0 release.
The previous Release wasn't properly published due to HTTP errors on MacOS.
v0.49.0
What's Changed
NOTE: this is the last release supporting Python 3.9 AND Python 3.10. From v0.50.0 onwards, we'll only support Python 3.11 and above.
- Add support for categorical splits in C++ library by @nqviller in #4171
- Add options to customize the color bar of the violin plot by @FanwangM in #4119
Other Changes
- plots.image show labels for every row if provided by @julesvanrie in #4113
- use nbtest by @CloseChoice in #4143
- Added Support for PyTorch
Flatenby @RoyiAvital in #4148 - Update .save() and .load() methods to remove AttributeError in Explainer and Serializer by @oscarl77 in #4155
- fix for missing objective error for LGBMRegressor by @imatiach-msft and @CloseChoice in #1063
- Fix potential TypeError in numeric feature branch by adding string conversion for feature names #4150 by @YunyuG in #4159
- Improve Coalition Explainer User Guidance and Fix Tree Building by @EnzoFanAccount in #4116
New Contributors
- @diego-pm made their first contribution in #4110
- @julesvanrie made their first contribution in #4113
- @Helias made their first contribution in #4141
- @oscarl77 made their first contribution in #4155
- @FanwangM made their first contribution in #4119
- @YunyuG made their first contribution in #4159
- @EnzoFanAccount made their first contribution in #4116
- @nqviller made their first contribution in #4171
Full Changelog: v0.48.0...v0.49.0
v0.48.0
What's Changed
Added
- Add CoalitionExplainer and add possibility of using Winter Values in Partition Explainer by @CousinThrockmorton in #3666
- Support and test against Python 3.13 by @connortann in #3861 and @CloseChoice in #4104
- Add Support for PyTorch
IdentityLayer by @RoyiAvital in #4028
Documentation
- Update Explaining a model that uses standardized features by @randombenj in #3903
Other Changes
- Changed alias by @Ja-Tink in #4049
- update javascript packages by @CloseChoice in #4067
- Fixed visual bug for small SHAP values by @Ja-Tink in #4053
- Fix summary_plot displays only one feature 4081 by @CloseChoice in #4087
- resolve threading warnings of regex library by @emmanuel-ferdman in #4084
New Contributors
- @RoyiAvital made their first contribution in #4028
- @Ja-Tink made their first contribution in #4049
- @emmanuel-ferdman made their first contribution in #4084
- @randombenj made their first contribution in #3903
- @CousinThrockmorton made their first contribution in #3666
Full Changelog: v0.47.2...v0.48.0
v0.47.2
What's Changed
Added
- Add experimental causalml support by @alexander-pv in #3273
Other Changes
- DOCS: clarity for partition tree explanation in
Simple California Demo.ipynbby @ethanknights in #4027 - FIX: unique value jitter by @fabianliebig in #4041
- FIX: fix neutral language in SHAP value description by @Hrafz in #4058
- FIX regression test for javascript plotting compontents and add tests by @CloseChoice in #4060
New Contributors
- @ethanknights made their first contribution in #4027
- @Hrafz made their first contribution in #4058
Full Changelog: v0.47.1...v0.47.2
v0.47.1
Fixes
- Fix regression in summary violin plot by @CloseChoice in #4033
- Fix incorrect SHAP Values for Missing Data in new scikit versions for Tree Models by @sunruslan in #3998
- Fix issue with tight tolerances when calling check_additivity by @adamwitmer in #3993
- Fix AttributeError when extracting colors by @fabianliebig in #4017
- Fix additivity check failure uint32 overflow by @arhall0 in #4006
New Contributors
- @adamwitmer made their first contribution in #3993
- @fabianliebig made their first contribution in #4017
- @sunruslan made their first contribution in #3998
- @arhall0 made their first contribution in #4006
Full Changelog: v0.47.0...v0.47.1
v0.47.0
What's Changed
Breaking changes
- Add deprecation warning to legacy bar plot, add migration guide to new Explainer API by @connortann in #3739
Added
- Added categorical support for shap.plots.scatter by @hypostulate in #3706
- Introduce vmax parameter in image plot by @sd3ntato in #2848
- New plotting API for beeswarm to accept and return axes by @chriscave in #3561
- Enabeling to create a beeswarm figure without sum of other features by @kalkairis in #2225
- New interface to customise visualisations by @connortann in #3788
- Allow custom styles for bar plot by @connortann in #3849
- TreeExplainer numerical sensitivity by @tylerjereddy in #3990
- Faster non-tree KernelExplainer by @tylerjereddy in #3944
Fixed
- Fix logit errors in KernelExplainer by @CloseChoice in #3917
- Fix TypeError in summary_plot by @bedapisl in #3738
- Re-vendor colorconv from skimage 0.24.0 by @connortann in #3785
- Fix label option for multiple rows in shap.plots.image by @SFatemehM in #3636
- Fix transformers by @costrau in #3578
- Fix OpChain repr for kwargs-only operations by @thatlittleboy in #3838
- Fix the wrong figure for multiclass in summary plot by @46319943 in #3836
- Fix summary plot issue for multiclass case by @CloseChoice in #3925
- Fix colormaps by @CloseChoice in #3909
Documentation
- Fixed error in documentation of shap.datasets.communitiesandcrime by @TommyGiak in #3846
- Fix column indices in Understanding Tree SHAP notebook by @operte in #3749
- Reformat the scatter notebook in API example by @Xovee in #3752
- Improved typing and docs for scatter plot by @connortann in #3811
- Use intersphinx for some external links by @thatlittleboy in #3851
- Pin docs dependencies for reproducibility by @connortann in #3885
- Fix typo in force plot with LightGBM and description by @davidefiocco in #3962
- Fix: fixed markdown issue with some sections title in the introductio⦠by @CSantos01 in #3957
- Fix comment for beeswarm plot in intro notebook by @davidefiocco in #3960
Maintenance
- Fix: explicitly set matplotlib interpolation rcParams in tests by @connortann in #3953
Other Changes
- Skip sentiment analysis test on MacOS runners by @connortann in #3955
- Remove deprecated unused code
_build_delta_masked_inputsandExplainer._compute_main_effectsby @connortann in #3856 - Improve handling of the
approximateparameter to TreeExplainer for consistency, and deprecate the argument in the explainer's init method by @CloseChoice in #3834 - Refactor feature_perturbation in Tree explainers by @glemaitre in #2624
- Test decision plot by @CloseChoice in #3720
- Bump ruff, fix rule E721 by @connortann in #3751
- Refactor plot utils and colors by @thatlittleboy in #3833
- Refactor and optimize explanation ops by @thatlittleboy in #3850
- Fix CI feedstock build by @CloseChoice in #3862
- Add error to multi output cohort call by @CloseChoice in #3870
- Fix typo in beeswarm.ipynb by @kamurani in #3900
- DeepExplainer docstring improvements by @anitagraser in #3892
- Clear plot before generating new summary plots to avoid overlapping color bars by @chun61205 in #3921
- Support rng for summary_plot by @tylerjereddy in #3945
- Minor speedups in non-tree KernelExplainer by @tylerjereddy in #3983
New Contributors
- @bedapisl made their first contribution in #3738
- @operte made their first contribution in #3749
- @Xovee made their first contribution in #3752
- @hypostulate made their first contribution in #3706
- @SFatemehM made their first contribution in #3636
- @sd3ntato made their first contribution in #2848
- @chriscave made their first contribution in #3561
- @kalkairis made their first contribution in #2225
- @TommyGiak made their first contribution in #3846
- @46319943 made their first contribution in #3836
- @kamurani made their first contribution in #3900
- @anitagraser made their first contribution in #3892
- @chun61205 made their first contribution in #3921
- @davidefiocco made their first contribution in #3962
- @CSantos01 made their first contribution in #3957
- @Fredheda made their first contribution in #3984
- @tylerjereddy made their first contribution in #3945
Full Changelog: v0.46.0...v0.47.0
v0.46.0
What's Changed
This release adds compatibility with recent version of numpy and tensorflow, and includes several bug fixes.
Added
- Added support for numpy 2, by @connortann in #3717 and @paulbkoch in #3704
- Added support for keras 3 and tensorflow 2.16 by @CloseChoice in #3677
Changed
- Removed the deprecated
auto_size_plotparameter toshap.summary_plot().
Fixed
- Fixed issue explaining models trained with
float16mixed precision by @CloseChoice in #3652 - Fixed deserialization bug with
XGBRegressormodels by @CloseChoice in #3669
Plus several further documentation and code quality improvements.
New Contributors
- @LetiP made their first contribution in #3685
- @paulbkoch made their first contribution in #3704
Full Changelog: v0.45.1...v0.46.0
v0.45.1
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.
What's Changed
Added
- Added selu activation for pytorch deep explainer by @CloseChoice in #3617
- Added "ax" option to heatmap plotting function by @sroener in #3571
Changed
- Removed unused "display" parameters from dataset functions by @LakshmanKishore in #3543
Fixed
- Fixed loading of XGBoost models with expeonential lossesby @CloseChoice in #3616
- Fixed call interface for the deep explainer by @CloseChoice in #3558
- Fixed use of Falcon language model for text generation by @CloseChoice in #3592
- Fixed lightgbm compilation (macOS Workflow) by @bewygs in #3632
- Fixed loading of XGBoost models with exponential losses by @CloseChoice in #3616
Plus several documentation and maintenance updates by @bewygs , @CloseChoice , @Hugh-OBrien
New Contributors
- @sroener made their first contribution in #3571
- @Hugh-OBrien made their first contribution in #3604
- @bewygs made their first contribution in #3632
Full Changelog: v0.45.0...v0.45.1
v0.45.0
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.
What's Changed
Breaking changes
- Dropped support for 3.8 in #3414
- Changed type and shape of returned SHAP values in some cases, to be consistent with model outputs. SHAP values for models with multiple outputs are now np.ndarray rather than list, by @CloseChoice in #3318
- Removed deprecated
feature_dependenceparameters in TreeExplainer and LinearExplainer by @thatlittleboy in #3340 - Removed deprecated alias for Coefficient by @connortann in #3511
Added
- Added support for python 3.12 by @connortann in #3414
- Added support for GPU build on recent CUDA versions by @trivialfis in #3462
- 2x import time speedup via lazy importing of pytorch by @connortann in #3533
- Added support returning the matplotlib figure in bar plots by @richarddli in #3494
- Added selu activation for tensorflow deep explainer by @CloseChoice in #3504
- Added support for special characters in catboost models by @CloseChoice in #3506
- Added ability to control marker size in
beeswarmplots by @MonoHue in #3530
Fixed
- Fixed XGBoost model load by @trivialfis in #3462
- Fixed text masking with certain tokenizers by @costrau in #3536
- Fixed issue with KernelExplainer when explaining tensorflow models by @connortann in #3542
- Fixed force_plot contribution threshold for negative contributions by @connortann in #3547
- Removed overwrite of default warning filter or formatter by @connortann in #3514
.. plus a large number of documentation, testing and other maintenance updates by @CloseChoice , @yuanx749 , @LakshmanKishore and others.
New Contributors
- @richarddli made their first contribution in #3494
- @yuanx749 made their first contribution in #3458
- @LakshmanKishore made their first contribution in #3393
- @trivialfis made their first contribution in #3462
- @DanGolding made their first contribution in #3526
- @MonoHue made their first contribution in #3530
- @costrau made their first contribution in #3536
Full Changelog: v0.44.1...v0.45.0