XGBoost offers an option pred_contribs, for which the docs explain to some degree what the result is supposed to contain, but they do not explain how those are computed, and do not cite any reference.
If I understand it correctly, those contributions are based on SHAP, which comes from this paper:
Lundberg, Scott M., and Su-In Lee.
"A unified approach to interpreting model predictions."
Advances in neural information processing systems 30 (2017).
Is that the case?
If I understand the paper correctly, when it computes the effect of a feature being excluded, it is supposed to take a weighted average of the predictions that would be obtained under the different possible values, but it appears XGBoost is using the sum of hessians, which would only correspond to a proportional split of the data for squared loss:
|
tree.Stat(tree.LeftChild(nidx)).sum_hess; |
Where can I find some reference describing the methodology used here and these kinds of choices?
XGBoost offers an option
pred_contribs, for which the docs explain to some degree what the result is supposed to contain, but they do not explain how those are computed, and do not cite any reference.If I understand it correctly, those contributions are based on SHAP, which comes from this paper:
Is that the case?
If I understand the paper correctly, when it computes the effect of a feature being excluded, it is supposed to take a weighted average of the predictions that would be obtained under the different possible values, but it appears XGBoost is using the sum of hessians, which would only correspond to a proportional split of the data for squared loss:
xgboost/src/predictor/interpretability/shap.cc
Line 57 in f416974
Where can I find some reference describing the methodology used here and these kinds of choices?