问题来源:
在学习shap过程中,想绘制waterfall 与 bar 图,遇见如下错误:
我的shap_values是参考shap官方文档中 catboost tutorial 的例子
问题总结:
我的shap_values 仅仅是个数组,并不是真正的shap_values(没有base_values属性, 也不是一个 explanation object )
问题解决:
参考shap 官方文档关于 bar 的使用例子发现一些代码的区别
Documentation by example for shap.plots.bar — SHAP latest documentation
区别:shap_values = explainer(X)与 shap_values = explainer.shap_values(X)
赋予的对象不一样,shap_values = explainer(X)赋予的就是一个 explaination object
我将代码修改后,便可以成功使用
shap.plots.bar(explainer(X_train))
shap.plots.waterfall(explainer(X_train)[0])
希望对你有用