Neural Network Action Set: Syntax

Provides actions for training and scoring artificial neural networks

annTrain Action

Trains an artificial neural network.

CASL Syntax

neuralNet.annTrain <result=results> <status=rc> /
acts={"EXP", "IDENTITY", "LOGISTIC", "RECTIFIER", "SIN", "SOFTPLUS", "TANH"}
arch="DIRECT" | "GLIM" | "MLP"
attributes={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}}
bias=double
casOut={
caslib="string",
compress=TRUE | FALSE,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
maxMemSize=64-bit-integer,
name="table-name",
onDemand=TRUE | FALSE,
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
}
code={
casOut={
caslib="string"
compress=TRUE | FALSE
indexVars={"variable-name-1" <, "variable-name-2", ...>}
label="string"
maxMemSize=64-bit-integer
name="table-name"
onDemand=TRUE | FALSE
promote=TRUE | FALSE
replace=TRUE | FALSE
replication=integer
timeStamp="string"
where={"string-1" <, "string-2", ...>}
},
comment=TRUE | FALSE,
fmtWdth=integer,
indentSize=integer,
labelId=integer,
lineSize=integer,
noTrim=TRUE | FALSE,
tabForm=TRUE | FALSE
}
combs={"ADD", "LINEAR", "RADIAL"}
delta=double
dropOut=double
errorFunc="ENTROPY" | "GAMMA" | "NORMAL" | "POISSON"
fullWeights=TRUE | FALSE
hiddens={64-bit-integer-1 <, 64-bit-integer-2, ...>}
includeBias=TRUE | FALSE
required parameter inputs={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}}
inversePriors=TRUE | FALSE
listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT"
missing="MAX" | "MEAN" | "MIN" | "NONE"
modelId="string"
modelTable={
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
onDemand=TRUE | FALSE,
singlePass=TRUE | FALSE,
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression"
}
nAnns=64-bit-integer
nTries=64-bit-integer
nloOpts={
algorithm="HF" | "LBFGS" | "SGD",
lbfgsOpt={
lineSearchMethod="ARMIJO" | "HYBRID" | "MORETHUENTE" | "STRONGWOLFE" | "WOLFE"
numCorrections=64-bit-integer
},
optmlOpt={
clipWeightMaxNorm=double
fConv=double
fConvWindow=64-bit-integer
gTol=double
maxEvals=64-bit-integer
maxIters=64-bit-integer
maxTime=double
regL1=double
regL2=double
},
printOpt={
logLevel=64-bit-integer
printFreq=64-bit-integer
printLevel="PRINTBASIC" | "PRINTDETAIL" | "PRINTNONE"
},
sgdOpt={
adaptiveRate=TRUE | FALSE
annealingRate=double
commFreq=64-bit-integer
learningRate=double
miniBatchSize=64-bit-integer
momentum=double
seed=64-bit-integer
useLocking=TRUE | FALSE
},
state={
checkpointFreq=64-bit-integer
saveBest=TRUE | FALSE
table={
caslib="string"
compress=TRUE | FALSE
indexVars={"variable-name-1" <, "variable-name-2", ...>}
label="string"
maxMemSize=64-bit-integer
name="table-name"
onDemand=TRUE | FALSE
promote=TRUE | FALSE
replace=TRUE | FALSE
replication=integer
timeStamp="string"
where={"string-1" <, "string-2", ...>}
}
},
validate={
frequency=64-bit-integer
goal=double
stagnation=64-bit-integer
}
}
nominals={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}}
randDist="CAUCHY" | "MSRA" | "NORMAL" | "UNIFORM" | "XAVIER"
resume=TRUE | FALSE
scaleInit=64-bit-integer
seed=double
std="MIDRANGE" | "NONE" | "STD"
step=double
t=double
required parameter table={
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
onDemand=TRUE | FALSE,
singlePass=TRUE | FALSE,
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression"
}
target="variable-name"
targetAct="EXP" | "IDENTITY" | "LOGISTIC" | "SIN" | "SOFTMAX" | "TANH"
targetComb="ADD" | "LINEAR" | "RADIAL"
targetMissing="MAX" | "MEAN" | "MIN" | "NONE"
targetStd="MIDRANGE" | "NONE" | "STD"
validTable={
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
onDemand=TRUE | FALSE,
singlePass=TRUE | FALSE,
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression"
}
weight="variable-name"
;

Parameter Descriptions

acts={"EXP", "IDENTITY", "LOGISTIC", "RECTIFIER", "SIN", "SOFTPLUS", "TANH"}

specifies the activation function for the neurons on each hidden layer.

Aliasact

arch="DIRECT" | "GLIM" | "MLP"

specifies the network architecture to be trained.

DIRECTspecifies to use an architecture that is an extension of MLP with direct connections between the input layer and the output layer.
GLIMspecifies to use the generalized linear model architecture. This uses a two-layer perceptron (one is the input layer and the other is the output layer) without hidden layers or units.
MLPspecifies to use a multilayer perceptron with one or more hidden layers.

