1

How can I use SHAP after using imblearn pipeline? This is my code:

pipeline_adaboost = Pipeline([('smt', SMOTE(random_state=42)),
                    ('adaboost', AdaBoostClassifier(random_state=42))])

adaboost_parameters = {"adaboost__n_estimators":[int(x) for x in np.linspace(30, 100, 20)],
                       "adaboost__learning_rate":[float(x) for x in np.linspace(0.0001, 1, 20)],
                       "adaboost__algorithm":['SAMME.R','SAMME']}

tuned_adaboost = RandomizedSearchCV(pipeline_adaboost, adaboost_parameters, cv = 5,
                                  random_state=42,
                                  n_jobs=-1, scoring='roc_auc')
tuned_adaboost.fit(X_train,y_train)

Shap code:

explainer = shap.TreeExplainer(tuned_adaboost.best_estimator_)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values[1], X_test)

Error result :

Model type not yet supported by TreeExplainer: <class 'imblearn.pipeline.Pipeline'>
Alexander L. Hayes
  • 3,892
  • 4
  • 13
  • 34
new_data
  • 11
  • 2
  • Still no solution for this problem? I also want to use a model (including pipelines to transform the data) as the input for shap. – skan Aug 04 '23 at 15:05

0 Answers0