linkedin / linkedin/FastTreeSHAP

Additivity check fails with XGBoost

Offen
#31 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
566
Forks
38
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Hi,

when using XGB, the additivity check fails, while it does not when using native shap or lightgbm
Using `xgboost 1.7.6, shap 0.41.0 and fasttreeshap 0.1.6`

could it be linked to https://github.com/linkedin/FastTreeSHAP/issues/15 ?

example (changing `algorithm` or `feature_perturbation` lead to the same error):

```python
from sklearn.datasets import make_regression
from xgboost import XGBRegressor
from lightgbm import LGBMRegressor
from fasttreeshap import TreeExplainer as FastTreeExplainer

X, y = make_regression(n_samples=1000, n_features=10, n_informative=8, noise=1, random_state=8)
model = XGBRegressor() #LGBMRegressor()
model.fit(X, y)
explainer = FastTreeExplainer(model, algorithm="auto", shortcut=False, feature_perturbation="tree_path_dependent")
shap_matrix = explainer.shap_values(X)
```

```
Exception: Additivity check failed in TreeExplainer! Please ensure [...]
```

The following runs fine

```python
explainer = shap.TreeExplainer(model, feature_perturbation="tree_path_dependent")
shap_values = explainer.shap_values(X)
```
Thanks

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das gemeldete XGBRegressor-Beispiel mit xgboost 1.7.6, shap 0.41.0 und fasttreeshap 0.1.6 auszuführen, und vergleiche es anschließend mit den nativen SHAP- und LightGBM-Fällen. Untersuche den Additivitätsprüfpfad von fasttreeshap.TreeExplainer und dessen XGBoost-Behandlung, einschließlich des verknüpften Issues, um zu ermitteln, warum die Prüfung fehlschlägt. Als abgeschlossen gilt die Aufgabe, wenn das XGBoost-Beispiel ohne die Additivitätsausnahme ausgeführt wird und die Prüfung weiterhin gültig ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
machine-learning
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.