首页 > 解决方案 > 为什么每次我调用 shap.plots.beeswarm 时 shap 值都会发生变化?

问题描述

所以这是我使用 shap 的代码:

在此处输入图像描述

由于我只是绘制了三倍相同的形状值,我希望这三个图是相同的。然而,它一直在变化。经过一些研究,似乎每次调用的顶部都会出现一个新值,但为什么呢?它是 shap 中的错误吗?

编辑1:我尝试在每次调用之间加载相同的模型shap.plots.beeswarm,但结果仍然不同。

标签: pythonxgboostshap

解决方案


基于this github issue,问题与“其他特征的总和”变量的创建有关。这个变量是临时的,即你只使用它一次来绘图(如果你再次运行 shap.plots.beeswarm 结果是错误的)。所以我想你的问题的解决方案是“不要多次运行它就没有问题”。


推荐阅读