AttributeError: ‘numpy.ndarray‘ object has no attribute ‘base_values‘

问题:

        在学习SHAP过程中,想通过shap.plots.waterfall 绘制 waterfall 图像,结果遇到如下错误提示:

 AttributeError: ‘numpy.ndarray‘ object has no attribute ‘base_values‘_第1张图片

可以发现,在传入参数的时候,提示我的shap_values 没有base_values 的属性,从而报错,waterfall 和 shap.plot_force() (下图所示)类似,需要一个base_values作为基准值,然后进行加性的解释

 回去检查我的shap_values 发现他就是简单的数组,并没有属性

AttributeError: ‘numpy.ndarray‘ object has no attribute ‘base_values‘_第2张图片

 解决办法:

         来源于https://github.com/slundberg/shap/issues/2140

        通过 waterfall_legacy 方法代替shap.plots.waterfall,如图

 shap.plots.waterfall 要求传入的shap_values自带 base_values属性,而 waterfall_legacy 可以将参数分别传入,成功绘制

AttributeError: ‘numpy.ndarray‘ object has no attribute ‘base_values‘_第3张图片

 个人疑问:

        很奇怪为什么别人的shap_values 会自带 base_values 以及 data 属性?

AttributeError: ‘numpy.ndarray‘ object has no attribute ‘base_values‘_第4张图片

 

你可能感兴趣的:(numpy,python,开发语言)