neuralNet annCode

Generación de Código para Modelo de Riesgo Crediticio

Scénario de test & Cas d'usage

Contexto empresarial

Una entidad financiera necesita desplegar un modelo de riesgo crediticio, entrenado en SAS Viya, en su entorno de producción SAS 9 para el scoring nocturno de nuevas solicitudes. El objetivo es generar un código DATA step autónomo y portable a partir de la tabla del modelo CAS.
Sobre el conjunto : neuralNet

Entrenamiento de redes neuronales artificiales clásicas.

Descubrir todas las acciones de neuralNet
Preparación de datos

Primero, se entrena un modelo de red neuronal con datos históricos de clientes (HMEQ) y se guarda en la tabla 'modelo_riesgo'. Luego, se crea una tabla 'nuevas_solicitudes' con la misma estructura (sin la variable objetivo) para simular los datos que necesitan ser puntuados.

¡Copiado!
1PROC CAS;
2 LOADACTIONSET 'dataStep';
3 dataStep.runCode / code='data mycas.hmeq_train; set sampsio.hmeq; run;';
4 
5 LOADACTIONSET 'dataPreprocess';
6 impute.impute / TABLE={name='hmeq_train'} method='MEAN' inputs={{name='DEBTINC'}, {name='NINQ'}} copyAllVars=true casOut={name='hmeq_imputed', replace=true};
7 
8 LOADACTIONSET 'neuralNet';
9 annTrain / TABLE={name='hmeq_imputed'} inputs={'LOAN', 'MORTDUE', 'VALUE', 'YOJ', 'DEROG', 'DELINQ', 'CLAGE', 'NINQ', 'CLNO', 'DEBTINC'} target='BAD' nominals={'BAD', 'REASON', 'JOB'} modelTable={name='modelo_riesgo', replace=true};
10 
11 dataStep.runCode / code='data mycas.nuevas_solicitudes; LOAN=25000; MORTDUE=80000; VALUE=120000; YOJ=5; DEROG=0; DELINQ=0; CLAGE=150; NINQ=1; CLNO=20; DEBTINC=35; REASON="HomeImp"; JOB="Office"; run;';
12QUIT;

Étapes de réalisation

1
Ejecutar la acción annCode para generar el código de puntuación a partir de la tabla 'modelo_riesgo'. Se especifica un 'modelId' personalizado para identificar las variables de salida y se guarda el código en la tabla 'codigo_scoring_riesgo'.
¡Copiado!
1PROC CAS;
2 LOADACTIONSET 'neuralNet';
3 annCode /
4 modelTable={name='modelo_riesgo'},
5 modelId='ModeloRiesgoCrediticio',
6 code={casOut={name='codigo_scoring_riesgo', replace=true}};
7RUN;
8QUIT;
2
Verificar el contenido de la tabla de código generada para asegurar que el código DATA step es sintácticamente correcto y está listo para ser usado.
¡Copiado!
1PROC CAS;
2 TABLE.fetch / TABLE={name='codigo_scoring_riesgo'};
3RUN;
4QUIT;

Resultado esperado


La acción debe generar una tabla CAS llamada 'codigo_scoring_riesgo'. Esta tabla contendrá el código SAS DATA step completo. El código incluirá la lógica del modelo de red neuronal y creará variables de salida con el prefijo 'ModeloRiesgoCrediticio_', como 'ModeloRiesgoCrediticio_P_BAD1' y 'ModeloRiesgoCrediticio_I_BAD'. El código debe ser ejecutable en un entorno SAS base para puntuar la tabla 'nuevas_solicitudes'.