使用石灰和tf.keras模型

2024-06-30 12:35:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试图用莱姆的解释来解释克恩斯模型的预测。 数据集本身由6个属性组成,用于将每个实例分类为“通过”(1)或“失败”(0)

模型本身如下所示:

model = Sequential()
model.add(Dense(6, input_dim=6, activation="sigmoid"))
model.add(Dense(8, activation="sigmoid"))
model.add(Dense(1, activation="softmax"))

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

model.fit(X_train_ker, y_train_ker, epochs=20, use_multiprocessing=True)

对于LIME实现,我尝试使用与sklearn模型相同的参数

explainer = lime_tabular.LimeTabularExplainer(
        training_data=np.array(X_train),
        feature_names=X_train.columns,
        class_names=[0, 1],
        mode='classification'
    )
X = X_test_ker.iloc[1]
exp = explainer.explain_instance(
    data_row=X,
    predict_fn=model_keras.predict_proba(X),
)

data = exp.as_pyplot_figure()
plt.tight_layout()
plt.show()

但是,这会产生以下ValueError:

ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have value 6 but received input with shape (None, 1)

有没有办法解决这个问题,这样我就可以在我的模型中获得一些有用的见解


Tags: 模型addinputdatamodelnamestrainplt