为什么shap_values中没有base_values属性的问题解决

问题来源:

        在学习shap过程中,想绘制waterfall 与 bar 图,遇见如下错误:

为什么shap_values中没有base_values属性的问题解决_第1张图片

        我的shap_values是参考shap官方文档中 catboost tutorial 的例子

为什么shap_values中没有base_values属性的问题解决_第2张图片

 问题总结

        我的shap_values 仅仅是个数组,并不是真正的shap_values(没有base_values属性, 也不是一个 explanation object )

问题解决:

        参考shap 官方文档关于 bar 的使用例子发现一些代码的区别

Documentation by example for shap.plots.bar — SHAP latest documentation

为什么shap_values中没有base_values属性的问题解决_第3张图片

区别: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])

希望对你有用

你可能感兴趣的:(java,servlet,html)