?> annCode - WeAreCAS
neuralNet

annCode

Description

L'action `annCode` génère un code SAS DATA step à partir d'un modèle de réseau de neurones artificiels entraîné. Ce code peut ensuite être utilisé pour scorer de nouvelles données, c'est-à-dire pour appliquer le modèle et obtenir des prédictions. C'est une étape cruciale pour déployer un modèle en production ou pour l'intégrer dans d'autres processus SAS.

neuralNet.annCode { code={...}, listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT", modelId="string", modelTable={...} };
Paramètres
ParamètreDescription
codeSpécifie les options pour la génération du code de scoring SAS DATA step. Ce paramètre est essentiel pour obtenir le code exécutable.
listNodeDéfinit quels types de nœuds (entrée, cachés, sortie, ou tous) seront inclus dans la table de sortie scorée. Utile pour l'auto-encodage afin de réduire la dimensionnalité.
modelIdAssigne un nom de variable pour l'ID du modèle dans le code DATA step généré. Par défaut, le nom est préfixé par 'ANN_' suivi du nom de la variable cible.
modelTableSpécifie la table CAS en mémoire qui contient le modèle de réseau de neurones à partir duquel le code de scoring sera généré. Ce paramètre est obligatoire.
Préparation des Données
Création de la table d'exemple `hmeq`

Ce code télécharge un fichier CSV contenant des données sur des prêts immobiliers (Home Equity) et le charge dans une table CAS nommée `HMEQ`. Cette table sera utilisée pour entraîner un modèle de réseau de neurones.

1PROC casutil;
2 load file '%sas_sashome%/dmcas_packages/samples/hmeq.csv'
3 casout={name='hmeq', caslib='casuser', replace=true};
4QUIT;

Exemples

Cet exemple entraîne d'abord un modèle de réseau de neurones simple sur la table `hmeq` avec la procédure `annTrain`. Ensuite, il utilise l'action `annCode` pour générer le code de scoring DATA step correspondant et le stocker dans une table CAS nommée `score_code`.

Code SAS® / CAS
Copié !
1PROC CAS;
2 neuralNet.annTrain /
3 TABLE={name='hmeq'},
4 inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ', 'DEROG', 'DELINQ', 'CLAGE', 'NINQ', 'CLNO', 'DEBTINC'},
5 target='BAD',
6 modelTable={name='nn_model', caslib='casuser', replace=true};
7 neuralNet.annCode /
8 modelTable={name='nn_model', caslib='casuser'},
9 code={casOut={name='score_code', caslib='casuser', replace=true}};
10QUIT;
Résultat :
L'action génère une table CAS nommée `score_code` dans la caslib `casuser`. Cette table contient le code DATA step qui peut être utilisé pour scorer de nouvelles données basées sur le modèle `nn_model`.

Cet exemple, après avoir entraîné un modèle, génère le code de scoring en spécifiant un `modelId` personnalisé. Cela permet de mieux identifier l'origine des prédictions dans le code généré, ce qui est utile pour la traçabilité et la gestion de plusieurs modèles.

Code SAS® / CAS
Copié !
1PROC CAS;
2 neuralNet.annTrain /
3 TABLE={name='hmeq'},
4 inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ'},
5 target='BAD',
6 modelTable={name='nn_model_detailed', caslib='casuser', replace=true};
7 neuralNet.annCode /
8 modelTable={name='nn_model_detailed', caslib='casuser'},
9 modelId='MyFirstNNModel',
10 code={casOut={name='score_code_detailed', caslib='casuser', replace=true}};
11QUIT;
Résultat :
Une table CAS nommée `score_code_detailed` est créée. Le code DATA step à l'intérieur utilisera 'MyFirstNNModel' comme identifiant pour les variables de prédiction, par exemple `P_MyFirstNNModel1` et `P_MyFirstNNModel0`.

FAQ

Quel est l'objectif de l'action `annCode` dans SAS Viya ?
Quel paramètre est indispensable pour utiliser l'action `annCode` ?
Comment puis-je sauvegarder le code de scoring généré dans une table CAS ?
Que fait le paramètre `listNode` et quelle est sa valeur par défaut ?