如何使用SHAP解释多类深度学习分类器?

时间:2020-03-21 01:20:49

标签: tensorflow machine-learning keras deep-learning shap

我在Keras上针对IRIS数据集训练了一个多分类器。我想使用SHAP来解释我的深度学习模型。我使用以下代码行,其中model是我训练后的神经网络分类器,X1[train]是我的训练输入,而X1[test]是我的测试输入:

import shap
explainer = shap.DeepExplainer(model, X1[train])
shap_values = explainer.shap_values(X1[test])

但是,出现此错误(当我的 softmax 在二进制分类中有一个输出时,我很好。当softmax具有个以上输出时,出现此问题):< / p>

ValueError: Unexpectedly found an instance of type `<class 'numpy.ndarray'>`. Expected a symbolic tensor instance.

During handling of the above exception, another exception occurred:
Layer sequential_96 was called with an input that isn't a symbolic tensor. Received type: <class 'numpy.ndarray'>. Full input:

如何解决此问题并在多类深度学习分类器中获取单个类的SHAP值?

1 个答案:

答案 0 :(得分:1)

您如何导入Keras?在进行from keras import...时,我遇到了同样的问题,但是更改为from tensorflow.keras import ...时,DeepExplainer起作用了