Scénario de test & Cas d'usage
Entrenamiento de redes neuronales artificiales clásicas.
Descubrir todas las acciones de neuralNetSe crea una tabla ancha ('datos_sensores') con 50 variables numéricas simulando lecturas de sensores. Luego, se entrena un modelo de autoencoder (entradas = objetivos) con una arquitectura que incluye una capa oculta de 5 neuronas, y se guarda en 'modelo_autoencoder'.
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'dataStep'; |
| 3 | dataStep.runCode / code='data mycas.datos_sensores(keep=sensor1-sensor50); array sensors[50] sensor1-sensor50; do i = 1 to 1000; do j = 1 to 50; sensors[j] = rand("Normal", 100, 5); end; output; end; run;'; |
| 4 | |
| 5 | LOADACTIONSET 'neuralNet'; |
| 6 | annTrain / |
| 7 | TABLE='datos_sensores', |
| 8 | inputs={'sensor1'-'sensor50'}, |
| 9 | targets={'sensor1'-'sensor50'}, |
| 10 | arch='AUTOENCODER', |
| 11 | hiddens={5}, |
| 12 | modelTable={name='modelo_autoencoder', replace=true}; |
| 13 | QUIT; |
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'neuralNet'; |
| 3 | annCode / |
| 4 | modelTable={name='modelo_autoencoder'}, |
| 5 | listNode='HIDDEN', |
| 6 | code={casOut={name='codigo_scoring_hidden', replace=true}}; |
| 7 | RUN; |
| 8 | QUIT; |
| 1 | PROC CAS; |
| 2 | LOADACTIONSET 'neuralNet'; |
| 3 | annCode / |
| 4 | modelTable={name='modelo_autoencoder'}, |
| 5 | listNode='ALL', |
| 6 | code={casOut={name='codigo_scoring_all', replace=true}}; |
| 7 | RUN; |
| 8 | QUIT; |
Se deben crear dos tablas de código. 'codigo_scoring_hidden' contendrá un DATA step que, al ejecutarse, producirá las 50 variables de entrada más 5 nuevas variables correspondientes a las neuronas de la capa oculta (ej: _H1_1_, _H1_2_, ...). 'codigo_scoring_all' generará un código que produce las 50 variables de entrada, las 5 de la capa oculta y las 50 de la capa de salida (reconstrucción). Esto valida la capacidad de `annCode` para externalizar características latentes del modelo.