explainModel

linearExplainer

##set_explainmodel

Description

L'action linearExplainer  est votre détective privé pour les modèles d'apprentissage automatique

L'action linearExplainer est votre détective privé pour les modèles d'apprentissage automatique ! Elle utilise des modèles linéaires pour expliquer les prédictions complexes de modèles déjà entraînés (les fameuses boîtes noires). Elle prend en charge les substituts linéaires globaux ainsi que les méthodes d'explication locales très prisées : LIME et KERNEL SHAP. Idéal pour comprendre enfin pourquoi votre modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). a pris une décision spécifique (et l'expliquer brillamment à votre chef de projet).

Syntaxe Officielle
proc cas;
explainModel.linearExplainer /
table={name="table_entrainement"}
query={name="table_requete"}
modelTable={name="table_modele"}
inputs={"var1", "var2"}
predictedTarget="P_Cible"
preset="LIME"
generatedOut={name="table_explications", replace=true};
run;
quit;

Paramètres Clés

Nom du paramètre Description
table Paramètre requis. Spécifie la table de données d'entrée (la population de référence ou d'entraînement).
query Paramètre requis. Spécifie la table de données d'entrée de requête, qui contient l'observation spécifique (ou les observations) que vous souhaitez expliquer.
inputs Paramètre requis. Spécifie les variables d'entrée du modèle à utiliser dans l'analyse.
predictedTarget Paramètre requis. Spécifie la variable qui contient les prédictions du modèle (généralement préfixée par P_).
modelTable Spécifie la table d'entrée qui contient le modèle à expliquer (doit contenir un magasin analytique 'astore' ou un code de score DATA step).
preset Définit les valeurs par défaut pour la méthode d'explication. Peut être 'GLOBALREG', 'KERNELSHAP' ou 'LIME'. C'est le raccourci magique de l'action.
dataGeneration Spécifie la méthode et les options à utiliser pour la génération de données simulées autour de l'observation (ex: method='QUERYCENTERED' ou 'REFERENCEDISTRIBUTION').
explainer Spécifie le type d'explicateur et les options associées (ex: régression avec pénalité Lasso ou régression classique).
distance Spécifie les options de calcul de distance entre les observations et la requête (ex: 'EUCLIDEAN', 'SHAPKERNEL').
generatedOut Spécifie la table de sortie CAS pour stocker les données générées créées pendant le processus d'explication.

Préparation des données

Chargement des données de test

Préparation des données sashelp.cars et création d'un modèle factice ou chargement en mémoire pour préparer l'environnement d'explication.

1PROC CASUTIL;
2 load DATA=sashelp.cars casout="cars" promote;
3QUIT;
4/* Note : Un modèle astore préalablement entraîné (ex: my_astore_model) sur la table 'cars' est requis pour exécuter les exemples ci-dessous. */

Exemples d'utilisation

Explication LIME de base

Ce code utilise la méthode LIME (Local Interpretable Model-agnostic Explanations) pour expliquer une prédiction spécifique. Nous cherchons à comprendre la prédiction pour un véhicule précis (filtré via le paramètre 'query').

1PROC CAS;
2 explainModel.linearExplainer /
3 TABLE={name="cars"}
4 query={name="cars", where="Make='Acura' and Model='MDX'"}
5 modelTable={name="my_astore_model"}
6 inputs={"EngineSize", "Cylinders", "Horsepower", "Weight"}
7 predictedTarget="P_MSRP"
8 preset="LIME";
9RUN;
10QUIT;
Résultat Attendu :
L'action génère des tableaux de résultats affichant les paramètres du modèle de substitution linéaire, les poids LIME, et l'importance des variables locales pour le véhicule Acura MDX.
Explication détaillée avec Kernel SHAP et table de sortie

Utilisation de la méthode KERNEL SHAP avec génération explicite d'une table de données simulées. On force la méthode de distance et de régression, et on spécifie une variable nominale.

1PROC CAS;
2 explainModel.linearExplainer /
3 TABLE={name="cars"}
4 query={name="cars", where="Make='Audi' and Model='A4'"}
5 modelTable={name="my_astore_model"}
6 inputs={"EngineSize", "Cylinders", "Horsepower", "Weight"}
7 nominals={"Cylinders"}
8 predictedTarget="P_MSRP"
9 preset="KERNELSHAP"
10 dataGeneration={method="REFERENCEDISTRIBUTION", sampleSize=1000}
11 distance={measure="SHAPKERNEL"}
12 explainer={method="REGRESSION"}
13 generatedOut={name="shap_out", replace=true};
14RUN;
15QUIT;
Résultat Attendu :
Le modèle est expliqué via les valeurs de Shapley (Kernel SHAP). Les 1000 observations simulées pour calculer ces valeurs sont sauvegardées dans la table CAS 'shap_out' pour une analyse approfondie ultérieure.