Highlights
- 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
- Migration away from Numba and llvmlite: core utilities have been migrated to nanobind/C++, allowing Numba and llvmlite to be removed as required dependencies and enabling support for free-threaded Python. By @daidahao and @CloseChoice in #5081, #5082, #5088, #5089, #5090, #5091, #5092, #5117, #5129
- GPU TreeSHAP improvements: LightGBM categorical GPU TreeSHAP support has been added, alongside TreeExplainer changes and CPU/GPU equivalence testing for categorical features. By @RAMitchell and @CloseChoice in #5020 and #5026
What's Changed
Fixes
- Refactor short circuiting of tree_path_dependent shap calculation by @CloseChoice in #5069
- Remove outdated TensorFlow version warnings from DeepExplainer by @SushantTusharJoshi in #5126
Enhancements
- Support LightGBM categorical GPU TreeSHAP by @RAMitchell in #5020
- Use TreeEnsemble directly in TreeExplainer and add cpu gpu equivalence tests for categories by @CloseChoice in #5026
- Add GPU build, packaging, CI, smoke tests, and TestPyPI support by @CloseChoice in #5057, #5058, #5114, #5123, #5127
- ENH: Move optional-dep into dep-groups by @daidahao in #4589
- ENH: Performance monitoring for explainers by @daidahao in #5071
- PERF: Remove Numba from image masker by @daidahao in #5089
- PERF: Migrate clustering utilities to nanobind by @daidahao in #5088
- PERF: Migrate tabular masking utilities to nanobind by @daidahao in #5090
- PERF: Migrate ExactExplainer interaction utility to nanobind by @daidahao in #5091
- PERF: Migrate lower_credit to nanobind by @daidahao in #5081
- PERF: Migrate mask construction to nanobind by @daidahao in #5082
- PERF: Migrate masked-model output utilities to nanobind by @daidahao in #5092
- remove numba and llvmlite from dependencies, support free-threaded python by @CloseChoice in #5129
- run tests and build wheels for python 3.15 (including pre-release) by @CloseChoice in #5143
- Add Windows ARM64 build by @ndabas in #5137
Other Changes
- TST: Increase test coverage for shap/maskers/_image.py by @bedupako12mas in #4519
- DOC: Document ASV performance monitoring by @daidahao in #5083
- remove llvmlite and numba restrictions on macos by @CloseChoice in #5117
- TYP: add type hints for plots._benchmark by @siddharth7113 in #5101
- Build and upload nightly wheels to scientific-python-nightly-wheels by @CloseChoice in #5136
- update bundle js by @CloseChoice in #5139
- Skip nightly wheel build when master is unchanged by @CloseChoice in #5141
- Update actions/checkout to v7.0.1 and pin its commit SHA by @CloseChoice in #5144
- update dependabot by @CloseChoice in #5145
New Contributors
- @bedupako12mas made their first contribution in #4519
- @siddharth7113 made their first contribution in #5101
- @SushantTusharJoshi made their first contribution in #5126
- @ndabas made their first contribution in #5137
Full Changelog: v0.52.0...v0.53.0rc0