?>
La acción `annTrain` entrena una red neuronal artificial. Permite definir la arquitectura de la red (como MLP, GLIM), especificar las funciones de activación y de combinación, y configurar el proceso de optimización utilizando diversos algoritmos como LBFGS o SGD. Esta acción es fundamental para construir y ajustar modelos de redes neuronales sobre datos en CAS.
| Parámetro | Descripción |
|---|---|
| acts | Especifica la función de activación para las neuronas en cada capa oculta. |
| applyRowOrder | Especifica que la acción debe utilizar un orden de filas preespecificado. |
| arch | Especifica la arquitectura de red que se va a entrenar (por ejemplo, MLP para Perceptrón Multicapa). |
| attributes | Especifica atributos temporales, como un formato, para aplicar a las variables de entrada. |
| bias | Especifica un valor de sesgo fijo para todas las neuronas ocultas y de salida. |
| casOut | Especifica la tabla de salida donde se guardará el modelo entrenado. |
| code | Solicita que la acción produzca código de puntuación SAS DATA step. |
| combs | Especifica la función de combinación para las neuronas en cada capa oculta. |
| delta | Especifica el parámetro de recocido al realizar una optimización global de recocido simulado (SA). |
| dropOut | Especifica la tasa de dropout para las capas ocultas, útil para la regularización. |
| dropOutInput | Especifica la tasa de dropout para las capas de entrada. |
| errorFunc | Especifica la función de error para entrenar la red (por ejemplo, ENTROPY para clasificación, NORMAL para regresión). |
| freq | Especifica una variable numérica que contiene la frecuencia de ocurrencia de cada observación. |
| fullWeights | Genera el modelo de pesos completo para el optimizador LBFGS. |
| hiddens | Especifica el número de neuronas ocultas para cada capa oculta en el modelo. |
| includeBias | Indica si se deben incluir parámetros de sesgo para las unidades ocultas y de salida. |
| inputs | Especifica las variables de entrada a utilizar en el análisis. |
| inversePriors | Calcula el peso aplicado al error de predicción de cada variable objetivo nominal. |
| listNode | Especifica los nodos a incluir en la tabla de salida generada por el código de puntuación. |
| missing | Especifica cómo imputar los valores faltantes para las variables de entrada. |
| modelId | Especifica un nombre de variable de ID de modelo que se incluye en el código de puntuación DATA step generado. |
| modelTable | Especifica la tabla que contiene un modelo de red neuronal artificial para inicializar los pesos. |
| nAnns | Especifica el número de redes a seleccionar entre el número especificado de intentos. |
| nloOpts | Especifica las opciones de optimización no lineal. |
| nominals | Especifica las variables de entrada y objetivo nominales a utilizar en el análisis. |
| nTries | Especifica el número de intentos al entrenar redes con pesos iniciales aleatorios. |
| randDist | Especifica las distribuciones para generar aleatoriamente los pesos iniciales de conexión de la red. |
| resume | Reanuda una optimización de entrenamiento utilizando los pesos obtenidos de un entrenamiento anterior. |
| samplingRate | Especifica la fracción de los datos a utilizar para construir una red neuronal. |
| saveState | Especifica la tabla en la que se guardará el estado del modelo para futuras predicciones. |
| scaleInit | Especifica cómo escalar los pesos iniciales. |
| seed | Especifica la semilla de número aleatorio para generar números aleatorios para inicializar los pesos de la red. |
| std | Especifica la estandarización a utilizar en las variables de intervalo. |
| step | Especifica un tamaño de paso para las perturbaciones en los pesos de la red al realizar optimizaciones globales. |
| t | Especifica el parámetro de temperatura artificial al realizar optimizaciones globales. |
| table | Especifica la tabla de entrada que contiene los datos de entrenamiento. |
| target | Especifica la variable objetivo o de respuesta para el entrenamiento. |
| targetAct | Especifica la función de activación para las neuronas en la capa de salida. |
| targetComb | Especifica la función de combinación para las neuronas en los nodos de salida objetivo. |
| targetMissing | Especifica cómo imputar los valores faltantes para la variable objetivo. |
| targetStd | Especifica la estandarización a utilizar en las variables objetivo de intervalo. |
| validTable | Especifica la tabla con los datos de validación para la detención temprana. |
| weight | Especifica una variable para ponderar los errores de predicción para cada observación durante el entrenamiento. |
Este código carga el conjunto de datos `iris` de la librería `sashelp` en una tabla CAS llamada `mycas.iris`. Este conjunto de datos se utilizará para los ejemplos de entrenamiento de redes neuronales.
data mycas.iris;\n set sashelp.iris;\nrun;
Este ejemplo entrena un Perceptrón Multicapa (MLP) simple para clasificar las especies en el conjunto de datos `iris`. Utiliza una capa oculta con 10 neuronas. El modelo entrenado se guarda en la tabla `ann_model`.
| 1 | PROC CAS; |
| 2 | ACTION neuralNet.annTrain / |
| 3 | TABLE={name='iris', caslib='mycas'}, |
| 4 | inputs={'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'}, |
| 5 | target='Species', |
| 6 | hiddens={10}, |
| 7 | casOut={name='ann_model', caslib='mycas', replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
Este ejemplo entrena una red neuronal más compleja. Estandariza las variables de entrada usando el método 'MIDRANGE'. Utiliza una tabla de validación (`valid_data`) para la detención temprana. La arquitectura es un MLP con dos capas ocultas. Se utiliza el optimizador LBFGS con regularización L1 y se guardan tanto el modelo como el estado de la optimización.
| 1 | PROC CAS; |
| 2 | partition.partition TABLE={name='iris', caslib='mycas'}, partInd={name='_partInd_', label='Partition Indicator'}, sampPct=70, sampPct2=30, seed=123; |
| 3 | ACTION TABLE.partition / TABLE={name='iris', caslib='mycas', where='_partInd_=1'}, casOut={name='train_data', caslib='mycas', replace=true}; |
| 4 | ACTION TABLE.partition / TABLE={name='iris', caslib='mycas', where='_partInd_=2'}, casOut={name='valid_data', caslib='mycas', replace=true}; |
| 5 | ACTION neuralNet.annTrain / |
| 6 | TABLE={name='train_data', caslib='mycas'}, |
| 7 | validTable={name='valid_data', caslib='mycas'}, |
| 8 | inputs={'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'}, |
| 9 | target='Species', |
| 10 | arch='MLP', |
| 11 | hiddens={20, 15}, |
| 12 | acts={'TANH', 'RECTIFIER'}, |
| 13 | targetAct='SOFTMAX', |
| 14 | errorFunc='ENTROPY', |
| 15 | std='MIDRANGE', |
| 16 | nloOpts={algorithm='LBFGS', regL1=0.005, maxIters=200, printOpt={printFreq=10}}, |
| 17 | casOut={name='ann_model_detailed', caslib='mycas', replace=true}, |
| 18 | saveState={name='ann_state', caslib='mycas', replace=true}; |
| 19 | RUN; |
| 20 | QUIT; |