问题描述
我正在尝试检查使用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值进行简单的并行切片。