-
ASSIGNMISSING=MACBIG | MACSMALL | NONE | SEPARATE
-
specifies how to handle missing values during the training and scoring phases.
During the training phase, PROC BART samples a primary splitting rule for a node as described in the section Splitting Rules. During the scoring phase, observations are assigned to a node in a tree according to the primary splitting rule if it can be applied. If the primary rule cannot be applied because of missing values or unknown categorical predictor levels, a default splitting rule is applied that assigns an observation to the larger branch of the split. An unknown level of a categorical predictor is a level that was not encountered in the training data but is encountered during scoring. The default splitting rule enables all data to be scored.
You can specify one of the following values:
- MACBIG
during the training phase, treats missing values for continuous predictors as the largest machine value and treats missing values for categorical predictors as a separate level. In the scoring phase, observations that have missing continuous predictor values are assigned to the right branch of the split, and observations that have an unknown categorical predictor level are assigned to the larger branch of the split.
- MACSMALL
during the training phase, treats missing values for continuous predictors as the smallest machine value and treats missing values for categorical predictors as a separate level. In the scoring phase, observations that have missing continuous predictor values are assigned to the left branch of the split, and observations that have an unknown categorical predictor level are assigned to the larger branch of the split.
- NONE
during the training phase, excludes all observations that have a missing predictor value. In the scoring phase, observations that have missing values or observations whose unknown categorical predictor level is unknown are assigned to the larger branch of the split.
- SEPARATE
during the training phase, treats missing values for continuous predictors as a separate group and treats missing values for categorical predictors as a separate level. In the training phase, when a split operation is sampled for a continuous predictor and there are observations that have a missing value of the splitting variable on the node, a primary rule for routing missing values is sampled before the primary splitting rule for nonmissing values is sampled. If a continuous predictor does not have a missing value on the node that you are splitting, a primary rule for routing missing values is not sampled. In the scoring phase, observations that have an unknown categorical predictor level or have a missing continuous predictor value for a node without a primary rule for routing missing values are assigned to the larger branch of the split.
By default, ASSIGNMISSING=SEPARATE.
-
BINMETHOD=EVEN | QUANTILE
-
specifies how to bin continuous input variables before training the model. The number of bins that are created is determined by the value of the NBINS= option.
You can specify one of the following values:
- EVEN
discretizes continuous input variables into fixed-width bins. The width of each bin for a particular variable is calculated by subtracting the smallest value among all observations from the largest value among all observations, and then dividing the result by the number of bins.
- QUANTILE
discretizes continuous input variables into bins according to their quantile. The width of the bins for a particular variable is not fixed, but the number of observations in the various bins is approximately equal.
By default, BINMETHOD=QUANTILE.
-
DATA=CAS-libref.data-table
-
names the input data table for PROC BART to use. The default is the most recently created data table. CAS-libref.data-table is a two-level name, where
- CAS-libref
refers to a collection of information that is defined in the LIBNAME statement and includes the caslib, which includes a path to the data, and a session identifier, which defaults to the active session but which can be explicitly defined in the LIBNAME statement. For more information about CAS-libref, see the section Using CAS Sessions and CAS Engine Librefs.
- data-table
specifies the name of the input data table.
-
LEAFSIGMAK=number
-
specifies the number to be used to determine the prior variance for the leaf parameters. For more information about the tree prior, see the section Tree Prior.
By default, LEAFSIGMAK=2.
-
MAPINMEM
OBSLEAFMAPINMEM
-
stores a mapping of each observation to terminal nodes, or leaves, in memory when the model is trained. Storing the observation-to-leaf map in memory eliminates the need to route observations through trees when tree-modifying operations are sampled, and it can improve performance. However, the observation-to-leaf map requires memory allocations that are, in total, proportional to the number of observations times the value of the NTREE= option.
By default, the observation-to-leaf map is not stored in memory.
-
MAXTRAINTIME=number
-
specifies the maximum time (in seconds) to use for model training.
By default, there is no time limit.
-
MINLEAFSIZE=number
-
specifies the minimum number of observations that each child of a split must contain in the training data in order for the split to be considered.
By default, MINLEAFSIZE=5.
-
NBI=number
-
specifies the number of burn-in iterations to perform before the procedure starts to save samples for prediction.
By default, NBI=100.
-
NBINS=number
-
specifies the number of bins to use for binning the continuous input variables.
By default, NBINS=50.
-
NDISTCHAINS=number
-
specifies a distributed mode that divides the MCMC sampling in a grid environment. This mode distributes training data to workers so that the specified number of workers have a full copy of the training data and run a separate chain. Using this option can reduce the cost of communication over the grid and allows multiple chains to be run in parallel. However, distributed mode requires more memory space for each worker. This option is not applicable when you are in single-machine mode. When NDISTCHAINS=0, a single chain is run, and each worker node is assigned a portion of the training data. Note that the fit of a BART model depends on the number of chains that you run.
By default, the number of chains is equal to the number of worker nodes.
-
NMC=number
-
specifies the number of iterations in the main simulation loop. This is the MCMC sample size if NTHIN=1. This option is ignored if you specify the NMCDIST= option.
By default, NMC=1000.
-
NMCDIST=number
-
specifies the number of MCMC iterations for each chain, excluding the burn-in iterations, when multiple chains are used. This option is not applicable when you are in single-machine mode or when NDISTCHAINS=0.
By default, the number of MCMC iterations is evenly distributed across chains, and the total number is equal to the value of the NMC= option.
-
NOCLPRINT<=number>
suppresses the display of the "Class Level Information" table if you do not specify number. If you specify number, the values of the classification variables are displayed for only those variables whose number of levels is less than number. Specifying a number helps reduce the size of the "Class Level Information" table if some classification variables have a large number of levels.
-
NTHIN=number
-
specifies the thinning rate of the simulation. PROC BART keeps every numberth simulation sample and discards the rest. All the posterior statistics are calculated using the thinned samples.
By default, NTHIN=1.
-
NTREE=number
-
specifies the number of trees in a sample of the sum-of-trees ensemble.
By default, NTREE=200.
-
ORDERSPLIT=number
-
specifies the minimum number of levels for which a categorical input uses splitting rules according to level ordering. For more information about the sampling of splitting rules, see the section Splitting Rules.
By default, ORDERSPLIT=50.
-
SEED=number
specifies the initial seed for random number generation for model building. The value of number must be an integer. If you do not specify a seed or you specify a number less than or equal to 0, the seed is generated by reading the time of day from the computer’s clock.
-
TRAININMEM
-
stores data in memory when the model is trained. Storing the data in memory can improve performance, but it requires memory allocations that are, in total, proportional to the number of observations times the size of a row of predictors.
By default, the data are not stored in memory.