attributes={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies temporary attributes, such as a format, to apply to input variables.

For more information about specifying the attributes parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

bias=double

specifies a fixed bias value for all the hidden and output neurons. In this case, the bias parameters are fixed and not optimized.

casOut={casouttable}

For more information about specifying the casOut parameter, see the common casouttable parameter (Appendix A: Common Parameters).

code={codegen}

requests that the action produce SAS score code. Specify additional parameters.

For more information about specifying the code parameter, see the common codegen parameter (Appendix A: Common Parameters).

combs={"ADD", "LINEAR", "RADIAL"}

specifies the combination function for the neurons on each hidden layer.

Aliascomb

delta=double

specifies the annealing parameter when performing a simulated annealing (SA) global optimization. Without this value, the step size and the temperature are used to perform a Monte Carlo (MC) global optimization. When you specify a value, the optimization becomes SA where the temperature is scaled by delta*t at every MC step.

dropOut=double

specifies the dropout ratio for the hidden layers. This parameter is valid when SGD is used for network layer optimization only and all the connections use the linear combination function.

Range[0–1)

dropOutInput=double

specifies the dropout ratio for the input layers. This parameter is valid when SGD is used for network layer optimization only and all the connections use the linear combination function.

Range[0–1)

errorFunc="ENTROPY" | "GAMMA" | "NORMAL" | "POISSON"

specifies the error function to train the network. If you do not specify this parameter, then the ENTROPY function is used for nominal variables. The NORMAL function is used for interval variables.

fullWeights=TRUE | FALSE

Generates the full weight model for LBFGS

DefaultFALSE

hiddens={64-bit-integer-1 <, 64-bit-integer-2, ...>}

specifies the number of hidden neurons for each hidden layer in the feedforward model. For example, hiddens={5, 3} specifies two hidden layers: one with 5 hidden neurons and the other with 3 hidden neurons. When you specify this parameter, the default architecture is multi-layer perceptron (MLP).

Aliashidden

includeBias=TRUE | FALSE

by default, bias parameters are included for the hidden and output units. When set to False, these parameters are not included.

DefaultTRUE

* inputs={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the input variables to use in the analysis.

For more information about specifying the inputs parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

inversePriors=TRUE | FALSE

calculates the weight applied to the prediction error of each nominal target variable as the total number of observations divided by the number of observations whose target class is the same as the current observation.

DefaultFALSE

listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT"

specifies the nodes to be included in the output table that is generated by the DATA step scoring code. When the autoencoding of input nodes is requested, the default is HIDDEN. This value is particularly useful when autoencoding is applied to reduce the dimension of the input nodes. By reusing the node output values, machine learning algorithms such as neural networks, clustering, decision tree, and forests can use the newly encoded vectors as input.

ALLspecifies to include all the nodes in the scored output table.
HIDDENspecifies to include the hidden nodes only.
INPUTspecifies to include the input nodes only.
OUTPUTspecifies to include the output nodes only.

missing="MAX" | "MEAN" | "MIN" | "NONE"

specifies how to impute missing values for the input or target variables. If you do not specify this parameter or the parameter is NONE, then observations with missing values are ignored. For nominal variables, a new category is created for the missing values.

MAXspecifies to replace missing values for each variable with its maximum value.
MEANspecifies to replace missing values for each variable with its mean value.
MINspecifies to replace missing values for each variable with its minimum value.
NONEspecifies to exclude the observations with missing values

modelId="string"

specifies a model ID variable name that is included in the generated DATA step scoring code. By default, this variable name is the target variable name with ANN_ set as the prefix.

modelTable={castable}

specifies the table that contains the artificial neural network model. The weights in this table are loaded to initialize the neural network.

Aliasmodel
Long formmodelTable={name="table-name"}
Shortcut formmodelTable="table-name"
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=TRUE | FALSE

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFALSE
computedVars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}

specifies data source options.

Aliasoptions, dataSource
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=TRUE | FALSE

This parameter is deprecated.

DefaultTRUE
singlePass=TRUE | FALSE

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFALSE
vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

nAnns=64-bit-integer

specifies the number of networks to select out of the specified number of tries. The networks with the smallest errors are selected as a set of optimal networks. When data is scored, the most frequent predicted values among the selected networks are used to make the final predictions. Note that you must specify a value to perform Monte Carlo or simulated annealing optimizations which also use the delta, step, and t parameters (experimental for this release).

AliasnumAnn
Default0
Minimum value0

nTries=64-bit-integer

specifies the number of tries when training networks with random initial weights. The network with the smallest error is chosen as the optimal network. Note that you must specify a value to perform Monte Carlo or simulated annealing global optimizations which also use the delta, step, and t parameters.

nloOpts={casOptml}

specifies the optimization options.

For more information about specifying the nloOpts parameter, see the common casOptml parameter (Appendix A: Common Parameters).

nominals={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the nominal input and target variables to use in the analysis.

For more information about specifying the nominals parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

randDist="CAUCHY" | "MSRA" | "NORMAL" | "UNIFORM" | "XAVIER"

specifies the distributions for randomly generating the initial network connection weights. All the weights are in the range [-1.0, 1.0]. The initial bias values are zero. When XAVIER or MSRA is specified, the scaleinit option will be ignored.

resume=TRUE | FALSE

Resumes a training optimization using weights obtained from previous training. The initial weights for resuming the optimization are read from a temporary table with the modelTable= option. The specified framework for the model must be the same as the previous framework.

DefaultFALSE

samplingRate=double

specifies the fraction of the data to use for building a neural network.

Range(0–1]

scaleInit=64-bit-integer

specifies how to scale the initial weights. If you specify 1, then the range is scaled to [-1.0 / sqrt(n), 1.0 / sqrt(n)], where n is the number of units in the previous layer. If you specify 2, then the range is scaled to [-6.0 / sqrt(n + n1), 6.0 / sqrt(n + n1)], where n1 is the number of units in the current layer.

seed=double

specifies the random number seed for generating random numbers to initialize the network weights.

Maximum valueMACINT

std="MIDRANGE" | "NONE" | "STD"

specifies the standardization to use on the interval variables.

MIDRANGEspecifies to scale the variables to a midrange of 0 and a half-range of 1.
NONEspecifies not to alter the variables.
STDspecifies to scale the variables to a mean of 0 and a standard deviation of 1.

step=double

specifies a step size for perturbations on the network weights when performing Monte Carlo or simulated annealing global optimizations.

t=double

specifies the artificial temperature parameter when performing Monte Carlo or simulated annealing global optimizations.

* table={castable}

specifies the settings for an input table.

Long formtable={name="table-name"}
Shortcut formtable="table-name"
The castable value can be one or more of the following:
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=TRUE | FALSE

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFALSE
computedVars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}

specifies data source options.

Aliasoptions, dataSource
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=TRUE | FALSE

This parameter is deprecated.

DefaultTRUE
singlePass=TRUE | FALSE

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFALSE
vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

target="variable-name"

specifies the target or response variable for training. If you do not specify a target, then the artificial neural network is trained for autoencoding.

targetAct="EXP" | "IDENTITY" | "LOGISTIC" | "SIN" | "SOFTMAX" | "TANH"

specifies the activation function for the neurons on the output layer. If you do not specify this parameter, then SOFTMAX is used for nominal variables. The IDENTITY function is used for interval variables. If the target variable is not provided, for the purposes of encoding the input nodes, then the SOFTMAX function is used.

targetComb="ADD" | "LINEAR" | "RADIAL"

specifies the combination function for the neurons on the target output nodes.

ADDadds all the incoming values without using any weights or biases.
LINEARuses a linear combination of the incoming values and weights.
RADIALuses a radial basis function with equal heights and unequal widths for all units in the layer.

targetMissing="MAX" | "MEAN" | "MIN" | "NONE"

specifies how to impute missing values for the target variable. If you specify NONE for this parameter, then observations with missing target values are ignored. For nominal variables, a new category is created for the missing values.

MAXspecifies to replace missing values for each variable with its maximum value.
MEANspecifies to replace missing values for each variable with its mean value.
MINspecifies to replace missing values for each variable with its minimum value.
NONEspecifies to exclude the observations with missing values

targetStd="MIDRANGE" | "NONE" | "STD"

specifies the standardization to use on the interval variables.

MIDRANGEspecifies to scale the variables to a midrange of 0 and a half-range of 1.
NONEspecifies not to alter the variables.
STDspecifies to scale the variables to a mean of 0 and a standard deviation of 1.

validTable={castable}

specifies the table with the validation data. Using a validation table enables the early stopping of the iteration process with the nloOpts parameter. The validation table must have the same columns and data types as the training table.

Long formvalidTable={name="table-name"}
Shortcut formvalidTable="table-name"
The castable value can be one or more of the following:
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=TRUE | FALSE

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFALSE
computedVars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}

specifies data source options.

Aliasoptions, dataSource
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=TRUE | FALSE

This parameter is deprecated.

DefaultTRUE
singlePass=TRUE | FALSE

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFALSE
vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

weight="variable-name"

specifies a variable to weight the prediction errors (the difference between the output of the network and the target value specified in the input data set) for each observation during training.

annTrain Action

Trains an artificial neural network.

Lua Syntax

