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.