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'>