Scénario de test & Cas d'usage
Entraînement de réseaux de neurones artificiels classiques.
Découvrir toutes les actions de neuralNetCréation d'une table `CAPTEURS_MACHINE` simulant les données de 20 capteurs pour des milliers de cycles de fonctionnement. Les données sont majoritairement normales, avec quelques anomalies injectées pour simuler des pannes.
| 1 | DATA casuser.CAPTEURS_MACHINE(promote=yes); |
| 2 | array capteurs{20} capteur_1-capteur_20; |
| 3 | call streaminit(456); |
| 4 | DO cycle = 1 to 10000; |
| 5 | base_val = rand('uniform') * 10; |
| 6 | DO i = 1 to 20; |
| 7 | capteurs{i} = base_val + rand('normal', 0, 0.5); |
| 8 | END; |
| 9 | IF rand('uniform') > 0.98 THEN DO; |
| 10 | capteurs{rand('integer', 1, 20)} = rand('uniform') * 100; |
| 11 | END; |
| 12 | OUTPUT; |
| 13 | END; |
| 14 | drop i base_val cycle; |
| 15 | RUN; |
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'neuralNet'; |
| 3 | neuralNet.annTrain / |
| 4 | TABLE={name='CAPTEURS_MACHINE'}, |
| 5 | inputs={'capteur_1', 'capteur_2', 'capteur_3', 'capteur_4', 'capteur_5', 'capteur_6', 'capteur_7', 'capteur_8', 'capteur_9', 'capteur_10', 'capteur_11', 'capteur_12', 'capteur_13', 'capteur_14', 'capteur_15', 'capteur_16', 'capteur_17', 'capteur_18', 'capteur_19', 'capteur_20'}, |
| 6 | target={'capteur_1', 'capteur_2', 'capteur_3', 'capteur_4', 'capteur_5', 'capteur_6', 'capteur_7', 'capteur_8', 'capteur_9', 'capteur_10', 'capteur_11', 'capteur_12', 'capteur_13', 'capteur_14', 'capteur_15', 'capteur_16', 'capteur_17', 'capteur_18', 'capteur_19', 'capteur_20'}, |
| 7 | arch='AUTOENCODER', |
| 8 | hiddens={5}, |
| 9 | modelTable={name='MODELE_AUTOENCODEUR', replace=true}; |
| 10 | QUIT; |
| 1 | PROC CAS; |
| 2 | neuralNet.annCode / |
| 3 | modelTable={name='MODELE_AUTOENCODEUR'}, |
| 4 | listNode='HIDDEN', |
| 5 | code={casOut={name='CODE_AUTOENCODEUR', replace=true}}; |
| 6 | QUIT; |
L'action `annCode` génère une table `CODE_AUTOENCODEUR`. Le code DATA step contenu dans cette table, une fois appliqué à de nouvelles données de capteurs, doit produire une table de sortie contenant non pas les prédictions finales, mais les 5 variables intermédiaires correspondant aux activations des nœuds de la couche cachée (par exemple, `H_..._1`, `H_..._2`, etc.).