# Génération de jeux de données SHAP lors des prédictions

Lors de l'exécution d'une prédiction, il est possible de générer des jeux de données SHAP importance. Vous pouvez utiliser les calculs SHAP dans ces jeux de données pour comprendre quelles caractéristiques contribuent le plus aux valeurs prédites.

Les jeux de données SHAP contiennent des calculs SHAP au niveau de la ligne pour les caractéristiques utilisées pour former le modèle. Ces valeurs représentent le niveau de contribution de chaque caractéristique à la valeur prédite de la cible, par rapport à l'ensemble des autres caractéristiques de la ligne en question.

Par exemple, SHAP importance peut nous indiquer si une caractéristique nous rend plus ou moins susceptibles de perdre un client donné et dans quelle mesure cette caractéristique influence ce résultat.

Lorsque vous avez exécuté votre prédiction et généré les jeux de données, vous pouvez charger les valeurs SHAP dans une application Qlik Sense et les visualiser à côté des valeurs prédites. Pour des informations plus détaillées, voir [Visualisation de valeurs de Shapley dans des applications Qlik Sense](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-values.htm) et [Utilisation de valeurs de Shapley dans des applications pratiques](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-applications.htm).

Cette rubrique d'aide porte sur la génération de jeux de données SHAP lors de prédictions par des déploiements ML. Pour des informations sur les graphiques SHAP importance affichés lors de l'apprentissage de l'expérimentation, voir [Familiarisation avec SHAP importance dans l'apprentissage d'une expérimentation](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-importance.htm).

Note InformationsLes jeux de données SHAP ne peuvent pas être générés lors des prédictions avec des modèles de série temporelle.

## Options disponibles pour la génération de jeux de données SHAP

Lors de la configuration d'une prédiction, vous pouvez décider de générer des jeux de données SHAP dans deux formats différents. Les deux options fournissent les mêmes informations, mais sont structurées différemment.

### SHAP

Il s'agit d'un jeu de données dans lequel les valeurs SHAP sont divisées de sorte à avoir une colonne pour chaque caractéristique. Cette option n'est pas disponible pour les modèles de classification multiclasse.

### Coordonnée SHAP

Il s'agit d'un jeu de données dans lequel toutes les valeurs SHAP sont structurées dans seulement deux colonnes : une colonne 'feature' (caractéristique) et une colonne 'value' (valeur). Cette option est disponible pour tous les types de modèle.

Les jeux de données provenant de modèles multiclasse fonctionnent légèrement différemment de ceux provenant de modèles binaires. Pour chaque enregistrement à prédire, une nouvelle ligne est créée avec la valeur SHAP pour chaque classe possible disponible à prédire par le modèle. Dans le jeu de données, une colonne supplémentaire est également créée pour identifier la classe représentée par la valeur SHAP.

Lorsque vous chargez des prédictions et des valeurs SHAP dans une application Qlik Sense et que vous créez un modèle de données, il peut être plus facile d'utiliser des jeux de données Coordonnée SHAP que des jeux de données SHAP.

### Exemples

Les tableaux suivants contiennent des échantillons de jeux de données SHAP et Coordonnée SHAP générés à partir d'un modèle de régression formée sur cinq caractéristiques. Les échantillons contiennent des valeurs SHAP pour deux enregistrements provenant du jeu de données à appliquer (correspondant à deux ID de compte).

Ces exemples soulignent la différence dans la manière dont les données sont structurées.

SHAP dataset sample

| AccountID | AdditionalFeatureSpend\_SHAP | Churned\_SHAP | CurrentPeriodUsage\_SHAP | HasRenewed\_SHAP | NumberOfPenalties\_SHAP |
| --- | --- | --- | --- | --- | --- |
| aa16889 | 1.76830971241 | -0.58154511451721 | -1.106874704361 | -0.36080026626587 | 3.6597540378571 |
| aa33396 | 0.80359643697739 | -0.64805734157562 | 0.076582334935665 | 0.38967734575272 | -0.31007811427116 |

Coordinate SHAP dataset sample

| AccountID | automl\_feature | SHAP\_value |
| --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | 1.76830971241 |
| aa16889 | Churned | -0.58154511451721 |
| aa16889 | CurrentPeriodUsage | -1.106874704361 |
| aa16889 | HasRenewed | -0.36080026626587 |
| aa16889 | NumberOfPenalties | 3.6597540378571 |
| aa33396 | AdditionalFeatureSpend | 0.80359643697739 |
| aa33396 | Churned | -0.64805734157562 |
| aa33396 | CurrentPeriodUsage | 0.076582334935665 |
| aa33396 | HasRenewed | 0.38967734575272 |
| aa33396 | NumberOfPenalties | -0.31007811427116 |

