我有一个 pandas DataFrame X。我想找到一个特定模型的预测解释。
我的模型如下:
pipeline = Pipeline(steps= [
('imputer', imputer_function()),
('classifier', RandomForestClassifier()
])
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)
y_pred = pipeline.fit(x_train, y_train).predict(x_test)
现在对于预测解释器,我使用来自 Shap 的 Kernal Explainer。
这是以下内容:
# use Kernel SHAP to explain test set predictions
shap.initjs()
explainer = shap.KernelExplainer(pipeline.predict_proba, x_train, link="logit")
shap_values = explainer.shap_values(x_test, nsamples=10)
# # plot the SHAP values for the Setosa output of the first instance
shap.force_plot(explainer.expected_value[0], shap_values[0][0,:], x_test.iloc[0,:], link="logit")
当我运行代码时,我收到错误:
ValueError: Specifying the columns using strings is only supported for pandas DataFrames.
Provided model function fails when applied to the provided data set.
ValueError: Specifying the columns using strings is only supported for pandas DataFrames
谁能帮帮我吗?我真的坚持这一点。x_train 和 x_test 都是 pandas 数据帧。