Ability to Calculate Shapley Values on a Re-weighted Tree
Add the ability to update the node weights of a tree based on a subset of the training population while keeping the original leaf-node predictions. Calculate Shapley on this re-weighted tree. The goal of this approach is to be able to calculate Shap values based on a subset of population.
This is somewhat similar to the refit option in LightGBM with decay_rate = 1.
(Note: Keep the original prediction so the Shapley values sum-up to the actual raw model prediction before sigmoid transformation.
First version implemented in an experimental API, example usage: