neuralNet annCode

Prueba de Robustez: Modelo Inexistente y Parámetros Inválidos

Scénario de test & Cas d'usage

Contexto empresarial

Un analista junior está aprendiendo a usar las acciones de CAS y comete errores comunes. Este escenario prueba la capacidad de la acción `annCode` para manejar entradas incorrectas de forma controlada, como referenciar una tabla de modelo que no existe o usar nombres que podrían entrar en conflicto con las convenciones de SAS.
Sobre el conjunto : neuralNet

Entrenamiento de redes neuronales artificiales clásicas.

Descubrir todas las acciones de neuralNet
Preparación de datos

Se asume que existe un modelo válido llamado 'modelo_real' (puede ser el del escenario 1). No se crea data adicional, ya que el foco está en la llamada a la acción con parámetros incorrectos.

¡Copiado!
1PROC CAS;
2 LOADACTIONSET 'neuralNet';
3 annTrain / TABLE='sampsio.hmeq' inputs={'LOAN', 'VALUE'} target='BAD' modelTable={name='modelo_real', replace=true};
4QUIT;

Étapes de réalisation

1
Intentar generar código a partir de una tabla de modelo que no existe ('modelo_fantasma'). Se espera que la acción falle y devuelva un error claro.
¡Copiado!
1PROC CAS;
2 LOADACTIONSET 'neuralNet';
3 annCode /
4 modelTable={name='modelo_fantasma'},
5 code={casOut={name='codigo_fallido', replace=true}};
6RUN;
7QUIT;
2
Usar un 'modelId' excesivamente largo y con caracteres especiales para ver cómo el generador de código lo maneja, ya que los nombres de variables en SAS tienen restricciones.
¡Copiado!
1PROC CAS;
2 LOADACTIONSET 'neuralNet';
3 annCode /
4 modelTable={name='modelo_real'},
5 modelId='Este-es-un-ID-de-modelo-extremadamente-largo-y-con-guiones-para-probar-robustez',
6 code={casOut={name='codigo_id_largo', replace=true}};
7RUN;
8QUIT;

Resultado esperado


En la etapa 1, la acción `annCode` debe fallar. El log de CAS debe mostrar un mensaje de error indicando que la tabla 'modelo_fantasma' no se pudo encontrar. No se debe crear la tabla 'codigo_fallido'.\nEn la etapa 2, la acción debe ejecutarse correctamente. Sin embargo, el código DATA step generado en la tabla 'codigo_id_largo' debe haber saneado el 'modelId': los guiones se reemplazarán por guiones bajos y el nombre base para las variables de salida será truncado a 32 caracteres (o un límite interno válido para SAS), demostrando que la acción es robusta frente a entradas no estándar.