I stuck on this topic for couple days and seems I need your help to understand what is expected value in TreeExplainer when feature_perturbation = tree_path_dependent, precisely what is expected value in this code?

I use SHAP 0.35, xgboost.

explainer = shap.TreeExplainer(model=model, feature_perturbation='tree_path_dependent', model_output='raw') 
expected_value = explainer.expected_value

I know that if I use feature_perturbation = interventional then expected_value is just mean log odds from predictions:

explainer = shap.TreeExplainer(model=model, feature_perturbation='interventional', data= background_data)

#almost true
explainer.expected_value == model.predict(background_data, output_margin=True).mean()

Can you tell me what is it and how is obtained expected_value in the first code snippet?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.