SHAP values for feature contributions (#2438)

* SHAP values for feature contributions

* Fix commenting error

* New polynomial time SHAP value estimation algorithm

* Update API to support SHAP values

* Fix merge conflicts with updates in master

* Correct submodule hashes

* Fix variable sized stack allocation

* Make lint happy

* Add docs

* Fix typo

* Adjust tolerances

* Remove unneeded def

* Fixed cpp test setup

* Updated R API and cleaned up

* Fixed test typo
This commit is contained in:
Scott Lundberg
2017-10-12 12:35:51 -07:00
committed by GitHub
parent ff9180cd73
commit 78c4188cec
16 changed files with 369 additions and 143 deletions

View File

@@ -224,7 +224,7 @@ class GBLinear : public GradientBooster {
void PredictContribution(DMatrix* p_fmat,
std::vector<bst_float>* out_contribs,
unsigned ntree_limit) override {
unsigned ntree_limit, bool approximate) override {
if (model.weight.size() == 0) {
model.InitModel();
}

View File

@@ -233,8 +233,8 @@ class GBTree : public GradientBooster {
void PredictContribution(DMatrix* p_fmat,
std::vector<bst_float>* out_contribs,
unsigned ntree_limit) override {
predictor->PredictContribution(p_fmat, out_contribs, model_, ntree_limit);
unsigned ntree_limit, bool approximate) override {
predictor->PredictContribution(p_fmat, out_contribs, model_, ntree_limit, approximate);
}
std::vector<std::string> DumpModel(const FeatureMap& fmap,