0

x_train看起来像这样(22 个特征):


total_amount    reward  difficulty  duration    discount    bogo    mobile  social  web income  ... male    other_gender    age_under25 age_25_to_35    age_35_to_45    age_45_to_55    age_55_to_65    age_65_to_75    age_75_to_85    age_85_to_105
0   0.006311    0.2 0.50    1.000000    1.0 0.0 1.0 1.0 1.0 0.355556    ... 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
1   0.015595    0.2 0.50    1.000000    1.0 0.0 1.0 1.0 1.0 0.977778    ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0

标签是0and 1,这是一个二元分类问题,这是构建模型的代码,我正在关注这个页面来实现 SHAP:


#use SHAG
deep_explainer = shap.DeepExplainer(nn_model_2, x_train[:100])

# explain the first 10 predictions
# explaining each prediction requires 2 * background dataset size runs
shap_values = deep_explainer.shap_values(x_train)

这给了我错误:

KeyError: 0

During handling of the above exception, another exception occurred

我不知道这条消息在抱怨什么,我尝试将 SHAP 与 XGBoost 和 Logistic 回归模型一起使用,它们都工作正常,我是 keras 和 SHAP 的新手,有人可以看看我以及我如何解决它? 非常感谢。

4

1 回答 1

1

我认为SHAP(不管它是什么)期待一个 Numpy 数组,因此x_train像 Numpy 数组一样索引,它会产生错误。尝试:

shap_values = deep_explainer.shap_values(x_train.values)
于 2020-08-12T12:36:33.177 回答