Shap DeepExplainer ValueError: «Ожидается экземпляр символьного c тензора» и «Вызов уровня Последовательный_3 с входными данными, не являющимися тензором символьного c». - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь построить график важности функций по временным шагам, используя Shap DeepExplainer. Однако я получаю ValueError как «Ожидается экземпляр тензора symboli c». и «Layer sequence_3 был вызван с входом, который не является тензором symboli c». Я относительно новичок в Shap и Deep Learning. Любая помощь будет оценена. Код, который я использую, прост, как показано ниже:

import shap

random_ind = np.random.choice(x.shape[0], 1000, replace = False)
random_ind2 = np.random.choice(X_test2.shape[0], 200, replace = False)

data = x[random_ind[0:1000]]
data_test = X_test2[random_ind2[0:200]]

DE = shap.DeepExplainer(model, x)
shap_values = DE.shap_values(data_test)

Моя модель выглядит так:

model = Sequential()
model.add(LSTM(
         units=50,
         return_sequences=True,
         input_shape=(seq_length, nb_features)))
model.add(Dropout(0.2))
model.add(LSTM(
          units=25,
          return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(units=1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', optimizer = "adam", metrics=["accuracy"])

Спасибо.

...