neuralNet

annCode

##set_neuralnet

Description

Génère un code de scoring pour l'étape DATA à partir d'un 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). de réseau de neurones artificiel. L'action est extrêmement utile pour déployer et industrialiser 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). dans des environnements de production SAS classiques sans avoir besoin de charger l'intégralité du moteur analytique en mémoire. Prêt à faire chauffer les neurones (artificiels, bien sûr) ?

Syntaxe Officielle
proc cas;
neuralNet.annCode <result=results> <status=rc> /
code={casOut={caslib="string", compress=TRUE | FALSE, indexVars={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR" | "INHERIT" | "STANDARD", name="table-name", promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy="DEFER" | "NOREDIST" | "REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}}, comment=TRUE | FALSE, fmtWdth=integer, indentSize=integer, labelId=integer, lineSize=integer, noTrim=TRUE | FALSE, tabForm=TRUE | FALSE},
listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT",
modelId="string",
modelTable={name="table-name", caslib="string", computedOnDemand=TRUE | FALSE, computedVars={{format="string", formattedLength=integer, label="string", name="variable-name", nfd=integer, nfl=integer}, {...}}, computedVarsProgram="string", dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}, importOptions={fileType="ANY", fileType-specific-parameters}, singlePass=TRUE | FALSE, vars={{...}}, where="where-expression", whereTable={...}};
run;
quit;

Paramètres Clés

Nom du paramètre Description
modelTable Spécifie la table contenant le modèle de réseau de neurones artificiel préalablement entraîné. C'est le seul paramètre requis de l'action.
code Demande à l'action de produire le code de score SAS. Il inclut la déclaration de la table de sortie (casOut) pour stocker le code généré, ainsi que des options de formatage (indentation, commentaires).
listNode Spécifie les nœuds (neurones) à inclure dans le tableau de sortie. Par défaut, seuls les nœuds cachés ('HIDDEN') sont inclus. Peut prendre les valeurs 'ALL', 'HIDDEN', 'INPUT', ou 'OUTPUT'.
modelId Définit le nom de la variable d'identification du modèle qui sera insérée dans le code de l'étape DATA généré. Par défaut, c'est la cible avec le préfixe 'ANN_'.

Préparation des données

Préparation des données et entraînement du modèle

Pour utiliser l'action annCode, il faut d'abord avoir un modèle entraîné. Voici comment charger les données Iris et entraîner un réseau de neurones avec l'action annTrain.

1PROC CAS;
2 SESSION casauto;
3 TABLE.loadTable / path="iris.sashdat", caslib="samples", casout={name="iris", replace=true};
4 neuralNet.annTrain /
5 TABLE={name="iris"}
6 inputs={"SepalLength", "SepalWidth", "PetalLength", "PetalWidth"}
7 target="Species"
8 hidden={5}
9 casOut={name="iris_ann_model", replace=true};
10RUN;
11QUIT;

Exemples d'utilisation

Génération de code de base

Génère simplement le code de scoring à partir du modèle existant.

1PROC CAS;
2 neuralNet.annCode /
3 modelTable={name="iris_ann_model"}
4 code={casOut={name="iris_score_code", replace=true}};
5RUN;
6QUIT;
Résultat Attendu :
Crée une table en mémoire nommée 'iris_score_code' contenant les lignes de code SAS (DATA Step) nécessaires pour scorer de nouvelles données avec le modèle.
Génération de code personnalisée et détaillée

Génère un code de scoring très détaillé, incluant des commentaires, ajustant l'indentation, et demandant la sortie de tous les nœuds du réseau.

1PROC CAS;
2 neuralNet.annCode /
3 modelTable={name="iris_ann_model"}
4 listNode="ALL"
5 modelId="Modele_Iris_V1"
6 code={
7 casOut={name="iris_score_code_detail", replace=true},
8 comment=true,
9 indentSize=4,
10 lineSize=120,
11 tabForm=false
12 };
13RUN;
14QUIT;
Résultat Attendu :
Crée la table 'iris_score_code_detail' contenant un code source DATA Step très propre (indenté à 4 espaces, commenté), exposant explicitement les calculs des couches d'entrée, cachées et de sortie.