Sas*_*eux 7 python xgboost shap
这是我使用 shap 的代码:
由于我只是绘制了相同形状值的三倍,因此我希望这三个图是相同的。然而,它一直在变化。经过一些研究,似乎每次调用时顶部都会出现一个新值,但为什么呢?这是形状中的错误吗?
编辑1:我尝试在每次调用之间加载相同的模型shap.plots.beeswarm,但结果仍然不同。
感谢@jared_mamrot 我能找到解决方案。我只需要更改 shap 函数 beeswarm 的代码:
Line 57 : shap_exp = shap_values
Run Code Online (Sandbox Code Playgroud)
取而代之 :
Line 57 : shap_exp = copy.deepcopy(shap_values)
Run Code Online (Sandbox Code Playgroud)
确保在代码顶部导入库:
import copy
Run Code Online (Sandbox Code Playgroud)
编辑:如果您不想更改源代码,只需在调用 beeswarm 时提供 shap_values 的深层副本,如下所示:
import copy
shap.plots.beeswarm(copy.deepcopy(shap_values), max_display=15)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2744 次 |
| 最近记录: |