## Interprétation des valeurs des prédictions SHAP

Contrairement aux valeurs du graphique SHAP importance affiché lors de l'apprentissage de l'expérimentation, les jeux de données SHAP contiennent des calculs SHAP au niveau de la ligne qui ont une directionalité. En d'autres termes, il ne s'agit pas de valeurs absolues, mais de valeurs positives ou négatives. Lors de la visualisation des valeurs dans une application, vous pouvez décider de les agréger sous forme de valeurs absolues, suivant votre cas d'utilisation.

La valeur SHAP d'un enregistrement doit être analysée en fonction de la valeur prédite correspondante de cet enregistrement. Suivant le type de modèle (classification binaire, classification multiclasse ou régression), la directionalité des valeurs SHAP peut être interprétée légèrement différemment.

### Modèles de classification

Avec les modèles de classification binaire, les valeurs SHAP très positives indiquent une plus forte influence dans la direction de l'un des deux résultats possibles, tandis que les valeurs très négatives indiquent une plus forte influence dans la direction de l'autre résultat. Lors de l'utilisation des données dans une application, il se peut que la directionalité des valeurs SHAP ne permette pas d'obtenir l'analyse dont vous avez besoin. Pour résoudre ce problème, vous pouvez inverser la direction des valeurs SHAP (par exemple, en multipliant la colonne toute entière par -1). Pour plus d'informations sur la vérification de la direction SHAP, voir [Préparations](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-values.htm#Preparat).

Un jeu de données SHAP provenant d'un modèle multiclasse est structuré différemment. Pour chaque enregistrement à prédire, il inclut une ligne distincte pour chaque classe possible, avec une valeur SHAP correspondante pour cette classe. La classe est spécifiée dans une colonne 'Predicted\_class'.

Dans votre jeu de données Coordonnée SHAP, interprétez les valeurs SHAP provenant des prédictions d'un modèle multiclasse comme suit :

* Une valeur SHAP très positive indique que la caractéristique a une plus forte influence pour que le résultat corresponde à la valeur 'Predicted\_class' spécifiée.

* Une valeur SHAP très négative indique que la caractéristique a une plus forte influence pour que le résultat ne corresponde pas à la valeur 'Predicted\_class' spécifiée.

#### Exemple

L'exemple suivant montre la différence dans la structure du jeu de données entre la sortie d'un modèle de classification binaire et la sortie d'un modèle de classification multiclasse.

Commençons par un jeu de données à appliquer contenant une ligne par ID de compte. Chaque caractéristique sur laquelle le modèle est formé est représentée sous forme de colonne distincte.

Un seul enregistrement d'ID de compte prendrait la forme suivante :

Single record from a dataset on which predictions will be generated

| AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
| --- | --- | --- | --- | --- | --- |
| aa16889 | 18 | 33.52 | 210.1 | yes | 4 |

Si nous formons un modèle de classification binaire pour qu'il prédise le résultat d'un champ Churned, il existera deux résultats possibles : 'yes' ou 'no'. Étant donné l'enregistrement d'ID de compte unique ci-dessus, le jeu de données Coordonnée SHAP de cet enregistrement prendrait la forme suivante :

Sample from coordinate SHAP dataset for binary classification model prediction

| AccountID | automl\_feature | SHAP\_value |
| --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | -0.049129267835076 |
| aa16889 | BaseFee | -1.5363064624041 |
| aa16889 | CurrentPeriodUsage | 0.10787960191299 |
| aa16889 | HasRenewed | 1.2441783315923 |
| aa16889 | NumberOfPenalties | 2.3803616183224 |

Le tableau ci-dessus indique les valeurs SHAP d'un seul ID de compte, réparties par caractéristique. Une nouvelle ligne est créée pour chaque caractéristique, et à chaque caractéristique est attribuée une valeur SHAP. Il convient d'évaluer la direction et la magnitude de ces valeurs SHAP par rapport aux deux résultats possibles. Dans l'idéal, plus la valeur SHAP est importante, plus l'influence de la caractéristique est forte pour que le résultat ait une interprétation positive (dans ce cas, 'yes'). Si cette représentation est inversée, vous pouvez inverser la direction des valeurs SHAP (en les multipliant par -1) pour faciliter l'interprétation de l'analyse.

Pour comparer, imaginons que vous formiez un modèle de classification multiclasse pour prédire un champ PlanType catégorique (avec quatre résultats possibles : 'Blue Plan', 'Green Plan', 'Purple Plan' et 'Red Plan'). Étant donné l'enregistrement d'ID de compte unique du premier tableau, le jeu de données Coordonnée SHAP de cet enregistrement prendrait la forme suivante :

Sample from coordinate SHAP dataset for multiclass classification model prediction

| AccountID | automl\_feature | Predicted\_class | SHAP\_value |
| --- | --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | Blue Plan | 0.004155414339679 |
| aa16889 | AdditionalFeatureSpend | Green Plan | 0.0066376343942741 |
| aa16889 | AdditionalFeatureSpend | Purple Plan | -0.014411468558894 |
| aa16889 | AdditionalFeatureSpend | Red Plan | 0.003618419824941 |
| aa16889 | BaseFee | Blue Plan | 0.089301017079318 |
| aa16889 | BaseFee | Green Plan | 0.28876498452748 |
| aa16889 | BaseFee | Purple Plan | 0.055689421438434 |
| aa16889 | BaseFee | Red Plan | -0.43375542304524 |
| aa16889 | CurrentPeriodUsage | Blue Plan | -0.0040098954629816 |
| aa16889 | CurrentPeriodUsage | Green Plan | -0.27902537442842 |
| aa16889 | CurrentPeriodUsage | Purple Plan | -0.21871561841248 |
| aa16889 | CurrentPeriodUsage | Red Plan | 0.50175088830388 |
| aa16889 | HasRenewed | Blue Plan | -0.011878031228962 |
| aa16889 | HasRenewed | Green Plan | 0.036835618725654 |
| aa16889 | HasRenewed | Purple Plan | 0.13798314881109 |
| aa16889 | HasRenewed | Red Plan | -0.16294073630778 |
| aa16889 | NumberOfPenalties | Blue Plan | 0.20519095034486 |
| aa16889 | NumberOfPenalties | Green Plan | 0.0015682625647107 |
| aa16889 | NumberOfPenalties | Purple Plan | -0.084355421853302 |
| aa16889 | NumberOfPenalties | Red Plan | -0.12240379105627 |

Dans le tableau ci-dessus, un seul ID de compte est représenté par 20 lignes distinctes : une ligne pour chaque caractéristique, avec une ligne pour la valeur SHAP correspondant à chaque résultat possible dans la cible. La colonne Predicted\_class représente le résultat (la classe) possible à prédire, pas nécessairement le résultat prédit réel affiché dans le jeu de données de prédiction. Au final, la classe avec la valeur SHAP la plus haute devient la valeur prédite pour l'enregistrement.

Les valeurs SHAP de ce tableau sont des mesures de l'influence de cette caractéristique spécifiée (automl\_feature) pour que le résultat soit la classe spécifiée (Predicted\_class). Une valeur très positive indique que la caractéristique influence fortement le résultat prédit pour qu'il soit la classe spécifiée, tandis qu'une valeur très négative indique que la caractéristique influence fortement le résultat prédit pour qu'il ne soit pas la classe spécifiée.

### Modèles de régression

Dans un jeu de données SHAP généré à partir d'un modèle de régression, la direction des valeurs SHAP est plus facile à interpréter.

* Une valeur SHAP positive correspond à une augmentation de la valeur prédite pour la ligne.

* Une valeur SHAP négative correspond à une diminution de la valeur prédite pour la ligne.

## Calcul de valeurs de Shapley

Des valeurs de Shapley sont calculées pour une variété d'algorithmes. Les valeurs SHAP importance sont calculées à l'aide de deux méthodes distinctes :

* Arborescence SHAP : méthode rapide et exacte permettant d'estimer les valeurs de Shapley de trois modèles d'arborescence

* SHAP linéaire : méthode permettant de calculer des valeurs de Shapley pour des modèles linéaires

Algorithmes disponibles par types de modèle et méthode de calcul SHAP

| Algorithme | Types de modèle supportés | Méthode de calcul SHAP |
| --- | --- | --- |
| Classification Forêt d'arbres décisionnels | Classification binaire, classification multiclasse | Arborescence SHAP |
| Classification XGBoost | Classification binaire, classification multiclasse | Arborescence SHAP |
| Classification LightGBM | Classification binaire, classification multiclasse | Arborescence SHAP |
| Classification CatBoost | Classification binaire, classification multiclasse | Arborescence SHAP |
| Régression logistique | Classification binaire, classification multiclasse | SHAP linéaire |
| Régression Lasso | Classification binaire, classification multiclasse | SHAP linéaire |
| Régression du filet élastique | Classification binaire, classification multiclasse | SHAP linéaire |
| Classification naïve bayésienne gaussienne | Classification binaire, classification multiclasse | SHAP non calculé |
| Régression CatBoost | Régression | Arborescence SHAP |
| Régression LightGBM | Régression | Arborescence SHAP |
| Régression linéaire | Régression | SHAP linéaire |
| Régression Forêt d'arbres décisionnels | Régression | Arborescence SHAP |
| Régression SGD | Régression | SHAP linéaire |
| Régression XGBoost | Régression | Arborescence SHAP |