idSupportVectorMachine
Support vector machine regression mapping function for nonlinear ARX models (requires Statistics and Machine Learning Toolbox)
Since R2022a
Description
An idSupportVectormachine
object implements a support vector
machine (SVM) regression model, and is a nonlinear mapping function for estimating nonlinear
ARX models. This mapping object, which is also referred to as a
nonlinearity, incorporates objects that the
mapping function creates using Statistics and Machine Learning Toolbox™ functions. The mapping object contains a single component—the nonlinear
component that the SVM algorithm represents.
The input to the mapping object can be a vector of the regressors of a nonlinear ARX model.
Mathematically, idSupportVectorMachine
is a function that maps
m inputs X(t) =
[x(t1),x2(t),…,xm(t)]T
to a scalar output y(t) using the following relationship:
Here, S(X(t)) is
the regressive SVM function that constitutes the kernel of the
idSupportVectorMachine
object, and can be expressed as:
Here:
X is an m-by-1 vector of inputs, or regressors.
N is the number of support vectors in the trained model.
xn is the nth support vector in the trained model.
αn is the weight associated with each support vector.
G is the Gram matrix that results from the operation of the specified kernel function on X and xn.
b is the offset of the trained model.
The SVM mapping object implements linear epsilon-insensitive SVM regression, which is particularly robust to outliers. In this type of regression, a primary goal of the algorithm is to find a function f(x) that deviates from a training response yn by a value no greater than ε for each training point. The algorithm accommodates situations where no such linear function is available by introducing “slack variables” ζ and ζ* that provide a softer margin beyond ε. The corresponding loss function, known as the ε-insensitive loss function, ignores observed values that are within ε by treating them as equal to 0. The loss, Lε, is based only on the distance between the observed value y and the ε boundary when the value is beyond that boundary, as described by:
For more information about SVM regression models, see Understanding Support Vector Machine Regression (Statistics and Machine Learning Toolbox).
Use idSupportVectorMachine
as the value of the
OutputFcn
argument of an idnlarx
model.
For
example, specify idSupportVectorMachine
when you estimate an
idnlarx
model with the following
command.
sys = nlarx(data,regressors,idSupportVectorMachine)
You can configure the idSupportVectorMachine
object to fix parameters
during estimation and modify options. For example, if you are using a previously estimated
idSupportVectorMachine
model S
and want to retain the
model parameters, fix the parameters during idnlarx
estimation by setting the
S.Free
property to false
. To modify an estimation
option, set the value of the option property in S.EstimationOptions
. For
example, to change the solver to 'ISDA'
, use the command
S.EstimationOptions.Solver = 'ISDA'
. Use evaluate
to compute the output of the function for a given vector of
inputs.
Creation
Syntax
Description
creates an
S
= idSupportVectorMachineidSupportVectorMachine
object S
with the kernel
function 'Gaussian'
and default kernel parameters. The number of inputs
is determined during model estimation and the number of outputs is 1.
specifies the specific kernel S
= idSupportVectorMachine(KernelFunction)KernelFunction
.
specifies the property S
= idSupportVectorMachine(KernelFunction,EpsilonMargin)EpsilonMargin
, which is half the width of the epsilon-insensitive band.
Properties
Examples
Version History
Introduced in R2022a