SVMACHINE Procedure

PROC SVMACHINE Statement

  • PROC SVMACHINE <options>;

The PROC SVMACHINE statement invokes the procedure.

You can specify the following options:

APPLYROWORDER

uses a data distribution and row order as determined by a previous partition action call. For more information, see the section The APPLYROWORDER Option in Chapter 2, Shared Concepts.

This procedure honors a prespecified row order only when you specify the METHOD=CD option.

C=number

specifies the penalty value, where number is a real number greater than 0.

By default, C=1.0.

Note: For the CD method, if neither the REGL1= nor REGL2= option is specified, then REGL1=C.

DATA=libref.data-table

names the input data table for PROC SVMACHINE to use. The default is the most recently created data table. libref.data-table is a two-level name, where

libref

refers to a collection of information that is defined in the LIBNAME statement and includes the library, 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 libref, see the section Using CAS Sessions and CAS Engine Librefs.

data-table

specifies the name of the input data table.

EARLYSTOP

generates a model that is based on the validation accuracy. The iterations stop when the validation accuracy stops improving, and the model from the previous iteration is selected. The iteration accuracy from both the training data and the validation data is displayed in the "Iteration Report" table.

Note: The EARLYSTOP option is ignored and a warning message is issued if the PARTITION statement is omitted. This option is ignored if you specify METHOD=CD, METHOD=ACTIVESET, or METHOD=RSVM, or perform SVR training.

EPSILON=number

specifies the insensitive loss value, where number is a nonnegative real number.

By default, EPSILON=0.01.

Note: This option is for SVR training.

ITERATIONREPORT

generates a table named "Iteration Report," which displays the training accuracy for each iteration. If you also specify the PARTITION statement and the validation data and testing data exist, then the "Iteration Report" table also displays the validation accuracy and testing accuracy, respectively, for each iteration. This option is ignored if you specify the AUTOTUNE statement; specify METHOD=CD, METHOD=ACTIVESET, or METHOD=RSVM; or perform SVR training.

Note: Generating the accuracy report for each iteration is computationally expensive and requires a significant amount of time.

MAXITER=number

specifies the maximum number of iterations before the process stops, where number is a positive integer.

By default, MAXITER=25. If you specify METHOD=CD, then by default MAXITER=100. In some cases, you can obtain a good model in fewer iterations.

MAXSV=number

specifies the maximum number of support vectors, where number is a positive integer.

By default, MAXSV=3500.

Note: This option applies only when METHOD=ACTIVESET or METHOD=RSVM. The actual number of support vectors can be a little larger than the specified number because of the nature of the active-set method.

METHOD=ACTIVESET | CD | IPOINT | RSVM

specifies the optimization method to use for training the data. You can specify the following methods:

ACTIVESET

uses the active-set method.

CD

uses the coordinate descent method.

IPOINT

uses the interior point method.

RSVM

uses the reduced SVM method.

By default, METHOD=IPOINT. If you specify METHOD=CD, you can also specify additional options, such as REGL1=, REGL2=, and SEED=. If you specify METHOD=RSVM, you can also specify additional options, such as SAMPLETYPE=, SAMPLERATE= or SAMPLESIZE=, and SEED=.

Note: When METHOD=ACTIVESET, METHOD=CD, or METHOD=RSVM, support vector regression is not supported.

Note: When METHOD=ACTIVESET, only a relatively small training data set is supported.

Note: When METHOD=RSVM, only the RBF kernel is supported.

NOPRINT

suppresses the generation of ODS outputs. If you specify this option, no ODS tables are generated.

NOSCALE

uses the original data during training.

NTHREADS=number-of-threads

specifies the number of threads to use in the computation. The default value is the number of CPUs available in the machine.

PRINTTARGET

generates the "Predicted Probability Variables" table, which displays the target variable and the predicted probability variables, and the "Predicted Target Variable" table, which displays the predicted target variable.

By default, these two tables are not generated. For SVR training, only the "Predicted Target Variable" table is generated.

REGL1=number

specifies the L1 penalty value when METHOD=CD, where number is a real number greater than 0.

By default, REGL1=1.0.

Note: If you specify a valid REGL2= option value, then the REGL1= option is ignored.

REGL2=number

specifies the L2 penalty value when METHOD=CD, where number is a real number greater than 0.

Note: If you specify a valid REGL2= option value, then the REGL1= option is ignored.

SAMPLERATE=number

specifies the sample rate when METHOD=RSVM, where number is a float number between 0 and 1.

By default, SAMPLERATE=0.1.

Note: If you specify both the SAMPLERATE= and SAMPLESIZE= options, then the SAMPLERATE= option is ignored.

SAMPLESIZE=number

specifies the sample size to use when METHOD=RSVM, where number is a positive integer less or equal to the number of observations.

Note: If you specify both the SAMPLESIZE= and SAMPLERATE= options, then the SAMPLERATE= option is ignored.

SAMPLETYPE=SIMPLE | STRATIFY

specifies the sampling strategy to use when METHOD=RSVM. You can specify the following sampling strategies:

SIMPLE

uses the simple random sampling strategy.

STRATIFY

uses the stratified random sampling strategy that is based on the target values.

By default, SAMPLETYPE=SIMPLE.

SCALE

scales the input variables to between 0 and 1 during training.

By default, all interval input variables are scaled before the training.

SEED=number

specifies the random number seed when METHOD=CD or METHOD=RSVM, where number is a nonnegative integer.

By default, SEED=1. If you specify a value of 0 or a negative integer, then the seed is generated by reading the time of day from the computer’s clock.

TOLERANCE=number

specifies the minimal absolute tolerance at which the iteration stops. The tolerance number must be greater than or equal to 1.0E–12.

By default, TOLERANCE=1.0E–6. If METHOD=ACTIVESET or METHOD=RSVM, then by default TOLERANCE=0.0001. In some cases, you can obtain a good model by specifying a number greater than or equal to 0.01.

USEMISS

uses missing values for input variables. Missingness is treated as a special level for a categorical variable, and missing values for a continuous variable are imputed to the mean before training.

By default, all observations that have missing values are dropped during the training process.

Last updated: August 06, 2026