如何在shap瀑布图中显示特征值?

2024-04-29 15:48:19 发布

您现在位置:Python中文网/ 问答频道 /正文

看着shap库,我发现了this question,其中的答案展示了瀑布图,整洁!查看一些官方示例herehere,我注意到这些图也展示了特征的价值

shap包同时包含shap.waterfall_plotshap.plots.waterfall,在Iris数据集上训练的随机林上尝试这两种方法会得到相同的结果(请参见下面的一个代码和图像示例)

for which_class in y.unique():
display(
    shap.waterfall_plot(shap.Explanation(values=shap_values[int(which_class)][idx], 
                                         base_values=explainer.expected_value[int(which_class)], 
                                         feature_names=X_test.columns.tolist())
                       )
)

其中idx表示我试图解释的测试集中的一个样本。代码为其中一个类生成以下绘图: enter image description here

如何使绘图同时显示特征值?我没有看到可以传递给plot方法的任何其他参数

非常感谢您的帮助


Tags: 方法代码绘图示例whichhereplotthis
1条回答
网友
1楼 · 发布于 2024-04-29 15:48:19

找到了

shap.Explanation方法有一个参数,您可以在其中传递数据。请参见下面编辑的示例

for which_class in y.unique():
display(
    shap.waterfall_plot(shap.Explanation(values=shap_values[int(which_class)][row], 
                                         base_values=explainer.expected_value[int(which_class)], 
                                         data=X_test.iloc[row],  # added this line
                                         feature_names=X_test.columns.tolist())
                       )
)

enter image description here (不要介意与问题中上传的图像相比,这些功能的贡献略有不同,设置随机种子可能有问题)

相关问题 更多 >