← retour aux snippets

shap: summary et dependence plots

Visualiser l'importance globale et l'effet d'une feature.

python explain #shap#summary#dependence

objectif

Visualiser l’importance globale et l’effet d’une feature.

code minimal

import shap
from lightgbm import LGBMClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

X, y = load_breast_cancer(return_X_y=True)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=0, stratify=y)

model = LGBMClassifier(n_estimators=200, random_state=0).fit(X_train, y_train)
explainer = shap.TreeExplainer(model)
sv = explainer.shap_values(X_val[:200])
print(isinstance(sv, list) or hasattr(sv, "__len__"))

utilisation

# Summary plot (beeswarm)
# shap.summary_plot(sv, X_val[:200])
print(True)

variante(s) utile(s)

# Dependence plot pour une colonne (ex: 0)
# shap.dependence_plot(0, sv, X_val[:200])
print(True)

notes

  • Pour LightGBM multiclasses, sv peut être une liste (par classe). Sur binaire, une matrice NxF.