3
$\begingroup$

I'm trying to understand how the base value is calculated. So I used an example from SHAP's github notebook, Census income classification with LightGBM.

Right after I trained the lightgbm model, I applied explainer.shap_values() on each row of the test set individually. By using force_plot(), it yields the base value, model output value, and the contributions of features, as shown below: enter image description here

My understanding is that the base value is derived when the model has no features. But how is it actually calculated in SHAP?

$\endgroup$
2
$\begingroup$

As you say, it's the value of a feature-less model, which generally is the average of the outcome variable in the training set (often in log-odds, if classification). With force_plot, you actually pass your desired base value as the first parameter; in that notebook's case it is explainer.expected_value[1], the average of the second class.

https://github.com/slundberg/shap/blob/06c9d18f3dd014e9ed037a084f48bfaf1bc8f75a/shap/plots/force.py#L31

https://github.com/slundberg/shap/issues/352#issuecomment-447485624

$\endgroup$
2
  • $\begingroup$ I don't really get the sense of a feature-less model. I know this is the correct explanation given also by the author of the original paper, but I am not able to understand it. Wouldn't that prediction obtained by my trained model that actually use some features? $\endgroup$ – Alexbrini Nov 23 '20 at 9:31
  • $\begingroup$ @Alexbrini, according to my understanding the featureless model can simply predict a fixed value (eg the average of the output), with no features used whatsoever. $\endgroup$ – Nikos M. Jun 8 at 8:36

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.