SHapley Additive exPlanations ou SHAP : qu’est-ce que c’est ?

-
3
 m de lecture
-

SHapley Additive exPlanations, plus communément appelé SHAP, est une technique qui permet d’expliquer le résultat des modèles de Machine Learning. Elle est basée sur les valeurs de Shapley, qui font appel à la théorie des jeux pour attribuer le crédit de la prédiction d’un modèle à chaque caractéristique ou aux valeurs des caractéristiques.

Le mode de fonctionnement de SHAP est de décomposer le résultat d’un modèle par les sommes de l’impact de chaque caractéristique. SHAP calcule une valeur qui représente la contribution de chaque caractéristique au résultat du modèle. Ces valeurs peuvent être utilisées pour comprendre l’importance de chaque caractéristique et expliquer le résultat du modèle à un humain. Ceci apporte notamment une valeur ajoutée aux agences et aux équipes qui rendent des comptes à leurs clients ou leurs managers.

SHAP possède plusieurs propriétés intéressantes, comme sa neutralité vis-à-vis des modèles. Cela lui permet d’être utilisé sur n’importe quel modèle d’apprentissage, de produire des explications cohérentes et de gérer les comportements complexes des modèles (lorsque les caractéristiques interagissent entre elles, par exemple).

Pourquoi SHAP est-il utile ?

SHAP comporte de nombreuses utilités pour les professionnels de la Data Science. Tout d’abord, cette technique permet d’expliquer les prédictions des modèles de Machine Learning de manière compréhensible aux humains. Grâce à l’attribution d’une valeur à chaque caractéristique entrée, il montre comment et dans quelle mesure chaque caractéristique a contribué au résultat final de la prédiction. Ainsi, l’équipe peut comprendre comment le modèle a pris sa décision et peut identifier les caractéristiques les plus importantes.

Comme expliqué précédemment, ce modèle est dit agnostique (neutre). Il peut être utilisé avec n’importe quel modèle de Machine Learning. Vous n’avez donc pas à vous soucier de la structure du modèle pour comprendre le résultat de la prédiction avec SHAP. En plus, ce modèle est cohérent. Vous pouvez donc faire confiance aux explications produites, peu importe le modèle étudié.

Enfin, SHAP est particulièrement utile pour gérer des comportements complexes. Vous pouvez utiliser cette technique pour comprendre comment différentes caractéristiques affectent ensemble la prédiction du modèle.

Comment utiliser SHAP pour expliquer les prédictions ?

Voici comment utiliser SHAP pour expliquer les prédictions d’un modèle de Machine Learning :

  1. Installez le package SHAP en utilisant ‘pip install shap’.
  2. Importez le package SHAP et les autres librairies nécessaires, comme Numpy et Matplotlib.
  3. Chargez votre modèle de Machine Learning et préparez les données d’entrée que vous souhaitez expliquer.
  4. Créez un objet SHAP en utilisant la fonction ‘shap.TreeExplainer’ pour les modèles basés sur des arbres, ou ‘shap.KernelExplainer’ pour les autres types de modèles.
  5. Appelez la méthode ‘explain’ de l’objet SHAP en lui passant les données d’entrée que vous souhaitez expliquer. Cette méthode retournera une matrice de valeurs SHAP qui représente l’impact de chaque caractéristique sur la prédiction du modèle.
  6. Utilisez les valeurs SHAP pour visualiser et interpréter les résultats. Par exemple, vous pouvez utiliser la fonction ‘shap.summary_plot’ pour générer un graphique résumé qui montre l’importance relative de chaque caractéristique. Vous pouvez également utiliser la fonction ‘shap.dependence_plot’ pour visualiser comment une caractéristique particulière influence la prédiction du modèle en fonction de la valeur de cette caractéristique.

Cette technique reste simple et est d’une efficacité redoutable.

Exemple d’utilisation de SHAP

Vous retrouverez ci-dessous un exemple d’utilisation de SHAP, basé sur des arbres de décision. Pour mieux comprendre l’exemple, parlons de TreeExplainer.

TreeExplainer utilise une approche basée sur l’approximation de l’ensemble des arbres pour calculer les valeurs SHAP de chaque caractéristique. Il permet donc d’expliquer les prédictions de modèles de Machine Learning grâce aux arbres de décision. Il est aussi utile pour expliquer les modèles de régression et de classification, les Random Forests et les Gradient Boosting Machines.

Voici un exemple simple d’utilisation SHAP avec un modèle de régression basé sur des arbres de décision :

import shap
import numpy as np
import matplotlib.pyplot as plt

# Chargez votre modèle
model = load_model()

# Préparez les données d’entrée que vous souhaitez expliquer
X = prepare_data()

# Créez un objet SHAP en utilisant l’explicatif TreeExplainer
explainer = shap.TreeExplainer(model)

# Appelez la méthode explain en lui passant les données d’entrée
shap_values = explainer.explain(X)

# Affichez un graphique résumé de l’importance relative de chaque caractéristique
shap.summary_plot(shap_values, X)

# Affichez le diagramme de dépendance de la caractéristique « age »
shap.dependence_plot(« age », shap_values, X)

Cet exemple calcule les valeurs SHAP pour chaque élément de X. Il affiche ensuite un graphique résumé de l’importance relative de chaque caractéristique et un diagramme de dépendance pour la catégorie « âge ».

Pour conclure

SHAP est donc une technique permettant d’expliquer les prédictions des modèles de Machine Learning de manière polyvalente et puissante. Cette méthode est agnostique, cohérente et permet de gérer les comportements complexes des modèles. SHAP est particulièrement utile pour comprendre le fonctionnement d’un modèle, identifier les caractéristiques importantes et expliquer le résultat des prédictions à d’autres personnes de votre équipe ou vos clients.

Maintenant que vous avez découvert SHAP, vous désirez peut-être le maîtriser. Pour ce faire, nous vous invitons à en savoir plus sur les formations DataScientest intégrant le Machine Learning dans le cursus.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?