linearExplainer
Description
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).
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.
| 1 | PROC CASUTIL; |
| 2 | load DATA=sashelp.cars casout="cars" promote; |
| 3 | QUIT; |
| 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').
| 1 | PROC 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"; |
| 9 | RUN; |
| 10 | QUIT; |
Résultat Attendu :
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.
| 1 | PROC 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}; |
| 14 | RUN; |
| 15 | QUIT; |