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.
| 1 | DATA mycas.iris; |
| 2 | SET sashelp.iris; |
| 3 | RUN; |
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; |
Una empresa de telecomunicaciones desea predecir qué clientes tienen una alta probabilidad de cancelar su suscripción (churn). El objetivo es entrenar un modelo de red neuronal ...
Una planta de fabricación utiliza sensores para monitorear el estado de sus máquinas. Se entrena un modelo inicial para predecir fallos. A medida que se recopilan nuevos datos d...
Un hospital está analizando datos de pacientes para predecir la probabilidad de reingreso. Los datos clínicos a menudo están incompletos (valores faltantes) y algunos pacientes,...