检查SHAP功能重要性对于一部分功能

问题描述

我正在尝试检查使用SHAP构建的模型的功能重要性。

使用以下命令可以很好地工作,但是我希望有一个仅包含部分功能的图形。这可能吗?

shap.summary_plot(shap_values,features=X_train2,feature_names=X_train2.columns,max_display=30)

我尝试在数据集上使用iloc来定义要素和要素名称的子集,例如features=X_train.iloc[;23:],但是它不起作用。

解决方法

您将需要同时对特征和shap_values进行子集设置,否则它们将无法对齐。值得的是,使用shap的新SHAP API值得。Expanation对象将使此操作变得更容易,因为它允许同时对要素和SHAP值进行简单的并行切片。