Valeurs SHAP pour l’explicabilité des modèles
shap.Explainer, TreeExplainer, graphiques de force, graphiques en essaim d’abeilles, classement de l’importance des caractéristiques.
Valeurs SHAP pour l’explicabilité des modèles est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Pourquoi l’explicabilité est importante
Les modèles complexes sont précis, mais opaques. L’explicabilité répond à la question « Pourquoi le modèle a-t-il produit cette prédiction ? », ce qui est essentiel pour instaurer la confiance, déboguer le système et respecter les obligations réglementaires. SHAP est l’une des méthodes d’explication les plus utilisées.
Ce que mesure SHAP
SHAP (SHapley Additive exPlanations, c’est-à-dire des explications additives de Shapley) attribue à chaque caractéristique une contribution à une prédiction donnée. Les valeurs reposent sur les valeurs de Shapley issues de la théorie des jeux coopératifs : chaque caractéristique est un « joueur » et sa valeur SHAP représente sa part équitable de la prédiction par rapport à une valeur de référence.
Additivité
Les valeurs SHAP sont additives : la valeur de référence, c’est-à-dire la sortie moyenne du modèle, plus la somme de toutes les valeurs SHAP des caractéristiques est égale à la prédiction réelle. Ainsi, chaque explication fournit une décomposition complète et vérifiable de la sortie.
# prediction = base_value + sum(shap_values_for_each_feature)TreeExplainer
Pour les modèles en arbre (XGBoost, LightGBM, forêts aléatoires), shap.TreeExplainer calcule rapidement les valeurs SHAP exactes en exploitant la structure des arbres.
import shap
import xgboost
model = xgboost.XGBClassifier().fit(X_train, y_train)
explainer = shap.TreeExplainer(model)Calculer shap_values
explainer.shap_values(X_test) renvoie une matrice : une valeur SHAP par caractéristique et par ligne. Il s’agit des contributions brutes que vous allez visualiser.
shap_values = explainer.shap_values(X_test)
print(shap_values.shape) # (n_samples, n_features)Le nuage d’abeilles de summary_plot
shap.summary_plot produit un nuage d’abeilles : chaque point représente un échantillon pour une caractéristique donnée. Sa position indique la valeur SHAP, c’est-à-dire le sens et l’ampleur de l’impact ; sa couleur indique la valeur de la caractéristique. Les caractéristiques sont classées selon leur importance globale.
shap.summary_plot(shap_values, X_test)Lire le nuage d’abeilles
Pour lire un nuage d’abeilles :
- Les caractéristiques situées en haut sont les plus importantes globalement
- Les points très à droite augmentent la prédiction ; ceux très à gauche la diminuent
- La couleur indique le sens de l’effet ; par exemple, des valeurs élevées de la caractéristique en rouge à droite signifient qu’une valeur élevée augmente la prédiction
Expliquer une prédiction
SHAP est particulièrement utile au niveau individuel. Pour expliquer une seule ligne, vous avez besoin de ses valeurs SHAP et de la valeur de référence du modèle.
idx = 0
base = explainer.expected_value
row_shap = shap_values[idx]force_plot
shap.force_plot représente une prédiction comme un ensemble de forces partant de la valeur de référence : les caractéristiques en rouge augmentent la sortie, tandis que celles en bleu la diminuent. Le résultat net correspond à la prédiction finale.
shap.force_plot(
explainer.expected_value,
shap_values[0],
X_test.iloc[0],
)waterfall_plot
shap.waterfall_plot est la vue la plus lisible pour une prédiction individuelle. Elle part de la valeur de référence et empile progressivement la contribution de chaque caractéristique jusqu’à atteindre la sortie finale, en les triant selon leur ampleur.
shap.waterfall_plot(
shap.Explanation(
values=shap_values[0],
base_values=explainer.expected_value,
data=X_test.iloc[0],
)
)Global ou local
SHAP répond à deux besoins :
- Global :
summary_plotmontre quelles caractéristiques influencent globalement le modèle - Local :
force_plotetwaterfall_plotexpliquent une prédiction précise
Les deux vues reposent sur les mêmes valeurs SHAP, ce qui garantit une interprétation cohérente à toutes les échelles.
Vérification rapide
Évaluez vos connaissances sur SHAP.
Récapitulatif
Vous avez appris l’explicabilité des modèles avec SHAP :
shap.TreeExplainer(model)calcule les valeurs exactes pour les modèles en arbreexplainer.shap_values(X_test)renvoie les contributions de chaque caractéristique- Le nuage d’abeilles de
summary_plotmontre l’importance globale force_plotetwaterfall_plotexpliquent une seule prédiction- Les valeurs SHAP sont additives : valeur de référence + contributions = prédiction
Questions Fréquemment Posées
La leçon « Valeurs SHAP pour l’explicabilité des modèles » est-elle gratuite ?
Oui — le texte complet de « Valeurs SHAP pour l’explicabilité des modèles » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Valeurs SHAP pour l’explicabilité des modèles » ?
shap.Explainer, TreeExplainer, graphiques de force, graphiques en essaim d’abeilles, classement de l’importance des caractéristiques. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Valeurs SHAP pour l’explicabilité des modèles » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Détecter les biais dans les modèles d’apprentissage automatique
- Valeurs SHAP pour l’explicabilité des modèles
- LIME : explications locales interprétables
- Cadres éthiques et de gouvernance de l’IA