Как интерпретировать мультиклассовый классификатор глубокого обучения с помощью SHAP? - PullRequest
1 голос
/ 21 марта 2020

Я обучил многоклассный классификатор в Керасе на наборе данных IRIS. Я хочу интерпретировать мою модель глубокого обучения, используя SHAP . Я использую следующие строки кода, где модель - это мой обученный классификатор нейронной сети, X1[train] - это мой тренировочный ввод, а X1[test] - мой тестовый ввод:

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

Однако я получаю эту ошибку (I Я в порядке, когда у моего softmax есть один выход в двоичной классификации. Проблема возникает, когда softmax имеет более 1 выхода ):

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 Ответ

1 голос
/ 02 апреля 2020

Как вы импортируете керас? При выполнении from keras import... у меня была та же проблема, но при изменении на from tensorflow.keras import ... DeepExplainer работал

...