发布说明
要查看下个版本即将发布的最新更改,请参阅 v0.50.0...master。
v0.50.0
发布于 2025-11-11 - GitHub - PyPI
有何变化
- 将 threshold_types 移交给 GPUTreeExplainer,作者:@CloseChoice,提交于 #4181
- 改进 base_score 分配,作者:@lsdxp,提交于 #4187
- 针对 python 3.14 进行测试,移除对 python 3.9 和 3.10 的支持,作者:@CloseChoice,提交于 #4176
- 始终强制 transformers label2id id 为整数,作者:@evamaxfield,提交于 #4192
- 修复 gpu tree explainer 测试,作者:@CloseChoice,提交于 #4199
新贡献者
- @lsdxp 在 #4187 中首次做出贡献
- @evamaxfield 在 #4192 中首次做出贡献
完整更新日志: v0.49.1...v0.50.0
v0.49.1
发布于 2025-10-14 - GitHub - PyPI
有何变化
修复损坏的 v0.49.0 版本。
由于 MacOS 上的 HTTP 错误,之前的版本未能正确发布。
v0.49.0
发布于 2025-10-14 - GitHub - PyPI
有何变化
注意:这是支持 Python 3.9 和 Python 3.10 的最后一个版本。从 v0.50.0 开始,我们将仅支持 Python 3.11 及更高版本。
其他更改
- 如果提供,plots.image 为每行显示标签,作者:@julesvanrie,提交于 #4113
- 使用 nbtest,作者:@CloseChoice,提交于 #4143
- 添加了对 PyTorch
Flatten的支持,作者:@RoyiAvital,提交于 #4148 - 更新 .save() 和 .load() 方法,以消除 Explainer 和 Serializer 中的 AttributeError,作者:@oscarl77,提交于 #4155
- 修复 LGBMRegressor 缺少 objective 错误,作者:@imatiach-msft 和 @CloseChoice,提交于 #1063
- 通过为特征名称添加字符串转换修复数值特征分支中潜在的 TypeError #4150,作者:@YunyuG,提交于 #4159
- 改进 Coalition Explainer 用户指南并修复树构建,作者:@EnzoFanAccount,提交于 #4116
新贡献者
- @diego-pm 在 #4110 中首次做出贡献
- @julesvanrie 在 #4113 中首次做出贡献
- @Helias 在 #4141 中首次做出贡献
- @oscarl77 在 #4155 中首次做出贡献
- @FanwangM 在 #4119 中首次做出贡献
- @YunyuG 在 #4159 中首次做出贡献
- @EnzoFanAccount 在 #4116 中首次做出贡献
- @nqviller 在 #4171 中首次做出贡献
完整更新日志: v0.48.0...v0.49.0
v0.48.0
发布于 2025-06-12 - GitHub - PyPI
有何变化
已添加
- 添加 CoalitionExplainer 并在 Partition Explainer 中添加使用 Winter Values 的可能性,作者:@CousinThrockmorton,提交于 #3666
- 支持并针对 Python 3.13 进行测试,作者:@connortann,提交于 #3861 和 @CloseChoice,提交于 #4104
- 添加了对 PyTorch
Identity层的支持,作者:@RoyiAvital,提交于 #4028
文档
- 更新“解释使用标准化特征的模型”,作者:@randombenj,提交于 #3903
其他更改
- 更改别名,作者:@Ja-Tink,提交于 #4049
- 更新 javascript 包,作者:@CloseChoice,提交于 #4067
- 修复了小 SHAP 值的视觉错误,作者:@Ja-Tink,提交于 #4053
- 修复 summary_plot 仅显示一个特征的问题 4081,作者:@CloseChoice,提交于 #4087
- 解决 regex 库的线程警告,作者:@emmanuel-ferdman,提交于 #4084
新贡献者
- @RoyiAvital 在 #4028 中首次做出贡献
- @Ja-Tink 在 #4049 中首次做出贡献
- @emmanuel-ferdman 在 #4084 中首次做出贡献
- @randombenj 在 #3903 中首次做出贡献
- @CousinThrockmorton 在 #3666 中首次做出贡献
完整更新日志: v0.47.2...v0.48.0
v0.47.2
发布于 2025-04-17 - GitHub - PyPI
有何变化
已添加
- 添加实验性 causalml 支持,作者:@alexander-pv,提交于 #3273
其他更改
- DOCS:
Simple California Demo.ipynb中分区树解释的清晰度,作者:@ethanknights,提交于 #4027 - FIX: 唯一值抖动,作者:@fabianliebig,提交于 #4041
- FIX: 修复 SHAP 值描述中的中性语言,作者:@Hrafz,提交于 #4058
- 修复 javascript 绘图组件的回归测试并添加测试,作者:@CloseChoice,提交于 #4060
新贡献者
- @ethanknights 在 #4027 中首次做出贡献
- @Hrafz 在 #4058 中首次做出贡献
完整更新日志: v0.47.1...v0.47.2
v0.47.1
发布于 2025-03-22 - GitHub - PyPI
修复
- 修复概要小提琴图的回归问题,作者:@CloseChoice,提交于 #4033
- 修复新 scikit 版本中树模型缺失数据导致 SHAP 值不正确的问题,作者:@sunruslan,提交于 #3998
- 修复调用 check_additivity 时公差过紧的问题,作者:@adamwitmer,提交于 #3993
- 修复提取颜色时的 AttributeError,作者:@fabianliebig,提交于 #4017
- 修复 uint32 溢出导致的加性检查失败,作者:@arhall0,提交于 #4006
新贡献者
- @adamwitmer 在 #3993 中首次做出贡献
- @fabianliebig 在 #4017 中首次做出贡献
- @sunruslan 在 #3998 中首次做出贡献
- @arhall0 在 #4006 中首次做出贡献
完整更新日志: v0.47.0...v0.47.1
v0.47.0
发布于 2025-03-05 - GitHub - PyPI
有何变化
重大更改
- 为传统条形图添加弃用警告,为新的 Explainer API 添加迁移指南,作者:@connortann,提交于 #3739
已添加
- 为 shap.plots.scatter 添加分类支持,作者:@hypostulate,提交于 #3706
- 在图像图中引入 vmax 参数,作者:@sd3ntato,提交于 #2848
- 新的 beeswarm 绘图 API,接受并返回坐标轴,作者:@chriscave,提交于 #3561
- 启用了在没有其他特征之和的情况下创建 beeswarm 图形,作者:@kalkairis,提交于 #2225
- 自定义可视化新界面,作者:@connortann,提交于 #3788
- 允许条形图自定义样式,作者:@connortann,提交于 #3849
- TreeExplainer 数值敏感度,作者:@tylerjereddy,提交于 #3990
- 更快的非树 KernelExplainer,作者:@tylerjereddy,提交于 #3944
已修复
- 修复 KernelExplainer 中的 logit 错误,作者:@CloseChoice,提交于 #3917
- 修复 summary_plot 中的 TypeError,作者:@bedapisl,提交于 #3738
- 从 skimage 0.24.0 重新打包 colorconv,作者:@connortann,提交于 #3785
- 修复 shap.plots.image 中多行标签选项问题,作者:@SFatemehM,提交于 #3636
- 修复 transformers,作者:@costrau,提交于 #3578
- 修复 kwargs-only 操作的 OpChain repr,作者:@thatlittleboy,提交于 #3838
- 修复概要图中多类别的错误图形,作者:@46319943,提交于 #3836
- 修复多类别情况下概要图问题,作者:@CloseChoice,提交于 #3925
- 修复颜色映射,作者:@CloseChoice,提交于 #3909
文档
- 修复 shap.datasets.communitiesandcrime 文档中的错误,作者:@TommyGiak,提交于 #3846
- 修复 Understanding Tree SHAP 笔记本中的列索引,作者:@operte,提交于 #3749
- 在 API 示例中重新格式化散点图笔记本,作者:@Xovee,提交于 #3752
- 改进散点图的类型和文档,作者:@connortann,提交于 #3811
- 将 intersphinx 用于一些外部链接,作者:@thatlittleboy,提交于 #3851
- 固定文档依赖项以实现可重现性,作者:@connortann,提交于 #3885
- 修复 LightGBM 强制图中和描述中的拼写错误,作者:@davidefiocco,提交于 #3962
- 修复:修复 introduction 中某些部分标题的 markdown 问题…,作者:@CSantos01,提交于 #3957
- 修复介绍笔记本中 beeswarm 图的注释,作者:@davidefiocco,提交于 #3960
维护
- 修复:在测试中显式设置 matplotlib 插值 rcParams,作者:@connortann,提交于 #3953
其他更改
- 在 MacOS 运行器上跳过情感分析测试,作者:@connortann,提交于 #3955
- 移除已弃用的未使用代码
_build_delta_masked_inputs和Explainer._compute_main_effects,作者:@connortann,提交于 #3856 - 改进 TreeExplainer
approximate参数的处理以保持一致性,并弃用解释器 init 方法中的该参数,作者:@CloseChoice,提交于 #3834 - 重构 Tree explainers 中的 feature_perturbation,作者:@glemaitre,提交于 #2624
- 测试决策图,作者:@CloseChoice,提交于 #3720
- 提升 ruff 版本,修复规则 E721,作者:@connortann,提交于 #3751
- 重构绘图工具和颜色,作者:@thatlittleboy,提交于 #3833
- 重构并优化解释操作,作者:@thatlittleboy,提交于 #3850
- 修复 CI feedstock 构建,作者:@CloseChoice,提交于 #3862
- 向多输出 cohort 调用添加错误,作者:@CloseChoice,提交于 #3870
- 修复 beeswarm.ipynb 中的拼写错误,作者:@kamurani,提交于 #3900
- DeepExplainer 文档字符串改进,作者:@anitagraser,提交于 #3892
- 在生成新的概要图之前清除图,以避免颜色条重叠,作者:@chun61205,提交于 #3921
- 支持 summary_plot 的 rng,作者:@tylerjereddy,提交于 #3945
- 非树 KernelExplainer 的小幅提速,作者:@tylerjereddy,提交于 #3983
新贡献者
- @bedapisl 在 #3738 中首次做出贡献
- @operte 在 #3749 中首次做出贡献
- @Xovee 在 #3752 中首次做出贡献
- @hypostulate 在 #3706 中首次做出贡献
- @SFatemehM 在 #3636 中首次做出贡献
- @sd3ntato 在 #2848 中首次做出贡献
- @chriscave 在 #3561 中首次做出贡献
- @kalkairis 在 #2225 中首次做出贡献
- @TommyGiak 在 #3846 中首次做出贡献
- @46319943 在 #3836 中首次做出贡献
- @kamurani 在 #3900 中首次做出贡献
- @anitagraser 在 #3892 中首次做出贡献
- @chun61205 在 #3921 中首次做出贡献
- @davidefiocco 在 #3962 中首次做出贡献
- @CSantos01 在 #3957 中首次做出贡献
- @Fredheda 在 #3984 中首次做出贡献
- @tylerjereddy 在 #3945 中首次做出贡献
完整更新日志: v0.46.0...v0.47.0
v0.46.0
发布于 2024-06-27 - GitHub - PyPI
有何变化
此版本增加了对最新版 numpy 和 tensorflow 的兼容性,并包含多个 bug 修复。
已添加
- 添加了对 numpy 2 的支持,作者:@connortann,提交于 #3717 和 @paulbkoch,提交于 #3704
- 添加了对 keras 3 和 tensorflow 2.16 的支持,作者:@CloseChoice,提交于 #3677
已更改
- 移除了
shap.summary_plot()中已弃用的auto_size_plot参数。
已修复
- 修复了使用
float16混合精度训练的模型解释问题,作者:@CloseChoice,提交于 #3652 - 修复了
XGBRegressor模型反序列化 bug,作者:@CloseChoice,提交于 #3669
以及其他几项文档和代码质量改进。
新贡献者
- @LetiP 在 #3685 中首次做出贡献
- @paulbkoch 在 #3704 中首次做出贡献
完整更新日志: v0.45.1...v0.46.0
v0.45.1
发布于 2024-05-07 - GitHub - PyPI
这是一个补丁版本,修复了几个错误。特别是,修复了与加载具有指数损失的 XGBoost 模型相关的错误。
有何变化
已添加
- 为 pytorch deep explainer 添加了 selu 激活,作者:@CloseChoice,提交于 #3617
- 由 @sroener 在 #3571 中为热力图绘制函数添加了“ax”选项
已更改
- 由 @LakshmanKishore 在 #3543 中删除了数据集函数中未使用的“display”参数
已修复
- 由 @CloseChoice 在 #3616 中修复了加载具有指数损失的 XGBoost 模型的问题
- 由 @CloseChoice 在 #3558 中修复了深度解释器的调用接口
- 由 @CloseChoice 在 #3592 中修复了 Falcon 语言模型用于文本生成的问题
- 由 @bewygs 在 #3632 中修复了 LightGBM 编译 (macOS Workflow) 问题
- 由 @CloseChoice 在 #3616 中修复了加载具有指数损失的 XGBoost 模型的问题
以及由 @bewygs、@CloseChoice 和 @Hugh-OBrien 进行的几项文档和维护更新
新贡献者
完整更新日志:v0.45.0...v0.45.1
v0.45.0
发布于 2024-03-08 - GitHub - PyPI
这是一个相当重要的版本,包含许多破坏性更改。
感谢许多新贡献者为本次发布所做的贡献!我们渴望扩大维护者队伍,如果您有兴趣加入团队,请通过 #3559 与我们联系。
有何变化
重大更改
- 在 #3414 中取消了对 3.8 的支持
- 在某些情况下更改了返回的 SHAP 值的类型和形状,以与模型输出保持一致。具有多个输出的模型的 SHAP 值现在是 np.ndarray 而不是列表,由 @CloseChoice 在 #3318 中实现
- 由 @thatlittleboy 在 #3340 中删除了 TreeExplainer 和 LinearExplainer 中已弃用的
feature_dependence参数 - 由 @connortann 在 #3511 中删除了 Coefficient 的弃用别名
已添加
- 由 @connortann 在 #3414 中添加了对 python 3.12 的支持
- 由 @trivialfis 在 #3462 中添加了对最新 CUDA 版本上的 GPU 构建的支持
- 由 @connortann 在 #3533 中通过 PyTorch 的延迟导入将导入时间加快了 2 倍
- 由 @richarddli 在 #3494 中添加了对条形图中返回 matplotlib 图的支持
- 由 @CloseChoice 在 #3504 中为 TensorFlow 深度解释器添加了 selu 激活
- 由 @CloseChoice 在 #3506 中添加了对 CatBoost 模型中特殊字符的支持
- 由 @MonoHue 在 #3530 中添加了在
beeswarm图中控制标记大小的功能
已修复
- 由 @trivialfis 在 #3462 中修复了 XGBoost 模型加载问题
- 由 @costrau 在 #3536 中修复了某些分词器造成的文本掩码问题
- 由 @connortann 在 #3542 中修复了 KernelExplainer 在解释 TensorFlow 模型时的问题
- 由 @connortann 在 #3547 中修复了 force_plot 对负贡献的贡献阈值
- 由 @connortann 在 #3514 中删除了对默认警告过滤器或格式化程序的覆盖
.. 以及由 @CloseChoice、@yuanx749、@LakshmanKishore 及其他人进行的大量文档、测试和其他维护更新。
新贡献者
- @richarddli 在 #3494 中首次贡献
- @yuanx749 在 #3458 中首次贡献
- @LakshmanKishore 在 #3393 中首次贡献
- @trivialfis 在 #3462 中首次贡献
- @DanGolding 在 #3526 中首次贡献
- @MonoHue 在 #3530 中首次贡献
- @costrau 在 #3536 中首次贡献
完整更新日志:v0.44.1...v0.45.0
v0.44.1
发布于 2024-01-25 - GitHub - PyPI
补丁版本,用于修复力图显示问题。
已修复
- 由 @CloseChoice 在 #3464 中修复了影响力图显示的 HTML 问题
- 由 @CloseChoice 在 #3459 中修复了 CatBoost 回归器交互值计算问题
- 由 @CloseChoice 在 #3345 中将 XGBoost 解析更新为使用 ubjson 格式,替换了已弃用的二进制格式
其他
- 进一步改进文档
完整更新日志:v0.44.0...v0.44.1
v0.44.0
发布于 2023-12-07 - GitHub - PyPI
此版本包含许多增强功能和错误修复。
有何变化
已添加
- 由 @lorentzenchr 在 #3271 中实现了 KernelShap 中更快、更稳定的线性求解器
- 由 @mtlulka 在 #3355 中启用了将
ax传递给group_difference()图的功能 - 由 @fountaindive 在 #3386 中为条形图添加了对 Explanation.display_data 的支持
- 由 @connortann 在 #3403 中改进了从源代码构建时的构建消息
已修复
- 由 @CloseChoice 在 #3325 中修复了 Windows 上具有特征交互的
CatboostClassifier解释 - 由 @vancromy 在 #3314 中修复了 XGBoost 模型参数传递给 xgboost.DMatrix 的问题
- 由 @mtlulka 在 #3352 中明确指定了 xgboost>=1.4 约束
- 由 @thatlittleboy 在 #3359 中修复了 DMatrix 到 CSR 矩阵的转换问题
- 由 @CloseChoice 在 #3369 中删除了
dependence_plot中已弃用的use_line_collection - 由 @SomeUserName1 在 #2799 中修复了
scatter图中数组重塑相关的错误
文档
- 由 @connortann、@znacer、@thatlittleboy、@CloseChoice 和 @stompsjo 修复并更新了大量示例笔记本
新贡献者
- @vancromy 在 #3314 中首次贡献
- @lorentzenchr 在 #3271 中首次贡献
- @mtlulka 在 #3352 中首次贡献
- @fountaindive 在 #3386 中首次贡献
- @SomeUserName1 在 #2799 中首次贡献
- @stompsjo 在 #3391 中首次贡献
完整更新日志:v0.43.0...V0.44.0
v0.43.0
发布于 2023-10-09 - GitHub - PyPI
有何变化
此版本包含多项错误修复和改进。
根据 NEP 29 弃用政策,此版本取消了对 python 3.7 的支持。
重大更改
- 由 @thatlittleboy 在 #3316 中删除了已弃用的 Boston 数据集
- 由 @thatlittleboy 在 #3121 中,Explanation.base_values 的形状已在不同 TreeExplainer 模型之间标准化为始终为 (N,) 而不是 (N,1)。
已添加
- 由 @noxthot 在 #3265 中为 PyTorch DeepExplainer 添加了可加性检查(默认激活)
- 由 @101AlexMartin 在 #3062 中添加了允许在多输出条形图图例中打印平均 SHAP 值的标志。
- 由 @connortann 在 #3157 中将热力图和小提琴图添加到顶级 API
- 由 @owenlamont 在 #3199 中用 tqdm.auto 替换了所有 tqdm 导入
已修复
- 由 @thatlittleboy 在 #3093 中修复了 macOS 上 lightgbm 测试的段错误(使用较新版本的 libomp)
- 由 @thatlittleboy 在 #3094 中支持包含单叶树(树桩)的 LightGBM 集成
- 由 @danieleongari 在 #3131 中修复了 DataFrame 到 ndarray 的 Explanation.data 转换问题
- 由 @connortann 在 #3138 中修复了 sklearn 树模型解释的瀑布图问题
- 由 @Koen-Git 在 #3153 中修复了梯度解释器的 pandas 输入问题
- 由 @thatlittleboy 在 #3126 中修复了具有方阵
.values的 Explanation 对象中feature_names的切片问题 - 由 @zaburo-ch 在 #2839 中修复了 force_matplotlib 在力符号全部相同情况下的 xlim 问题
- 由 @CloseChoice 在 #3294 中修复了 col_sample < 1 时的 NGBoost 解释问题
- 由 @noxthot 在 #3281 中修复了 PyTorch DeepExplainer 中的 torch 可加性检查问题
- 由 @znacer 在 #3264 中将 DeepExplainer 中的 print 语句替换为警告
- 由 @noxthot 在 #3259 中替换了已弃用的
register_backward_hook() - 由 @CloseChoice 在 #3306 中修复了已弃用的 xgboost early_stopping_rounds 的使用
- 由 @connortann 在 #3084 中修复了第三方弃用警告:numba、xgboost、typing、distutils
- 由 @connortann 在 #2974 中更新了 Javascript 包以更新已弃用的依赖项
此外,由 @connortann、@znacer、@arshiaar、@thatlittleboy、@dsgibbons、@owenlamont 和 @CloseChoice 对教程和示例进行了大量改进
新贡献者
- @101AlexMartin 在 #3062 中首次贡献
- @znacer 在 #3112 中首次贡献
- @danieleongari 在 #3131 中首次贡献
- @Koen-Git 在 #3153 中首次贡献
- @pre-commit-ci 在 #3173 中首次贡献
- @owenlamont 在 #3199 中首次贡献
- @arshiaar 在 #3201 中首次贡献
- @dsgibbons 在 #3200 中首次贡献
- @noxthot 在 #3265 中首次贡献
- @zaburo-ch 在 #2839 中首次贡献
- @CloseChoice 在 #3282 中首次贡献
完整更新日志:v0.42.1...v0.43.0
v0.42.1
发布于 2023-07-15 - GitHub - PyPI
补丁版本,为更广泛的架构提供 wheel。
已添加
- 由 @PrimozGodec 在 #3078 中以及 @connortann 在 #3083 中添加了适用于 linux:aarch64 和 macos:arm64 的 wheel。
已修复
- 由 @thatlittleboy 在 #3076 中修复了 shap.benchmark 的循环导入问题。
- 由 @connortann 在 #3068 中修复了 TestPyPI 发布工作流
- 由 @thatlittleboy 在 #3073 中修复了更多不稳定的测试
- 由 @jklaise 在 #2697 中修复了 shap.summary_plot 以与 matplotlib 3.6.0 兼容
- 由 @thatlittleboy 在 #3076 中修复了 benchmark 顶级导入问题
- 由 @connortann 在 #3090 中修复了顶级 shap 导入的 ipython 导入警告
完整更新日志:v0.42.0...v0.42.1
v0.42.0
发布于 2023-07-06 - GitHub - PyPI
此版本包含了许多更改,这些更改最初由 SHAP 社区通过 @dsgibbons 的 Community Fork 贡献,现已合并到主 shap 存储库中。来自此来源的 PR 在此处标记为 fork#123。
这将是最后一个支持 python 3.7 的版本。
已添加
- 添加了对 python 3.11 的支持(fork#72,由 @connortann 贡献)。
- 为
shap.datasets中的所有函数添加了n_points参数(fork#39,由 @thatlittleboy 贡献)。 - 为
KernelExplainer添加了__call__(#2966,由 @dwolfeu 贡献)。 - 添加了贡献指南(#2996,由 @connortann 贡献)。
已修复
- 修复了
plot.waterfall以支持带有布尔特征的 yticklabels(fork#58,由 @dwolfeu 贡献)。 - 阻止
TreeExplainer.__call__在传递包含分类列的 pandas DataFrame 时抛出 ValueError(fork#88,由 @thatlittleboy 贡献)。 - 修复了
shap.datasets中的采样以进行无放回采样(fork#36,由 @thatlittleboy 贡献)。 - 修复了将字典输入传递给
shap.plots.bar时出现的UnboundLocalError问题(#3001,由 @thatlittleboy 贡献)。 - 修复了在使用
Gradient时 PySpark 的 tensorflow 导入问题(#2983,由 @skamdar 贡献)。 - 修复了
shap.plots.heatmap中颜色条的宽高比,并在内部使用axmatplotlib API 进行绘图(#3040,由 @thatlittleboy 贡献)。 - 修复了
numba>=0.44的弃用警告(fork#9 和 fork#68,由 @connortann 贡献)。 - 修复了来自 numpy 类型的
numpy>=1.24的弃用警告(fork#7,由 @dsgibbons 贡献)。 - 修复了来自
Ipython.core.display的Ipython>=8的弃用警告(fork#13,由 @thatlittleboy 贡献)。 - 修复了来自
tf.optimisers的tensorflow>=2.11的弃用警告(fork#16,由 @simonangerbauer 贡献)。 - 修复了来自
sklearn.linear_model的sklearn>=1.2的弃用警告(fork#22,由 @dsgibbons 贡献)。 - 修复了来自树解释器中
ntree_limit的xgboost>=1.4的弃用警告(#2987,由 @adnene-guessoum 贡献)。 - 修复了 Windows 和 MacOS 上的构建问题(#3015,由 @PrimozGodec 贡献;#3028、#3029 和 #3031,由 @connortann 贡献)。
- 修复了
shap.explainers.Exact中不规则数组的创建问题(#3064,由 @connortann 贡献)。
已更改
- 更新了几个
shap.plots函数的 docstrings(#3003、#3005,由 @thatlittleboy 贡献)。
已删除
- 已弃用 Boston 房价数据集(fork#38,由 @thatlittleboy 贡献)。
- 删除了未使用的
mimic.py文件和MimicExplainer代码(fork#53,由 @thatlittleboy 贡献)。
维护
- 修复了失败的单元测试(fork#29,由 @dsgibbons 贡献;fork#20,由 @simonangerbauer 贡献;#3044 和 fork#24,由 @connortann 贡献)。
- 在源分发中包含 CUDA GPU C 扩展文件(#3009,由 @jklaise 贡献)。
- 修复了通过 setuptools 安装包的问题(fork#51,由 @thatlittleboy 贡献)。
- 引入了最少的
ruffLinting(fork#25、fork#26、fork#27、#2973、#2972 和 #2976,由 @connortann 贡献;#2968、#2986,由 @thatlittleboy 贡献)。 - 项目元数据更新为 PEP 517(#3022,由 @connortann 贡献)。
- 在 CI 上针对较新的依赖项引入了更彻底的测试(fork#61 和 #3017,由 @connortann 贡献)
- 单元测试时间减少了约 5 分钟(#3046,由 @connortann 贡献)。
- 引入了可重现的模糊测试夹具(#3048,由 @connortann 贡献)。
v0.41.0
发布于 2022-06-16 - GitHub - PyPI
大量错误修复和 API 改进。
- 由 @TheZL @lrjball 修复了 XGBoost 模型加载的罕见错误
- 修复了 beeswarm 图,使其不修改传入的解释对象,@ravwojdyla
- 通过 @quantumtec 使用 GH actions 自动构建 wheel 包
- 通过 @Qingtian-Zou 在 KernelExplainer 中进行内存 GC 回收
- 修复 PartitionExplainer 的 max_evals 参数
- JIT 优化 PartitionExplainer
- 修复颜色条格式问题 @SleepyPepperHead
- 新的基准测试 Notebook
- 通过 @yuuuxt 尽可能使用 display_data 进行绘图
- 通过 @RAMitchell 改进 GPUTreeShap 编译和参数
- 通过 @filusn 修复 DeepExplainer 中的 TF API 更改
- 通过 @alexander-pv 添加对绘图的 torch tensor 支持
- 切换到 Github actions 进行测试而不是 Travis
- 通过 @swalsh1123 新的 California 演示数据集
- 通过 @RichardScottOZ 修复瀑布图 bug
- 通过 @klieret 处理缺少 matplotlib 安装的问题
- 为 Additive explainer 添加线性化链接支持 (Nandish Gupta)
- 通过 @alexisdrakopoulos @collinb9 修复异常以使其更具体
- 通过 @tlabarta 为绘图添加颜色映射选项
- 通过 @rmehyde 发布固定 numpy 版本要求
- 以及 @WeichenXu123 @imatiach-msft @zeshengli @nkthiebaut @songololo @GiovannaNicora @joshzwiebel @Ashishbodla @navdeep-G @smathewmanuel @ycouble @anubhavmaity @adityasaini70 @ngupta20 @jckkvs @abs428 @JulesCollenne @Tiagosf00 @javirandor 和 @Thuener 的其他许多贡献
v0.40.0
发布于 2021-10-20 - GitHub - PyPI
此版本包含许多错误修复和大量新功能,特别是针对基于 Transformer 的 NLP 模型。一些亮点包括
- NLP 模型解释的新图表、错误修复、文档和功能(详情请参阅文档)。
- 通过 @sander-sn 重要的排列解释器性能修复
- 新的联合散点图,可在同一 y 轴上同时绘制许多图
- 通过 @morriskurz 改进了树模型的内存使用
- 通过 @coryroyce 新文档
- 通过 @PrimozGodec 新的 wheel 包构建
- 通过 @gialmisi 改进了文档的暗模式
- 通过 @c56pony @nsorros @jebarb 调整 API
v0.39.0
发布于 2021-03-03 - GitHub - PyPI
大量新的文本解释器工作得益于 @ryserrao,序列化得益于 @vivekchettiar!(稍后会注明所有其他更改)
v0.38.1
发布于 2021-01-15 - GitHub - PyPI
修复了与 v0.38.0 版本和序列化更新的版本不匹配问题。
v0.38.0
发布于 2021-01-14 - GitHub - PyPI
此版本包含对 Transformer 文本模型解释的改进支持以及对新的基于 Explanation 对象的 API 的支持。具体改进包括
- 通过 @ryserrao 在 Text explainer 中支持 Transformer 模型
- 通过 @RAMitchell Interventional Tree explainer GPU 支持
- 通过 @anusham1990 图像字幕模型支持
- 通过 @maggiewu19 基准测试改进
- 通过 @vivekchettiar 新的文本和图像可视化
- 通过 @vivekchettiar 新的解释器序列化支持
- 通过 @heimengqi 线性解释器和新 API 的错误修复
- 通过 @jeffreyftang 分类图修复
- 通过 @JohnZed CUDA 支持改进
- 通过 @vasilismsr 支持 econML 模型
- 许多其他错误修复和 API 改进。
v0.37.0
发布于 2020-11-04 - GitHub - PyPI
此版本包含对新 API 的更多支持、许多错误修复以及初步的模型无关文本/图像解释器支持(仍处于测试阶段)。具体贡献包括
- 通过 @tcbegley 修复 Sampling explainer 样本计数问题
- 添加多条形图绘制支持。
- 初步支持队列。
- 通过 @suragnair 修复导入错误
- 通过 @zhanjiezhu 修复 Tree explainer 在 max_features < 1 的隔离森林中的问题
- 通过 @lrjball 大量的文档清理和更新
- 通过 @anusham1990 修复错别字
- 添加了 Exact explainer 的文档 Notebook。
- 文本和图像解释器得益于 @anusham1990 和 Ryan Serrao
- 修复 shap.utils.hclust 的 bug
- 初步支持 InterpretML EBM 模型。
- 为 Explainer 对象添加了列分组功能。
- 修复 PyTorch 的 Deep explainer 中 for 循环索引 bug 得益于 @quentinRaq
- 初步的文本到文本可视化概念得益于 @vivekchettiar
- 通过 @wangjoshuah 颜色转换警告修复
- 通过 @PrimozGodec 修复 Kernel explainer 中伪逆的不可逆性问题
- 新的基准测试代码得益于 @maggiewu19 和 @vivekchettiar
- 其他小的 bug 修复和增强。
v0.36.0
发布于 2020-08-27 - GitHub - PyPI
此版本包含对 SHAP 代码库的重大重构,使其成为一个新的(更干净的)API。应保留完全向后兼容性,但现在大多数功能都可以在新 API 的位置使用。请注意,此 API 仍处于测试阶段,因此在下个版本发布之前,请避免将其用于生产代码。亮点包括
- 一个新的 shap.Explainer 对象,可根据给定模型和掩码数据集自动选择解释器。
- 一个新的 shap.Explanation 对象,允许对数据、SHAP 值、基值(期望值)和其他解释特定元素进行并行切片。
- 一个新的 shap.maskers.* 模块,将各种掩码(即扰动/隐藏)特征的方法与算法本身分离。
- 一个新的 shap.explainers.Partition explainer,可以非常快速地解释任何文本或图像模型。
- 一个新的 shap.maskers.Partition masker,可确保紧密分组的特征同步扰动,从而防止“不真实”的模型输入不适当地影响模型预测。它还允许对“结构化博弈”(根据分层聚类结构化联盟)进行精确的二次时间 SHAP 值计算。
- 一个新的 shap.plots.* 模块,其中包含经过改进的绘图类型,所有类型都支持新的 API。绘图现在命名更直接,因此
summary_plot(默认)变为beeswarm,dependent_plot变为scatter。并非所有绘图都已移植到新 API,但大多数已移植。 - 一个新的 notebooks/plots/* 目录,提供如何使用新绘图函数的示例。
- 一个新的 shap.plots.bar 函数,可直接创建条形图并显示分层聚类结构以将冗余特征分组在一起,并显示 Partition explainer 使用的结构(它依赖于 Owen 值,它是 Shapley 值的扩展)。
- 通过 @jameslamb 均匀检查修复
- 通过 @PrimozGodec 稀疏 kmeans 支持
- 通过 @rightx2 Pytorch 错误修复
- 通过 @SachinVarghese NPM JS 代码清理
- 通过 @ehuijzer 修复 logit force plot bug
- 通过 @floidgilbert Decision plot 文档更新
- 通过 @ChemEngDataSci sklearn GBM 修复
- 通过 @lrjball XGBoost 1.1 修复
- 通过 @QuentinAmbard 使 SHAP spark 可序列化
- 通过 @nasir-bhanpuri 自定义 summary plot 颜色映射
- 通过 @YotamElor 支持 KernelSHAP 的字符串输入
- 通过 @imatiach-msft 文档修复
- 通过 @fabsig 支持 GPBoost
- 通过 @gracecarrillo 和 @aokeson 导入 bug 修复
0.35.0
发布于 2020-02-27 - GitHub - PyPI
此版本包括
- 对 TensorFlow 2 的更好支持(感谢 @imatiach-msft)
- TreeExplainer 中对 NGBoost 模型的支持(感谢 @zhiruiwang)
- TreeExplainer 支持新的 sklearn.ensemble.HistGradientBoosting 模型。
- 用于图像和文本的 PartitionExplainer 的新改进版本。
- 通过 @DorianCzichotzki 的 IBM zOS 兼容性。
- 支持 XGBoost 1.0
- 许多错误修复,感谢 Ivan、Christian Paul、@RandallJEllis 和 @ibuda。
0.34.0
发布于 2019-12-27 - GitHub - PyPI
此版本包括
0.33.0
发布于 2019-12-11 - GitHub - PyPI
此版本包含各种错误修复和新功能,包括
- 通过 @QuentinAmbard 添加了对 TreeExplainer 的 PySpark 支持
- 一种新的绘图类型,它是 force_plot 的替代品,即
waterfall_plot - 一个新的 PermutationExplainer,它是 KernelExplainer 和 SamplingExplainer 的替代品。
- 通过 @s6juncheng 为 PyTorch 的 GradientExplainer 添加了
return_variances - 现在我们使用异常而不是 TreeExplainer 中的断言,感谢 @ssaamm
- 通过 @Jimbotsai 修复了 image_plot 转置问题
- 修复颜色条轴附件问题,感谢 Lasse Valentini Jensen
- 通过 @gabrieltseng 修复 PyTorch 中的 tensor 附件问题
- 通过 @joelostblom 修复 summary_pot 中的颜色裁剪范围
- 通过 @lemon-yellow 处理 sklearn 0.22 API 更改
- 通过 @imatiach-msft 确保 matplotlib 是可选的
0.32.1
发布于 2019-11-06 - GitHub - PyPI
此版本旨在通过 travis 和 appveyor 推出更好的自动部署包。
0.32.0
发布于 2019-11-06 - GitHub - PyPI
此版本包括
- 通过 @JiechengZhao 支持 sklearn 隔离森林
- 新的 check_additivity 测试以确保 DeepExplainer 和 TreeExplainer 中没有错误
- 修复 #861,#860
- 修复缺少 readme 示例 html 文件
- 通过 @QuentinAmbard 支持 spark 决策树回归器
- 通过 @parsatorb 更好的安全 isinstance 检查
- 通过 @bottydim 修复 TF < 2 中的急切执行
0.31.0
发布于 2019-10-21 - GitHub - PyPI
此版本包含几个新功能和错误修复
- GradientExplainer 现在支持 TensorFlow 2.0。
- 我们现在延迟加载绘图依赖项,这意味着 pip install 不再需要同时拉取 matplotlib、skimage 和 ipython。这应该会使安装更轻,特别是那些不需要绘图的安装 :)
- 为小问题添加了一个新的 BruteForceExplainer,便于测试和比较。
- 添加了一个新的 partial_dependence_plot 函数。此函数将用于在未来的示例 Notebook 中说明部分依赖图和 SHAP 值之间的密切联系。
- 通过 @gabrieltseng 处理 LinearExplainer 中没有截距的多类情况
- pip install 期间的一些 extras_require 选项,感谢 @AbdealiJK
- 其他小的错误修复和更新
0.30.2
发布于 2019-10-09 - GitHub - PyPI
此版本主要用于删除 setup.py 中没有的 dill 依赖项。它还包括
- 通过 @jonlwowski012 force.py 中的错别字修复
- 通过 @jorgecarleitao 测试代码清理
0.30.1
发布于 2019-09-09 - GitHub - PyPI
- 修复了最近 sklearn 版本树模型中的浮点舍入不匹配问题
- 一项更新,允许 TreeExplainer 更容易加载自定义树集成模型。
- 通过 @floidgilbert
decision_plot文档更新
0.30.0
发布于 2019-08-31 - GitHub - PyPI
- 通过 @floidgilbert 新的 decision_plot 函数
- 添加新的模型无关 PartitionExplainer 的 alpha 版本
- 通过 @gabrieltseng 确保 DeepExplainer 中 pytorch 的所有数据都在同一设备上
- 通过 @imatiach-msft 修复 lightgbm 边缘情况问题
- 通过 @jamesmyatt 为 shap 创建 binder 设置
- 通过 @gabrieltseng 允许梯度解释器有多个输入
- 通过 @jorgecarleitao 新的 KernelExplainer 单元测试
- 通过 @proinsias 添加 python 2/3 分类器
- 通过 @QuentinAmbard 支持 pyspark 树
- 许多其他错误修复,感谢 @rygu、@Kylecrif、@trams、@imatiach-msft、@yunchuankong、@invokermain、@lupusomniator、@satyarta、@jotsif、@parkerzf、@jaller94、@gabrieltseng 等
0.29.3
发布于 2019-06-19 - GitHub - PyPI
- 修复了由于 TensorFlow 1.14 中的更改导致的 DeepExplainer 问题。
0.29.2
发布于 2019-06-19 - GitHub - PyPI
各种错误修复和改进,包括
- 通过 @dvpolyakov 添加 CatBoost 的二元分类 SHAP 值
- 通过 @pmeier-tiplu 修复绘图的整数除法
- 通过 @mqk 支持将 Axes 对象传递给 dependence_plot
- 通过 @gabrieltseng 添加自适应平均池化和转置卷积层
- 通过 @hchandola 修复缺少 matplotlib 后端的导入错误
- 通过 @prempiyush 修复 TreeExplainer GradientBoostingClassifier bug
- 通过 @KOLANICH 使 tqdm 在 Notebook 中更好地工作
- 通过 @juliusbierk 允许 deep_pytorch 使用 cuda 模型
- 通过 @nasir-bhanpuri 修复 sklearn GradientBoostingRegressor bug
- 通过 @imatiach-msft 为 shap 线性解释器添加稀疏支持
0.29.1
发布于 2019-05-15 - GitHub - PyPI
修复以支持最新版本 sklearn 中的更改
0.29.0
发布于 2019-05-14 - GitHub - PyPI
此版本的一些亮点贡献(按时间顺序)
- 通过 @jorgecarleitao 更好的测试
- 通过 @verdimrc 图像绘图自定义
- 通过 @JiechengZhao DeepExplainer 中 PyTorch 的 Batch norm 支持
- 通过 @gabrieltseng pytorch deep explainer 的 Leaky ReLU 和其他 conv 层支持
- 通过 @moritzaugustin 修复了梯度解释器中的 keras 多输入并改进了随机种子
- 通过 @doramir 支持 catBoost ranker
- 通过 @imatiach-msft 将 XGBRanker 和 LGBMRanker 添加到 TreeExplainer
- 通过 @andriy-nikolov 修复 DeepExplainer 中 tf.keras 的嵌入查找
- 通过 @rcarneva 自定义 dependence_plot 颜色映射
- 通过 @dvpolyakov 修复 CatBoost 模型中可能的除零问题
- 许多其他错误修复/改进!
0.28.5
发布于 2019-02-16 - GitHub - PyPI
此版本仅用于刷新 AppVeyor 上未完成 0.28.4 的 Windows 构建
0.28.4
发布于 2019-02-16 - GitHub - PyPI
- 修复了 TreeExplainer 的内存损坏错误(感谢 @imatiach-msft)
- 添加了对 skopt Random Forest 和 ExtraTrees Regressors 的支持(感谢 @Bacoknight)
- 添加了对带文本旋转的 matplotlib forceplot 的支持(感谢 @vatsan)
- 添加了 save_html 函数
0.28.3
发布于 2019-01-24 - GitHub - PyPI
- 修复了 0.28 引入的一些绘图着色问题(例如 #406)
0.28.2
发布于 2019-01-23 - GitHub - PyPI
- 降级 numpy API 用法以支持旧版本。
0.28.1
发布于 2019-01-23 - GitHub - PyPI
- 修复了 Windows 上加载 XGBoost 模型时的字节对齐问题。
- 现在通过 @HughChen 匹配 XGBoost 模型中的 tree_limit 用法
- 修复了 TreeExplainer 中转换模型输出的 expected_value 的问题
0.28.0
发布于 2019-01-21 - GitHub - PyPI
- 在
KernelExplainer中添加了基于排名的特征选择支持。 KernelExplainer中l1_reg="auto"已弃用,未来将默认使用l1_reg="num_features(10)"- 基于 Lch 颜色空间的新颜色刻度。
- 多类摘要图更好的自动颜色选择。
- 更好地绘制 dependence_plots 中的 NaN 值
- 通过 @gabrieltseng 更新 PyTorch 1.0
- 修复 sklearn DecisionTreeClassifier 处理以正确归一化为概率输出
- 当
feature_dependence="independent"时,为TreeExplainer启用多输出模型支持 - 正确加载 LightGBM 模型的 objective 以用于解释模型损失。
- 修复 sklearn 模型的数值精度不匹配。
- 通过现在直接从内存而不是 JSON 加载来修复 XGBoost 模型的数值精度不匹配。
0.27.0
发布于 2019-01-01 - GitHub - PyPI
- 更好的层次聚类排序,现在可以旋转子树以提供更多的连续性。
- 解决 XGBoost JSON 问题。
- 在进行自动交互检测时考虑 NaN 值。
- PyTorch 修复。
- 更新了 LinearExplainer。
0.26.0
发布于 2018-12-12 - GitHub - PyPI
- TreeExplainer 的完全重构,以支持更深层的 C++ 集成
- TreeExplainer 中解释树模型转换输出的能力,包括损失。与 @HughChen 合作
- 通过 @AvantiShri 允许 DeepExplainer 中的动态参考值
- 通过 @ihopethiswillfi 添加分类依赖图的
x_jitter选项 - 通过 @dmilad 添加了对带分位数损失的 GradientBoostingRegressor 的支持
- 更好地绘制 NaN 值
- 修复了几个 bug。
0.25.2
发布于 2018-11-09 - GitHub - PyPI
- 通过 @JasonTam 允许将 ordering_keys 传递给 force_plot
- 通过 @imatiach-msft 修复了 KernelExplainer 的稀疏非零背景问题
- 修复了 DeepExplainer 中支持 tf.concat 的问题。
0.25.1
发布于 2018-11-08 - GitHub - PyPI
修复了 pip 包中未包含 tree_shap.h 的问题。
0.25.0
发布于 2018-11-07 - GitHub - PyPI
- GradientExplainer 中支持 PyTorch,以及 DeepExplainer 中对 PyTorch 的初步支持,感谢 @gabrieltseng。
- 通过 @jverre 的单样本 force_plot 的 matplotlib 版本。
- 支持 GradientExplainer 中的函数式 Keras 模型。
- KernelExplainer 速度提升。
- 各种性能改进和错误修复。
0.24.0
发布于 2018-08-24 - GitHub - PyPI
新改进包括:稀疏输入情况下 KernelExplainer 执行更快。支持 sklearn 梯度提升分类器。DeepExplainer 扩展以支持非常深的模型。
0.23.1
发布于 2018-08-16 - GitHub - PyPI
这修复了 DeepExplainer 的 softmax 运算符的数值稳定性问题。它还修复了 image_plot 的次要对齐问题。
0.23.0
发布于 2018-08-16 - GitHub - PyPI
此版本包含一个由 @imatiach-msft 提供的 KernelExplainer 的出色更新。KernelExplainer 现在运行更快并支持稀疏数据矩阵!
我们还重构了 DeepExplainer 并使其与 TensorFlow 1.10 兼容。仍然有一些问题需要解决,但 DeepExplainer 越来越完善了 :)
v0.22.3
发布于 2018-08-09 - GitHub - PyPI
修复了 DeepExplainer 在 TensorFlow >= 1.9 上的问题。修复了条形图问题。
v0.22.2
发布于 2018-08-08 - GitHub - PyPI
修复了 pip 打包其他解释器时出现的错误。
v0.22.1
发布于 2018-08-08 - GitHub - PyPI
修复了上次发布时从 pip 安装时引入的导入错误。
v0.22.0
发布于 2018-08-08 - GitHub - PyPI
将 iml 中的 JS 代码集成到 shap 中以简化依赖项。为 DeepExplainer 中的更多 TensorFlow 组件添加了支持。重构了绘图函数并删除了一些长期弃用的函数。修复了 KernelExplainer 在使用非零参考值时的错误(#192)。
v0.21.0
发布于 2018-07-24 - GitHub - PyPI
一个新的 LinearExplainer,可以估计线性模型的 SHAP 值,同时考虑输入特征之间的相关性。
v0.20.2
发布于 2018-07-23 - GitHub - PyPI
修复了 LightGBM 中分类特征的一些问题。还修复了 v.20 API 更改导致的一些问题。
v0.20.1
发布于 2018-07-17 - GitHub - PyPI
这只是一个用于构建 Windows wheel 文件的标签。
v0.20.0
发布于 2018-07-17 - GitHub - PyPI
此版本带来了重要的接口更改。模型的期望值不再作为返回的 shap_values 数组的最后一列包含。相反,可以通过 explainer.expected_value 访问它。这应该会使未来的事情更加清晰,因为 shap_values 矩阵的形状现在将与模型的输入数组完全相同。这对于具有许多维度输入张量的深度学习模型尤为重要。请注意,由于此更改,shap.force_plot() 现在需要模型的期望(基)值作为第一个参数。
v0.19.5
发布于 2018-07-13 - GitHub - PyPI
添加了对嵌入层和 LSTM dropout 的支持等。
v0.19.4
发布于 2018-07-12 - GitHub - PyPI
DeepExplainer 现在支持 LSTM 使用的 TensorFlow 组件。
V0.19.3: v0.19.3
发布于 2018-07-07 - GitHub - PyPI
现在提供功能齐全的 DeepExplainer 和 GradientExplainer 实现。
v0.19.2
发布于 2018-06-29 - GitHub - PyPI
修复了解释 sklearn 模型时的一个重要 bug(#137)。
v0.19.1
发布于 2018-06-28 - GitHub - PyPI
这标志着在支持 DeepExplainer 中的多维输入之前潜在接口更改的最终版本。