La acción `annScore` del conjunto de acciones `neuralNet` se utiliza para puntuar datos con un modelo de red neuronal artificial previamente entrenado. Esta acción toma un modelo entrenado (desde una tabla CAS) y una tabla de datos de entrada, y genera una tabla de salida con las predicciones. Es una herramienta fundamental en el ciclo de vida del machine learning para aplicar modelos a nuevos datos y evaluar su rendimiento o para la implementación en producción.
| Parámetro | Descripción |
|---|---|
| assess | Cuando se establece en True, las probabilidades predichas se agregan a la tabla de resultados para los niveles de eventos. Puede usar estas probabilidades predichas con la acción `assess`. |
| assessOneRow | Cuando se establece en True, las probabilidades predichas se agregan a la tabla de resultados para los niveles de eventos. Todas las probabilidades de eventos se incluyen como columnas separadas y se nombran con el prefijo _NN_P_. Puede usar estas probabilidades predichas con la acción `assess`. |
| casOut | Especifica la tabla de salida para almacenar los resultados de la puntuación. Esta tabla contendrá las variables copiadas de la tabla de entrada, así como las nuevas columnas con las predicciones del modelo. |
| copyVars | Especifica las variables a transferir desde la tabla de entrada a la tabla de salida. |
| impute | Cuando se establece en True, las observaciones con un valor no ausente para la variable objetivo se utilizan como los valores predichos. Es decir, se asume que el valor observado se conoce sin error. Solo se puntúan las observaciones con valores ausentes para la variable objetivo, basándose en sus valores para las variables de entrada. |
| includeMissing | Por defecto, se incluyen las observaciones con valores ausentes. Cuando se establece en False, no se incluye ninguna observación con valores ausentes para las variables utilizadas en el modelo. |
| listNode | Especifica los nodos que se incluirán en la tabla de salida puntuada. Cuando se solicita la autocodificación de los nodos de entrada, el valor predeterminado es HIDDEN. Este valor es particularmente útil cuando se aplica la autocodificación para reducir la dimensión de los nodos de entrada. Al reutilizar los valores de salida de los nodos, los algoritmos de aprendizaje automático como redes neuronales, clustering, árboles de decisión y bosques pueden usar los nuevos vectores codificados como entrada. |
| modelId | Especifica el nombre de la variable de ID del modelo a usar al generar la tabla puntuada. Por defecto, el nombre de la variable es _NN_PredName_ para clasificaciones y _NN_Pred_ para regresiones. |
| modelTable | Especifica la tabla que contiene el modelo de red neuronal artificial. Puede usar este modelo para puntuar una tabla o generar código de puntuación SAS. |
| table | Especifica la tabla de entrada que se va a puntuar. Esta tabla debe contener las mismas variables de entrada que se usaron para entrenar el modelo. |
| target | Especifica la variable objetivo al puntuar un conjunto de datos. Si el nombre de la variable objetivo en el modelo es el mismo en la tabla puntuada, entonces esta opción no es necesaria. |
Este código crea una tabla CAS llamada 'hmeq_score' que contiene datos para ser puntuados. Estos datos simulan nuevos clientes para los cuales queremos predecir el riesgo de impago. Asumimos que un modelo llamado 'my_ann_model' ya ha sido entrenado y está disponible en la sesión CAS.
| 1 | DATA casuser.hmeq_score; |
| 2 | SET sashelp.hmeq(obs=50); |
| 3 | keep LOAN MORTDUE VALUE REASON JOB YOJ DEROG DELINQ CLAGE NINQ CLNO DEBTINC; |
| 4 | RUN; |
Este ejemplo muestra cómo puntuar la tabla 'hmeq_score' utilizando un modelo de red neuronal previamente entrenado y almacenado en la tabla 'my_ann_model'. La tabla de salida 'hmeq_scored' contendrá las predicciones.
| 1 | PROC CAS; |
| 2 | neuralNet.annScore / |
| 3 | TABLE={name='hmeq_score'} |
| 4 | modelTable={name='my_ann_model'} |
| 5 | casOut={name='hmeq_scored', replace=true}; |
| 6 | RUN; |
| 7 | QUIT; |
Este ejemplo puntúa la tabla 'hmeq_score' y, además, solicita la generación de probabilidades predichas para cada nivel del evento (parámetro `assess=true`). También copia explícitamente las variables 'LOAN' y 'DEBTINC' a la tabla de salida para un análisis más enfocado.
| 1 | PROC CAS; |
| 2 | neuralNet.annScore / |
| 3 | TABLE={name='hmeq_score'} |
| 4 | modelTable={name='my_ann_model'} |
| 5 | assess=true |
| 6 | copyVars={'LOAN', 'DEBTINC'} |
| 7 | casOut={name='hmeq_scored_assessed', replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
Este ejemplo utiliza el modelo para imputar valores ausentes en la variable objetivo 'DEBTINC'. El parámetro `impute=true` indica que solo las filas donde 'DEBTINC' es nulo serán puntuadas; para las demás, se mantendrá el valor original. El parámetro `target` es necesario para especificar qué variable se está imputando.
| 1 | PROC CAS; |
| 2 | neuralNet.annScore / |
| 3 | TABLE={name='hmeq_score_with_missing'} |
| 4 | modelTable={name='my_debtinc_model'} |
| 5 | impute=true |
| 6 | target='DEBTINC' |
| 7 | casOut={name='hmeq_imputed', replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
Este ejemplo utiliza la puntuación no para predecir un objetivo, sino para extraer las activaciones de las capas ocultas de un autoencoder. El parámetro `listNode='HIDDEN'` especifica que la tabla de salida debe contener los valores de los nodos de las capas ocultas, que pueden ser utilizados como nuevas características (features) para otros modelos.
| 1 | PROC CAS; |
| 2 | neuralNet.annScore / |
| 3 | TABLE={name='input_data_for_encoding'} |
| 4 | modelTable={name='my_autoencoder_model'} |
| 5 | listNode='HIDDEN' |
| 6 | casOut={name='encoded_features', replace=true}; |
| 7 | RUN; |
| 8 | QUIT; |
Una empresa de retail quiere optimizar su próxima campaña de marketing. Necesita identificar a los clientes con mayor probabilidad de comprar un nuevo producto. Se utilizará un ...
Una entidad financiera busca mejorar sus modelos de detección de fraude. En lugar de usar datos transaccionales brutos, que son numerosos y ruidosos, aplicarán un modelo autoenc...
Una planta de manufactura necesita predecir fallos en su maquinaria analizando datos de sensores IoT en tiempo real. El volumen de datos es masivo (millones de registros por hor...