如何使用局部可解释模型不可知解释(石灰)进行多标签 GRU 回归

时间:2021-06-15 12:00:23

标签: tensorflow keras recurrent-neural-network

我有一个来自 TensorFlow Keras 的 GRU 模型。我的模型包含五个特征和四个标签

lstm_model = Sequential()
lstm_model.add(GRU(30, input_shape=(X_train.shape[1],X_train.shape[2]), activation='tanh',recurrent_activation='sigmoid'  ,kernel_initializer='RandomUniform', kernel_regularizer=regularizers.l2(0.01),return_sequences=False))
lstm_model.add(Dense(15,activation='tanh',kernel_initializer='RandomUniform'))
lstm_model.add(Dense(4))
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
lstm_model.compile(loss='mean_squared_error', optimizer='Adam' ,metrics=[metrics.MeanAbsoluteError(name="mean_absolute_error", dtype=None)])
lstm_model.summary()

我想用 LIME 来解释结果。 我正在使用以下代码

import lime
import lime.lime_tabular
%matplotlib inline


explainer = lime.lime_tabular.RecurrentTabularExplainer(X_train, training_labels=y_train, feature_names=f_columns,mode='regression',
                                                   discretize_continuous=False, class_names=f_columns,                                                 
                                                   discretizer='decile')
exp = explainer.explain_instance(X_test[4], lstm_model.predict, num_features=5, labels=(4,))
exp.save_to_file('lime.html',show_table=True, show_all=True)

但这给了我第一个标签的结果(第一个标签预测解释)。 但我想解释所有的标签

0 个答案:

没有答案