results, info = s:neuralNet_annTrain{
acts={"EXP", "IDENTITY", "LOGISTIC", "RECTIFIER", "SIN", "SOFTPLUS", "TANH"},
arch="DIRECT" | "GLIM" | "MLP",
attributes={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
bias=double,
casOut={
caslib="string",
compress=true | false,
indexVars={"variable-name-1" <, "variable-name-2", ...>},
label="string",
maxMemSize=64-bit-integer,
name="table-name",
onDemand=true | false,
promote=true | false,
replace=true | false,
replication=integer,
timeStamp="string",
where={"string-1" <, "string-2", ...>}
},
code={
casOut={
caslib="string"
compress=true | false
indexVars={"variable-name-1" <, "variable-name-2", ...>}
label="string"
maxMemSize=64-bit-integer
name="table-name"
onDemand=true | false
promote=true | false
replace=true | false
replication=integer
timeStamp="string"
where={"string-1" <, "string-2", ...>}
},
comment=true | false,
fmtWdth=integer,
indentSize=integer,
labelId=integer,
lineSize=integer,
noTrim=true | false,
tabForm=true | false
},
combs={"ADD", "LINEAR", "RADIAL"},
delta=double,
dropOut=double,
dropOutInput=double,
errorFunc="ENTROPY" | "GAMMA" | "NORMAL" | "POISSON",
fullWeights=true | false,
hiddens={64-bit-integer-1 <, 64-bit-integer-2, ...>},
includeBias=true | false,
required parameter inputs={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
inversePriors=true | false,
listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT",
missing="MAX" | "MEAN" | "MIN" | "NONE",
modelId="string",
modelTable={
caslib="string",
computedOnDemand=true | false,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
onDemand=true | false,
singlePass=true | false,
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression"
},
nAnns=64-bit-integer,
nTries=64-bit-integer,
nloOpts={
algorithm="HF" | "LBFGS" | "SGD",
lbfgsOpt={
lineSearchMethod="ARMIJO" | "HYBRID" | "MORETHUENTE" | "STRONGWOLFE" | "WOLFE"
numCorrections=64-bit-integer
},
optmlOpt={
clipWeightMaxNorm=double
fConv=double
fConvWindow=64-bit-integer
gTol=double
maxEvals=64-bit-integer
maxIters=64-bit-integer
maxTime=double
regL1=double
regL2=double
},
printOpt={
logLevel=64-bit-integer
printFreq=64-bit-integer
printLevel="PRINTBASIC" | "PRINTDETAIL" | "PRINTNONE"
},
sgdOpt={
adaptiveRate=true | false
annealingRate=double
commFreq=64-bit-integer
learningRate=double
miniBatchSize=64-bit-integer
momentum=double
seed=64-bit-integer
useLocking=true | false
},
state={
checkpointFreq=64-bit-integer
saveBest=true | false
table={
caslib="string"
compress=true | false
indexVars={"variable-name-1" <, "variable-name-2", ...>}
label="string"
maxMemSize=64-bit-integer
name="table-name"
onDemand=true | false
promote=true | false
replace=true | false
replication=integer
timeStamp="string"
where={"string-1" <, "string-2", ...>}
}
},
validate={
frequency=64-bit-integer
goal=double
stagnation=64-bit-integer
}
},
nominals={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
randDist="CAUCHY" | "MSRA" | "NORMAL" | "UNIFORM" | "XAVIER",
resume=true | false,
samplingRate=double,
scaleInit=64-bit-integer,
seed=double,
std="MIDRANGE" | "NONE" | "STD",
step=double,
t=double,
required parameter table={
caslib="string",
computedOnDemand=true | false,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
onDemand=true | false,
singlePass=true | false,
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression"
},
target="variable-name",
targetAct="EXP" | "IDENTITY" | "LOGISTIC" | "SIN" | "SOFTMAX" | "TANH",
targetComb="ADD" | "LINEAR" | "RADIAL",
targetMissing="MAX" | "MEAN" | "MIN" | "NONE",
targetStd="MIDRANGE" | "NONE" | "STD",
validTable={
caslib="string",
computedOnDemand=true | false,
computedVars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>},
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter name="table-name",
onDemand=true | false,
singlePass=true | false,
vars={{
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
}, {...}},
where="where-expression"
},
weight="variable-name"
}

Parameter Descriptions

acts={"EXP", "IDENTITY", "LOGISTIC", "RECTIFIER", "SIN", "SOFTPLUS", "TANH"}

specifies the activation function for the neurons on each hidden layer.

Aliasact

arch="DIRECT" | "GLIM" | "MLP"

specifies the network architecture to be trained.

DIRECTspecifies to use an architecture that is an extension of MLP with direct connections between the input layer and the output layer.
GLIMspecifies to use the generalized linear model architecture. This uses a two-layer perceptron (one is the input layer and the other is the output layer) without hidden layers or units.
MLPspecifies to use a multilayer perceptron with one or more hidden layers.

attributes={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies temporary attributes, such as a format, to apply to input variables.

For more information about specifying the attributes parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

bias=double

specifies a fixed bias value for all the hidden and output neurons. In this case, the bias parameters are fixed and not optimized.

casOut={casouttable}

For more information about specifying the casOut parameter, see the common casouttable parameter (Appendix A: Common Parameters).

code={codegen}

requests that the action produce SAS score code. Specify additional parameters.

For more information about specifying the code parameter, see the common codegen parameter (Appendix A: Common Parameters).

combs={"ADD", "LINEAR", "RADIAL"}

specifies the combination function for the neurons on each hidden layer.

Aliascomb

delta=double

specifies the annealing parameter when performing a simulated annealing (SA) global optimization. Without this value, the step size and the temperature are used to perform a Monte Carlo (MC) global optimization. When you specify a value, the optimization becomes SA where the temperature is scaled by delta*t at every MC step.

dropOut=double

specifies the dropout ratio for the hidden layers. This parameter is valid when SGD is used for network layer optimization only and all the connections use the linear combination function.

Range[0–1)

dropOutInput=double

specifies the dropout ratio for the input layers. This parameter is valid when SGD is used for network layer optimization only and all the connections use the linear combination function.

Range[0–1)

errorFunc="ENTROPY" | "GAMMA" | "NORMAL" | "POISSON"

specifies the error function to train the network. If you do not specify this parameter, then the ENTROPY function is used for nominal variables. The NORMAL function is used for interval variables.

fullWeights=true | false

Generates the full weight model for LBFGS

Defaultfalse

hiddens={64-bit-integer-1 <, 64-bit-integer-2, ...>}

specifies the number of hidden neurons for each hidden layer in the feedforward model. For example, hiddens={5, 3} specifies two hidden layers: one with 5 hidden neurons and the other with 3 hidden neurons. When you specify this parameter, the default architecture is multi-layer perceptron (MLP).

Aliashidden

includeBias=true | false

by default, bias parameters are included for the hidden and output units. When set to False, these parameters are not included.

Defaulttrue

* inputs={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the input variables to use in the analysis.

For more information about specifying the inputs parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

inversePriors=true | false

calculates the weight applied to the prediction error of each nominal target variable as the total number of observations divided by the number of observations whose target class is the same as the current observation.

Defaultfalse

listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT"

specifies the nodes to be included in the output table that is generated by the DATA step scoring code. When the autoencoding of input nodes is requested, the default is HIDDEN. This value is particularly useful when autoencoding is applied to reduce the dimension of the input nodes. By reusing the node output values, machine learning algorithms such as neural networks, clustering, decision tree, and forests can use the newly encoded vectors as input.

ALLspecifies to include all the nodes in the scored output table.
HIDDENspecifies to include the hidden nodes only.
INPUTspecifies to include the input nodes only.
OUTPUTspecifies to include the output nodes only.

missing="MAX" | "MEAN" | "MIN" | "NONE"

specifies how to impute missing values for the input or target variables. If you do not specify this parameter or the parameter is NONE, then observations with missing values are ignored. For nominal variables, a new category is created for the missing values.

MAXspecifies to replace missing values for each variable with its maximum value.
MEANspecifies to replace missing values for each variable with its mean value.
MINspecifies to replace missing values for each variable with its minimum value.
NONEspecifies to exclude the observations with missing values

modelId="string"

specifies a model ID variable name that is included in the generated DATA step scoring code. By default, this variable name is the target variable name with ANN_ set as the prefix.

modelTable={castable}

specifies the table that contains the artificial neural network model. The weights in this table are loaded to initialize the neural network.

Aliasmodel
Long formmodelTable={name="table-name"}
Shortcut formmodelTable="table-name"
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=true | false

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
Defaultfalse
computedVars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}

specifies data source options.

Aliasoptions, dataSource
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=true | false

This parameter is deprecated.

Defaulttrue
singlePass=true | false

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

Defaultfalse
vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

nAnns=64-bit-integer

specifies the number of networks to select out of the specified number of tries. The networks with the smallest errors are selected as a set of optimal networks. When data is scored, the most frequent predicted values among the selected networks are used to make the final predictions. Note that you must specify a value to perform Monte Carlo or simulated annealing optimizations which also use the delta, step, and t parameters (experimental for this release).

AliasnumAnn
Default0
Minimum value0

nTries=64-bit-integer

specifies the number of tries when training networks with random initial weights. The network with the smallest error is chosen as the optimal network. Note that you must specify a value to perform Monte Carlo or simulated annealing global optimizations which also use the delta, step, and t parameters.

nloOpts={casOptml}

specifies the optimization options.

For more information about specifying the nloOpts parameter, see the common casOptml parameter (Appendix A: Common Parameters).

nominals={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the nominal input and target variables to use in the analysis.

For more information about specifying the nominals parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

randDist="CAUCHY" | "MSRA" | "NORMAL" | "UNIFORM" | "XAVIER"

specifies the distributions for randomly generating the initial network connection weights. All the weights are in the range [-1.0, 1.0]. The initial bias values are zero. When XAVIER or MSRA is specified, the scaleinit option will be ignored.

resume=true | false

Resumes a training optimization using weights obtained from previous training. The initial weights for resuming the optimization are read from a temporary table with the modelTable= option. The specified framework for the model must be the same as the previous framework.

Defaultfalse

samplingRate=double

specifies the fraction of the data to use for building a neural network.

Range(0–1]

scaleInit=64-bit-integer

specifies how to scale the initial weights. If you specify 1, then the range is scaled to [-1.0 / sqrt(n), 1.0 / sqrt(n)], where n is the number of units in the previous layer. If you specify 2, then the range is scaled to [-6.0 / sqrt(n + n1), 6.0 / sqrt(n + n1)], where n1 is the number of units in the current layer.

seed=double

specifies the random number seed for generating random numbers to initialize the network weights.

Maximum valueMACINT

std="MIDRANGE" | "NONE" | "STD"

specifies the standardization to use on the interval variables.

MIDRANGEspecifies to scale the variables to a midrange of 0 and a half-range of 1.
NONEspecifies not to alter the variables.
STDspecifies to scale the variables to a mean of 0 and a standard deviation of 1.

step=double

specifies a step size for perturbations on the network weights when performing Monte Carlo or simulated annealing global optimizations.

t=double

specifies the artificial temperature parameter when performing Monte Carlo or simulated annealing global optimizations.

* table={castable}

specifies the settings for an input table.

Long formtable={name="table-name"}
Shortcut formtable="table-name"
The castable value can be one or more of the following:
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=true | false

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
Defaultfalse
computedVars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}

specifies data source options.

Aliasoptions, dataSource
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=true | false

This parameter is deprecated.

Defaulttrue
singlePass=true | false

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

Defaultfalse
vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

target="variable-name"

specifies the target or response variable for training. If you do not specify a target, then the artificial neural network is trained for autoencoding.

targetAct="EXP" | "IDENTITY" | "LOGISTIC" | "SIN" | "SOFTMAX" | "TANH"

specifies the activation function for the neurons on the output layer. If you do not specify this parameter, then SOFTMAX is used for nominal variables. The IDENTITY function is used for interval variables. If the target variable is not provided, for the purposes of encoding the input nodes, then the SOFTMAX function is used.

targetComb="ADD" | "LINEAR" | "RADIAL"

specifies the combination function for the neurons on the target output nodes.

ADDadds all the incoming values without using any weights or biases.
LINEARuses a linear combination of the incoming values and weights.
RADIALuses a radial basis function with equal heights and unequal widths for all units in the layer.

targetMissing="MAX" | "MEAN" | "MIN" | "NONE"

specifies how to impute missing values for the target variable. If you specify NONE for this parameter, then observations with missing target values are ignored. For nominal variables, a new category is created for the missing values.

MAXspecifies to replace missing values for each variable with its maximum value.
MEANspecifies to replace missing values for each variable with its mean value.
MINspecifies to replace missing values for each variable with its minimum value.
NONEspecifies to exclude the observations with missing values

targetStd="MIDRANGE" | "NONE" | "STD"

specifies the standardization to use on the interval variables.

MIDRANGEspecifies to scale the variables to a midrange of 0 and a half-range of 1.
NONEspecifies not to alter the variables.
STDspecifies to scale the variables to a mean of 0 and a standard deviation of 1.

validTable={castable}

specifies the table with the validation data. Using a validation table enables the early stopping of the iteration process with the nloOpts parameter. The validation table must have the same columns and data types as the training table.

Long formvalidTable={name="table-name"}
Shortcut formvalidTable="table-name"
The castable value can be one or more of the following:
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=true | false

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
Defaultfalse
computedVars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions={key-1=any-list-or-data-type-1 <, key-2=any-list-or-data-type-2, ...>}

specifies data source options.

Aliasoptions, dataSource
importOptions={fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=true | false

This parameter is deprecated.

Defaulttrue
singlePass=true | false

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

Defaultfalse
vars={{casinvardesc-1} <, {casinvardesc-2}, ...>}

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

weight="variable-name"

specifies a variable to weight the prediction errors (the difference between the output of the network and the target value specified in the input data set) for each observation during training.

annTrain Action

Trains an artificial neural network.

Python Syntax

results= s.neuralNet.annTrain(
acts=["EXP", "IDENTITY", "LOGISTIC", "RECTIFIER", "SIN", "SOFTPLUS", "TANH"],
arch="DIRECT" | "GLIM" | "MLP",
attributes=[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
bias=double,
casOut={
"caslib":"string",
"compress":True | False,
"indexVars":["variable-name-1" <, "variable-name-2", ...>],
"label":"string",
"maxMemSize":64-bit-integer,
"name":"table-name",
"onDemand":True | False,
"promote":True | False,
"replace":True | False,
"replication":integer,
"timeStamp":"string",
"where":["string-1" <, "string-2", ...>]
},
code={
"casOut":{
"caslib":"string"
"compress":True | False
"indexVars":["variable-name-1" <, "variable-name-2", ...>]
"label":"string"
"maxMemSize":64-bit-integer
"name":"table-name"
"onDemand":True | False
"promote":True | False
"replace":True | False
"replication":integer
"timeStamp":"string"
"where":["string-1" <, "string-2", ...>]
},
"comment":True | False,
"fmtWdth":integer,
"indentSize":integer,
"labelId":integer,
"lineSize":integer,
"noTrim":True | False,
"tabForm":True | False
},
combs=["ADD", "LINEAR", "RADIAL"],
delta=double,
dropOut=double,
dropOutInput=double,
errorFunc="ENTROPY" | "GAMMA" | "NORMAL" | "POISSON",
fullWeights=True | False,
hiddens=[64-bit-integer-1 <, 64-bit-integer-2, ...>],
includeBias=True | False,
required parameter inputs=[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
inversePriors=True | False,
listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT",
missing="MAX" | "MEAN" | "MIN" | "NONE",
modelId="string",
modelTable={
"caslib":"string",
"computedOnDemand":True | False,
"computedVars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"computedVarsProgram":"string",
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>},
"importOptions":{"fileType":"AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter "name":"table-name",
"onDemand":True | False,
"singlePass":True | False,
"vars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"where":"where-expression"
},
nAnns=64-bit-integer,
nTries=64-bit-integer,
nloOpts={
"algorithm":"HF" | "LBFGS" | "SGD",
"lbfgsOpt":{
"lineSearchMethod":"ARMIJO" | "HYBRID" | "MORETHUENTE" | "STRONGWOLFE" | "WOLFE"
"numCorrections":64-bit-integer
},
"optmlOpt":{
"clipWeightMaxNorm":double
"fConv":double
"fConvWindow":64-bit-integer
"gTol":double
"maxEvals":64-bit-integer
"maxIters":64-bit-integer
"maxTime":double
"regL1":double
"regL2":double
},
"printOpt":{
"logLevel":64-bit-integer
"printFreq":64-bit-integer
"printLevel":"PRINTBASIC" | "PRINTDETAIL" | "PRINTNONE"
},
"sgdOpt":{
"adaptiveRate":True | False
"annealingRate":double
"commFreq":64-bit-integer
"learningRate":double
"miniBatchSize":64-bit-integer
"momentum":double
"seed":64-bit-integer
"useLocking":True | False
},
"state":{
"checkpointFreq":64-bit-integer
"saveBest":True | False
"table":{
"caslib":"string"
"compress":True | False
"indexVars":["variable-name-1" <, "variable-name-2", ...>]
"label":"string"
"maxMemSize":64-bit-integer
"name":"table-name"
"onDemand":True | False
"promote":True | False
"replace":True | False
"replication":integer
"timeStamp":"string"
"where":["string-1" <, "string-2", ...>]
}
},
"validate":{
"frequency":64-bit-integer
"goal":double
"stagnation":64-bit-integer
}
},
nominals=[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
randDist="CAUCHY" | "MSRA" | "NORMAL" | "UNIFORM" | "XAVIER",
resume=True | False,
samplingRate=double,
scaleInit=64-bit-integer,
seed=double,
std="MIDRANGE" | "NONE" | "STD",
step=double,
t=double,
required parameter table={
"caslib":"string",
"computedOnDemand":True | False,
"computedVars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"computedVarsProgram":"string",
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>},
"importOptions":{"fileType":"AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter "name":"table-name",
"onDemand":True | False,
"singlePass":True | False,
"vars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"where":"where-expression"
},
target="variable-name",
targetAct="EXP" | "IDENTITY" | "LOGISTIC" | "SIN" | "SOFTMAX" | "TANH",
targetComb="ADD" | "LINEAR" | "RADIAL",
targetMissing="MAX" | "MEAN" | "MIN" | "NONE",
targetStd="MIDRANGE" | "NONE" | "STD",
validTable={
"caslib":"string",
"computedOnDemand":True | False,
"computedVars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"computedVarsProgram":"string",
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>},
"importOptions":{"fileType":"AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters},
required parameter "name":"table-name",
"onDemand":True | False,
"singlePass":True | False,
"vars":[{
"format":"string",
"formattedLength":integer,
"label":"string",
required parameter "name":"variable-name",
"nfd":integer,
"nfl":integer
}<, {...}>],
"where":"where-expression"
},
weight="variable-name"
)

Parameter Descriptions

acts=["EXP", "IDENTITY", "LOGISTIC", "RECTIFIER", "SIN", "SOFTPLUS", "TANH"]

specifies the activation function for the neurons on each hidden layer.

Aliasact

arch="DIRECT" | "GLIM" | "MLP"

specifies the network architecture to be trained.

DIRECTspecifies to use an architecture that is an extension of MLP with direct connections between the input layer and the output layer.
GLIMspecifies to use the generalized linear model architecture. This uses a two-layer perceptron (one is the input layer and the other is the output layer) without hidden layers or units.
MLPspecifies to use a multilayer perceptron with one or more hidden layers.

attributes=[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies temporary attributes, such as a format, to apply to input variables.

For more information about specifying the attributes parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

bias=double

specifies a fixed bias value for all the hidden and output neurons. In this case, the bias parameters are fixed and not optimized.

casOut={casouttable}

For more information about specifying the casOut parameter, see the common casouttable parameter (Appendix A: Common Parameters).

code={codegen}

requests that the action produce SAS score code. Specify additional parameters.

For more information about specifying the code parameter, see the common codegen parameter (Appendix A: Common Parameters).

combs=["ADD", "LINEAR", "RADIAL"]

specifies the combination function for the neurons on each hidden layer.

Aliascomb

delta=double

specifies the annealing parameter when performing a simulated annealing (SA) global optimization. Without this value, the step size and the temperature are used to perform a Monte Carlo (MC) global optimization. When you specify a value, the optimization becomes SA where the temperature is scaled by delta*t at every MC step.

dropOut=double

specifies the dropout ratio for the hidden layers. This parameter is valid when SGD is used for network layer optimization only and all the connections use the linear combination function.

Range[0–1)

dropOutInput=double

specifies the dropout ratio for the input layers. This parameter is valid when SGD is used for network layer optimization only and all the connections use the linear combination function.

Range[0–1)

errorFunc="ENTROPY" | "GAMMA" | "NORMAL" | "POISSON"

specifies the error function to train the network. If you do not specify this parameter, then the ENTROPY function is used for nominal variables. The NORMAL function is used for interval variables.

fullWeights=True | False

Generates the full weight model for LBFGS

DefaultFalse

hiddens=[64-bit-integer-1 <, 64-bit-integer-2, ...>]

specifies the number of hidden neurons for each hidden layer in the feedforward model. For example, hiddens={5, 3} specifies two hidden layers: one with 5 hidden neurons and the other with 3 hidden neurons. When you specify this parameter, the default architecture is multi-layer perceptron (MLP).

Aliashidden

includeBias=True | False

by default, bias parameters are included for the hidden and output units. When set to False, these parameters are not included.

DefaultTrue

* inputs=[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the input variables to use in the analysis.

For more information about specifying the inputs parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

inversePriors=True | False

calculates the weight applied to the prediction error of each nominal target variable as the total number of observations divided by the number of observations whose target class is the same as the current observation.

DefaultFalse

listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT"

specifies the nodes to be included in the output table that is generated by the DATA step scoring code. When the autoencoding of input nodes is requested, the default is HIDDEN. This value is particularly useful when autoencoding is applied to reduce the dimension of the input nodes. By reusing the node output values, machine learning algorithms such as neural networks, clustering, decision tree, and forests can use the newly encoded vectors as input.

ALLspecifies to include all the nodes in the scored output table.
HIDDENspecifies to include the hidden nodes only.
INPUTspecifies to include the input nodes only.
OUTPUTspecifies to include the output nodes only.

missing="MAX" | "MEAN" | "MIN" | "NONE"

specifies how to impute missing values for the input or target variables. If you do not specify this parameter or the parameter is NONE, then observations with missing values are ignored. For nominal variables, a new category is created for the missing values.

MAXspecifies to replace missing values for each variable with its maximum value.
MEANspecifies to replace missing values for each variable with its mean value.
MINspecifies to replace missing values for each variable with its minimum value.
NONEspecifies to exclude the observations with missing values

modelId="string"

specifies a model ID variable name that is included in the generated DATA step scoring code. By default, this variable name is the target variable name with ANN_ set as the prefix.

modelTable={castable}

specifies the table that contains the artificial neural network model. The weights in this table are loaded to initialize the neural network.

Aliasmodel
Long formmodelTable={"name":"table-name"}
Shortcut formmodelTable="table-name"
"caslib":"string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

"computedOnDemand":True | False

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFalse
"computedVars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of format field plus the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"computedVarsProgram":"string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>}

specifies data source options.

Aliasoptions, dataSource
"importOptions":{fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport_

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* "name":"table-name"

specifies the name of the table to use.

"onDemand":True | False

This parameter is deprecated.

DefaultTrue
"singlePass":True | False

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFalse
"vars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the variables to use in the action.

"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of format field plus the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"where":"where-expression"

specifies an expression for subsetting the input data.

nAnns=64-bit-integer

specifies the number of networks to select out of the specified number of tries. The networks with the smallest errors are selected as a set of optimal networks. When data is scored, the most frequent predicted values among the selected networks are used to make the final predictions. Note that you must specify a value to perform Monte Carlo or simulated annealing optimizations which also use the delta, step, and t parameters (experimental for this release).

AliasnumAnn
Default0
Minimum value0

nTries=64-bit-integer

specifies the number of tries when training networks with random initial weights. The network with the smallest error is chosen as the optimal network. Note that you must specify a value to perform Monte Carlo or simulated annealing global optimizations which also use the delta, step, and t parameters.

nloOpts={casOptml}

specifies the optimization options.

For more information about specifying the nloOpts parameter, see the common casOptml parameter (Appendix A: Common Parameters).

nominals=[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the nominal input and target variables to use in the analysis.

For more information about specifying the nominals parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

randDist="CAUCHY" | "MSRA" | "NORMAL" | "UNIFORM" | "XAVIER"

specifies the distributions for randomly generating the initial network connection weights. All the weights are in the range [-1.0, 1.0]. The initial bias values are zero. When XAVIER or MSRA is specified, the scaleinit option will be ignored.

resume=True | False

Resumes a training optimization using weights obtained from previous training. The initial weights for resuming the optimization are read from a temporary table with the modelTable= option. The specified framework for the model must be the same as the previous framework.

DefaultFalse

samplingRate=double

specifies the fraction of the data to use for building a neural network.

Range(0–1]

scaleInit=64-bit-integer

specifies how to scale the initial weights. If you specify 1, then the range is scaled to [-1.0 / sqrt(n), 1.0 / sqrt(n)], where n is the number of units in the previous layer. If you specify 2, then the range is scaled to [-6.0 / sqrt(n + n1), 6.0 / sqrt(n + n1)], where n1 is the number of units in the current layer.

seed=double

specifies the random number seed for generating random numbers to initialize the network weights.

Maximum valueMACINT

std="MIDRANGE" | "NONE" | "STD"

specifies the standardization to use on the interval variables.

MIDRANGEspecifies to scale the variables to a midrange of 0 and a half-range of 1.
NONEspecifies not to alter the variables.
STDspecifies to scale the variables to a mean of 0 and a standard deviation of 1.

step=double

specifies a step size for perturbations on the network weights when performing Monte Carlo or simulated annealing global optimizations.

t=double

specifies the artificial temperature parameter when performing Monte Carlo or simulated annealing global optimizations.

* table={castable}

specifies the settings for an input table.

Long formtable={"name":"table-name"}
Shortcut formtable="table-name"
The castable value can be one or more of the following:
"caslib":"string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

"computedOnDemand":True | False

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFalse
"computedVars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of format field plus the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"computedVarsProgram":"string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>}

specifies data source options.

Aliasoptions, dataSource
"importOptions":{fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport_

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* "name":"table-name"

specifies the name of the table to use.

"onDemand":True | False

This parameter is deprecated.

DefaultTrue
"singlePass":True | False

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFalse
"vars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the variables to use in the action.

"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of format field plus the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"where":"where-expression"

specifies an expression for subsetting the input data.

target="variable-name"

specifies the target or response variable for training. If you do not specify a target, then the artificial neural network is trained for autoencoding.

targetAct="EXP" | "IDENTITY" | "LOGISTIC" | "SIN" | "SOFTMAX" | "TANH"

specifies the activation function for the neurons on the output layer. If you do not specify this parameter, then SOFTMAX is used for nominal variables. The IDENTITY function is used for interval variables. If the target variable is not provided, for the purposes of encoding the input nodes, then the SOFTMAX function is used.

targetComb="ADD" | "LINEAR" | "RADIAL"

specifies the combination function for the neurons on the target output nodes.

ADDadds all the incoming values without using any weights or biases.
LINEARuses a linear combination of the incoming values and weights.
RADIALuses a radial basis function with equal heights and unequal widths for all units in the layer.

targetMissing="MAX" | "MEAN" | "MIN" | "NONE"

specifies how to impute missing values for the target variable. If you specify NONE for this parameter, then observations with missing target values are ignored. For nominal variables, a new category is created for the missing values.

MAXspecifies to replace missing values for each variable with its maximum value.
MEANspecifies to replace missing values for each variable with its mean value.
MINspecifies to replace missing values for each variable with its minimum value.
NONEspecifies to exclude the observations with missing values

targetStd="MIDRANGE" | "NONE" | "STD"

specifies the standardization to use on the interval variables.

MIDRANGEspecifies to scale the variables to a midrange of 0 and a half-range of 1.
NONEspecifies not to alter the variables.
STDspecifies to scale the variables to a mean of 0 and a standard deviation of 1.

validTable={castable}

specifies the table with the validation data. Using a validation table enables the early stopping of the iteration process with the nloOpts parameter. The validation table must have the same columns and data types as the training table.

Long formvalidTable={"name":"table-name"}
Shortcut formvalidTable="table-name"
The castable value can be one or more of the following:
"caslib":"string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

"computedOnDemand":True | False

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFalse
"computedVars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of format field plus the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"computedVarsProgram":"string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
"dataSourceOptions":{"key-1":{any-list-or-data-type-1} <, "key-2":{any-list-or-data-type-2}, ...>}

specifies data source options.

Aliasoptions, dataSource
"importOptions":{fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters}

specifies the settings for reading a table from a data source.

Aliasimport_

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* "name":"table-name"

specifies the name of the table to use.

"onDemand":True | False

This parameter is deprecated.

DefaultTrue
"singlePass":True | False

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFalse
"vars":[{casinvardesc-1} <, {casinvardesc-2}, ...>]

specifies the variables to use in the action.

"format":"string"

specifies the format to apply to the variable.

"formattedLength":integer

specifies the length of format field plus the format precision.

"label":"string"

specifies the descriptive label for the variable.

* "name":"variable-name"

specifies the name for the variable.

"nfd":integer

specifies the length of the format precision.

"nfl":integer

specifies the length of the format field.

"where":"where-expression"

specifies an expression for subsetting the input data.

weight="variable-name"

specifies a variable to weight the prediction errors (the difference between the output of the network and the target value specified in the input data set) for each observation during training.

annTrain Action

Trains an artificial neural network.

R Syntax

results <– cas.neuralNet.annTrain(s,
acts=list("EXP", "IDENTITY", "LOGISTIC", "RECTIFIER", "SIN", "SOFTPLUS", "TANH"),
arch="DIRECT" | "GLIM" | "MLP",
attributes=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
bias=double,
casOut=list(
caslib="string",
compress=TRUE | FALSE,
indexVars=list("variable-name-1" <, "variable-name-2", ...>),
label="string",
maxMemSize=64-bit-integer,
name="table-name",
onDemand=TRUE | FALSE,
promote=TRUE | FALSE,
replace=TRUE | FALSE,
replication=integer,
timeStamp="string",
where=list("string-1" <, "string-2", ...>)
),
code=list(
casOut=list(
caslib="string"
compress=TRUE | FALSE
indexVars=list("variable-name-1" <, "variable-name-2", ...>)
label="string"
maxMemSize=64-bit-integer
name="table-name"
onDemand=TRUE | FALSE
promote=TRUE | FALSE
replace=TRUE | FALSE
replication=integer
timeStamp="string"
where=list("string-1" <, "string-2", ...>)
),
comment=TRUE | FALSE,
fmtWdth=integer,
indentSize=integer,
labelId=integer,
lineSize=integer,
noTrim=TRUE | FALSE,
tabForm=TRUE | FALSE
),
combs=list("ADD", "LINEAR", "RADIAL"),
delta=double,
dropOut=double,
dropOutInput=double,
errorFunc="ENTROPY" | "GAMMA" | "NORMAL" | "POISSON",
fullWeights=TRUE | FALSE,
hiddens=list(64-bit-integer-1 <, 64-bit-integer-2, ...>),
includeBias=TRUE | FALSE,
required parameter inputs=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
inversePriors=TRUE | FALSE,
listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT",
missing="MAX" | "MEAN" | "MIN" | "NONE",
modelId="string",
modelTable=list(
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>),
importOptions=list(fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters),
required parameter name="table-name",
onDemand=TRUE | FALSE,
singlePass=TRUE | FALSE,
vars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
where="where-expression"
),
nAnns=64-bit-integer,
nTries=64-bit-integer,
nloOpts=list(
algorithm="HF" | "LBFGS" | "SGD",
lbfgsOpt=list(
lineSearchMethod="ARMIJO" | "HYBRID" | "MORETHUENTE" | "STRONGWOLFE" | "WOLFE"
numCorrections=64-bit-integer
),
optmlOpt=list(
clipWeightMaxNorm=double
fConv=double
fConvWindow=64-bit-integer
gTol=double
maxEvals=64-bit-integer
maxIters=64-bit-integer
maxTime=double
regL1=double
regL2=double
),
printOpt=list(
logLevel=64-bit-integer
printFreq=64-bit-integer
printLevel="PRINTBASIC" | "PRINTDETAIL" | "PRINTNONE"
),
sgdOpt=list(
adaptiveRate=TRUE | FALSE
annealingRate=double
commFreq=64-bit-integer
learningRate=double
miniBatchSize=64-bit-integer
momentum=double
seed=64-bit-integer
useLocking=TRUE | FALSE
),
state=list(
checkpointFreq=64-bit-integer
saveBest=TRUE | FALSE
table=list(
caslib="string"
compress=TRUE | FALSE
indexVars=list("variable-name-1" <, "variable-name-2", ...>)
label="string"
maxMemSize=64-bit-integer
name="table-name"
onDemand=TRUE | FALSE
promote=TRUE | FALSE
replace=TRUE | FALSE
replication=integer
timeStamp="string"
where=list("string-1" <, "string-2", ...>)
)
),
validate=list(
frequency=64-bit-integer
goal=double
stagnation=64-bit-integer
)
),
nominals=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
randDist="CAUCHY" | "MSRA" | "NORMAL" | "UNIFORM" | "XAVIER",
resume=TRUE | FALSE,
samplingRate=double,
scaleInit=64-bit-integer,
seed=double,
std="MIDRANGE" | "NONE" | "STD",
step=double,
t=double,
required parameter table=list(
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>),
importOptions=list(fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters),
required parameter name="table-name",
onDemand=TRUE | FALSE,
singlePass=TRUE | FALSE,
vars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
where="where-expression"
),
target="variable-name",
targetAct="EXP" | "IDENTITY" | "LOGISTIC" | "SIN" | "SOFTMAX" | "TANH",
targetComb="ADD" | "LINEAR" | "RADIAL",
targetMissing="MAX" | "MEAN" | "MIN" | "NONE",
targetStd="MIDRANGE" | "NONE" | "STD",
validTable=list(
caslib="string",
computedOnDemand=TRUE | FALSE,
computedVars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>),
importOptions=list(fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters),
required parameter name="table-name",
onDemand=TRUE | FALSE,
singlePass=TRUE | FALSE,
vars=list( list(
format="string",
formattedLength=integer,
label="string",
required parameter name="variable-name",
nfd=integer,
nfl=integer
) <, list(...)>),
where="where-expression"
),
weight="variable-name"
)

Parameter Descriptions

acts=list("EXP", "IDENTITY", "LOGISTIC", "RECTIFIER", "SIN", "SOFTPLUS", "TANH")

specifies the activation function for the neurons on each hidden layer.

Aliasact

arch="DIRECT" | "GLIM" | "MLP"

specifies the network architecture to be trained.

DIRECTspecifies to use an architecture that is an extension of MLP with direct connections between the input layer and the output layer.
GLIMspecifies to use the generalized linear model architecture. This uses a two-layer perceptron (one is the input layer and the other is the output layer) without hidden layers or units.
MLPspecifies to use a multilayer perceptron with one or more hidden layers.

attributes=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies temporary attributes, such as a format, to apply to input variables.

For more information about specifying the attributes parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

bias=double

specifies a fixed bias value for all the hidden and output neurons. In this case, the bias parameters are fixed and not optimized.

casOut=list(casouttable)

For more information about specifying the casOut parameter, see the common casouttable parameter (Appendix A: Common Parameters).

code=list(codegen)

requests that the action produce SAS score code. Specify additional parameters.

For more information about specifying the code parameter, see the common codegen parameter (Appendix A: Common Parameters).

combs=list("ADD", "LINEAR", "RADIAL")

specifies the combination function for the neurons on each hidden layer.

Aliascomb

delta=double

specifies the annealing parameter when performing a simulated annealing (SA) global optimization. Without this value, the step size and the temperature are used to perform a Monte Carlo (MC) global optimization. When you specify a value, the optimization becomes SA where the temperature is scaled by delta*t at every MC step.

dropOut=double

specifies the dropout ratio for the hidden layers. This parameter is valid when SGD is used for network layer optimization only and all the connections use the linear combination function.

Range[0–1)

dropOutInput=double

specifies the dropout ratio for the input layers. This parameter is valid when SGD is used for network layer optimization only and all the connections use the linear combination function.

Range[0–1)

errorFunc="ENTROPY" | "GAMMA" | "NORMAL" | "POISSON"

specifies the error function to train the network. If you do not specify this parameter, then the ENTROPY function is used for nominal variables. The NORMAL function is used for interval variables.

fullWeights=TRUE | FALSE

Generates the full weight model for LBFGS

DefaultFALSE

hiddens=list(64-bit-integer-1 <, 64-bit-integer-2, ...>)

specifies the number of hidden neurons for each hidden layer in the feedforward model. For example, hiddens={5, 3} specifies two hidden layers: one with 5 hidden neurons and the other with 3 hidden neurons. When you specify this parameter, the default architecture is multi-layer perceptron (MLP).

Aliashidden

includeBias=TRUE | FALSE

by default, bias parameters are included for the hidden and output units. When set to False, these parameters are not included.

DefaultTRUE

* inputs=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the input variables to use in the analysis.

For more information about specifying the inputs parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

inversePriors=TRUE | FALSE

calculates the weight applied to the prediction error of each nominal target variable as the total number of observations divided by the number of observations whose target class is the same as the current observation.

DefaultFALSE

listNode="ALL" | "HIDDEN" | "INPUT" | "OUTPUT"

specifies the nodes to be included in the output table that is generated by the DATA step scoring code. When the autoencoding of input nodes is requested, the default is HIDDEN. This value is particularly useful when autoencoding is applied to reduce the dimension of the input nodes. By reusing the node output values, machine learning algorithms such as neural networks, clustering, decision tree, and forests can use the newly encoded vectors as input.

ALLspecifies to include all the nodes in the scored output table.
HIDDENspecifies to include the hidden nodes only.
INPUTspecifies to include the input nodes only.
OUTPUTspecifies to include the output nodes only.

missing="MAX" | "MEAN" | "MIN" | "NONE"

specifies how to impute missing values for the input or target variables. If you do not specify this parameter or the parameter is NONE, then observations with missing values are ignored. For nominal variables, a new category is created for the missing values.

MAXspecifies to replace missing values for each variable with its maximum value.
MEANspecifies to replace missing values for each variable with its mean value.
MINspecifies to replace missing values for each variable with its minimum value.
NONEspecifies to exclude the observations with missing values

modelId="string"

specifies a model ID variable name that is included in the generated DATA step scoring code. By default, this variable name is the target variable name with ANN_ set as the prefix.

modelTable=list(castable)

specifies the table that contains the artificial neural network model. The weights in this table are loaded to initialize the neural network.

Aliasmodel
Long formmodelTable=list(name="table-name")
Shortcut formmodelTable="table-name"
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=TRUE | FALSE

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFALSE
computedVars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>)

specifies data source options.

Aliasoptions, dataSource
importOptions=list(fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters)

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=TRUE | FALSE

This parameter is deprecated.

DefaultTRUE
singlePass=TRUE | FALSE

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFALSE
vars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

nAnns=64-bit-integer

specifies the number of networks to select out of the specified number of tries. The networks with the smallest errors are selected as a set of optimal networks. When data is scored, the most frequent predicted values among the selected networks are used to make the final predictions. Note that you must specify a value to perform Monte Carlo or simulated annealing optimizations which also use the delta, step, and t parameters (experimental for this release).

AliasnumAnn
Default0
Minimum value0

nTries=64-bit-integer

specifies the number of tries when training networks with random initial weights. The network with the smallest error is chosen as the optimal network. Note that you must specify a value to perform Monte Carlo or simulated annealing global optimizations which also use the delta, step, and t parameters.

nloOpts=list(casOptml)

specifies the optimization options.

For more information about specifying the nloOpts parameter, see the common casOptml parameter (Appendix A: Common Parameters).

nominals=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the nominal input and target variables to use in the analysis.

For more information about specifying the nominals parameter, see the common casinvardesc parameter (Appendix A: Common Parameters).

randDist="CAUCHY" | "MSRA" | "NORMAL" | "UNIFORM" | "XAVIER"

specifies the distributions for randomly generating the initial network connection weights. All the weights are in the range [-1.0, 1.0]. The initial bias values are zero. When XAVIER or MSRA is specified, the scaleinit option will be ignored.

resume=TRUE | FALSE

Resumes a training optimization using weights obtained from previous training. The initial weights for resuming the optimization are read from a temporary table with the modelTable= option. The specified framework for the model must be the same as the previous framework.

DefaultFALSE

samplingRate=double

specifies the fraction of the data to use for building a neural network.

Range(0–1]

scaleInit=64-bit-integer

specifies how to scale the initial weights. If you specify 1, then the range is scaled to [-1.0 / sqrt(n), 1.0 / sqrt(n)], where n is the number of units in the previous layer. If you specify 2, then the range is scaled to [-6.0 / sqrt(n + n1), 6.0 / sqrt(n + n1)], where n1 is the number of units in the current layer.

seed=double

specifies the random number seed for generating random numbers to initialize the network weights.

Maximum valueMACINT

std="MIDRANGE" | "NONE" | "STD"

specifies the standardization to use on the interval variables.

MIDRANGEspecifies to scale the variables to a midrange of 0 and a half-range of 1.
NONEspecifies not to alter the variables.
STDspecifies to scale the variables to a mean of 0 and a standard deviation of 1.

step=double

specifies a step size for perturbations on the network weights when performing Monte Carlo or simulated annealing global optimizations.

t=double

specifies the artificial temperature parameter when performing Monte Carlo or simulated annealing global optimizations.

* table=list(castable)

specifies the settings for an input table.

Long formtable=list(name="table-name")
Shortcut formtable="table-name"
The castable value can be one or more of the following:
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=TRUE | FALSE

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFALSE
computedVars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>)

specifies data source options.

Aliasoptions, dataSource
importOptions=list(fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters)

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=TRUE | FALSE

This parameter is deprecated.

DefaultTRUE
singlePass=TRUE | FALSE

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFALSE
vars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

target="variable-name"

specifies the target or response variable for training. If you do not specify a target, then the artificial neural network is trained for autoencoding.

targetAct="EXP" | "IDENTITY" | "LOGISTIC" | "SIN" | "SOFTMAX" | "TANH"

specifies the activation function for the neurons on the output layer. If you do not specify this parameter, then SOFTMAX is used for nominal variables. The IDENTITY function is used for interval variables. If the target variable is not provided, for the purposes of encoding the input nodes, then the SOFTMAX function is used.

targetComb="ADD" | "LINEAR" | "RADIAL"

specifies the combination function for the neurons on the target output nodes.

ADDadds all the incoming values without using any weights or biases.
LINEARuses a linear combination of the incoming values and weights.
RADIALuses a radial basis function with equal heights and unequal widths for all units in the layer.

targetMissing="MAX" | "MEAN" | "MIN" | "NONE"

specifies how to impute missing values for the target variable. If you specify NONE for this parameter, then observations with missing target values are ignored. For nominal variables, a new category is created for the missing values.

MAXspecifies to replace missing values for each variable with its maximum value.
MEANspecifies to replace missing values for each variable with its mean value.
MINspecifies to replace missing values for each variable with its minimum value.
NONEspecifies to exclude the observations with missing values

targetStd="MIDRANGE" | "NONE" | "STD"

specifies the standardization to use on the interval variables.

MIDRANGEspecifies to scale the variables to a midrange of 0 and a half-range of 1.
NONEspecifies not to alter the variables.
STDspecifies to scale the variables to a mean of 0 and a standard deviation of 1.

validTable=list(castable)

specifies the table with the validation data. Using a validation table enables the early stopping of the iteration process with the nloOpts parameter. The validation table must have the same columns and data types as the training table.

Long formvalidTable=list(name="table-name")
Shortcut formvalidTable="table-name"
The castable value can be one or more of the following:
caslib="string"

specifies the caslib that contains the table that you want to use with the action. By default, the active caslib is used. Specify a value only if you need to access a table from a different caslib.

computedOnDemand=TRUE | FALSE

when set to True, creates the computed variables when the table is loaded instead of when the action begins.

AliascompOnDemand
DefaultFALSE
computedVars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the names of the computed variables to create. Specify an expression for each variable in the computedVarsProgram parameter.

AliascompVars
format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

computedVarsProgram="string"

specifies an expression for each computed variable that you include in the computedVars parameter.

AliascompPgm
dataSourceOptions=list(key-1=list(any-list-or-data-type-1) <, key-2=list(any-list-or-data-type-2), ...>)

specifies data source options.

Aliasoptions, dataSource
importOptions=list(fileType="AUTO" | "BASESAS" | "CSV" | "DOCUMENT" | "DTA" | "ESP" | "EXCEL" | "FMT" | "HDAT" | "JMP" | "LASR" | "SPSS" | "XLS", fileType-specific-parameters)

specifies the settings for reading a table from a data source.

Aliasimport

The value that you specify for fileType determines the other parameters that apply. For more information about this common parameter, see importOptions (Appendix A: Common Parameters).

* name="table-name"

specifies the name of the table to use.

onDemand=TRUE | FALSE

This parameter is deprecated.

DefaultTRUE
singlePass=TRUE | FALSE

when set to True, does not create a transient table on the server. Setting this parameter to True can be efficient, but the data might not have stable ordering upon repeated runs.

DefaultFALSE
vars=list( list(casinvardesc-1) <, list(casinvardesc-2), ...>)

specifies the variables to use in the action.

format="string"

specifies the format to apply to the variable.

formattedLength=integer

specifies the length of format field plus the format precision.

label="string"

specifies the descriptive label for the variable.

* name="variable-name"

specifies the name for the variable.

nfd=integer

specifies the length of the format precision.

nfl=integer

specifies the length of the format field.

where="where-expression"

specifies an expression for subsetting the input data.

weight="variable-name"

specifies a variable to weight the prediction errors (the difference between the output of the network and the target value specified in the input data set) for each observation during training.

Last updated: June 07, 2018