public class SVRegression extends SupportVectorMachine implements Serializable, Cloneable
The standard form SVR is the so-called epsilon-support vector regression, or \(\varepsilon\)-SVR. If \(z_i\) is the target output, then given the parameters \(C > \, 0, \varepsilon > \, 0\), the standard form SVR is
$$\min_ {w, b, \xi, \xi^*} \frac{1}{2} w^Tw+C\sum_{i=1}^{l} \xi _i + C\sum_{i=1}^{l} {\xi _i}^*$$
$$\text{subject to} \, \, w^T \phi (x_i)+b-z_i \leq \varepsilon +\xi _i,$$
$$z_i - w^T \phi (x_i)-b \leq \varepsilon +{\xi _i}^*,$$
$$ \xi_i, {\xi_i}^* \geq 0, i=1, \ldots, l $$
The variables \(\xi _i\) and
\({\xi _i}^*\) are two slack variables, one for exceeding
the target value by more than
\(\epsilon\) and the other for being more than
\(\epsilon\) below the target.
\(\epsilon\) is controlled through the use of the set method
setInsensitivityBand
.
SupportVectorMachine.ReflectiveOperationException
PredictiveModel.CloneNotSupportedException, PredictiveModel.PredictiveModelException, PredictiveModel.StateChangeException, PredictiveModel.SumOfProbabilitiesNotOneException, PredictiveModel.VariableType
Constructor and Description |
---|
SVRegression(double[][] xy,
int responseColumnIndex,
PredictiveModel.VariableType[] varType)
Constructs a support vector machine for regression (SVR).
|
SVRegression(double[][] xy,
int responseColumnIndex,
PredictiveModel.VariableType[] varType,
Kernel k)
Constructs a support vector machine for regression (SVR).
|
SVRegression(SVRegression svrModel)
Constructs a copy of the input
SVRegression predictive model. |
Modifier and Type | Method and Description |
---|---|
SVRegression |
clone()
Clones an
SVRegression predictive model. |
double |
getInsensitivityBand()
Returns the insensitivity band parameter,
\(\epsilon\), in the standard formulation of the SVM
regression problem.
|
protected SVModel |
optimize(DataNode[][] x,
double[] y,
double[] w,
int len,
Kernel kernel)
Performs the regression support vector machine optimization problem.
|
protected double[] |
predictValues(SVModel model,
double[][] attributeData)
Generates the predicted values on the attribute data using the given
support vector machine model.
|
protected void |
setConfiguration(PredictiveModel pm)
Sets the configuration to that of the input
PredictiveModel . |
void |
setInsensitivityBand(double epsilon)
Sets the insensitivity band parameter, \(\epsilon\), in
the standard formulation of the SVM regression problem.
|
fitModel, getConvergenceTolerance, getKernel, getKernelParameters, getModel, getNuParameter, getRegularizationParameter, getWorkingArraySize, isNuFormulation, isProbability, isShrinking, predict, predict, setConvergenceTolerance, setKernel, setKernelParameters, setNuFormulation, setNuParameter, setProbability, setRegularizationParameter, setShrinking, setWorkArraySize
getClassCounts, getClassErrors, getClassLabels, getClassProbabilities, getCostMatrix, getMaxNumberOfCategories, getMaxNumberOfIterations, getNumberOfClasses, getNumberOfColumns, getNumberOfMissing, getNumberOfPredictors, getNumberOfRows, getNumberOfUniquePredictorValues, getPredictorIndexes, getPredictorTypes, getPrintLevel, getPriorProbabilities, getRandomObject, getResponseColumnIndex, getResponseVariableAverage, getResponseVariableMostFrequentClass, getResponseVariableType, getTotalWeight, getVariableType, getWeights, getXY, isConstantSeries, isMustFitModel, isUserFixedNClasses, predict, setClassCounts, setClassLabels, setClassProbabilities, setCostMatrix, setMaxNumberOfCategories, setMaxNumberOfIterations, setMustFitModel, setNumberOfClasses, setPredictorIndex, setPredictorTypes, setPrintLevel, setPriorProbabilities, setRandomObject, setResponseColumnIndex, setTrainingData, setVariableType, setWeights
public SVRegression(double[][] xy, int responseColumnIndex, PredictiveModel.VariableType[] varType)
xy
- a double
matrix containing the training data and
associated response valuesresponseColumnIndex
- an int
specifying the column
index of the response variablevarType
- a PredictiveModel.VariableType
array of
length equal to xy[0].length
containing the type of each
variablepublic SVRegression(SVRegression svrModel)
SVRegression
predictive model.svrModel
- an SVRegression
predictive modelpublic SVRegression(double[][] xy, int responseColumnIndex, PredictiveModel.VariableType[] varType, Kernel k)
xy
- a double
matrix containing the training data and
associated response valuesresponseColumnIndex
- an int
specifying the column
index of the response variablevarType
- a PredictiveModel.VariableType
array of
length equal to xy[0].length
containing the type of each
variablek
- a Kernel
, the kernel functionpublic SVRegression clone()
SVRegression
predictive model.clone
in class PredictiveModel
SVRegression
predictive modelprotected final void setConfiguration(PredictiveModel pm)
PredictiveModel
.
Note that the input PredictiveModel
object must be the same
subclass of PredictiveModel
as is this instance.
setConfiguration
in class SupportVectorMachine
pm
- a SVRegression
instance
Default: The class uses its default configuration as described in the different methods.
public double getInsensitivityBand()
double
, the value of the insensitivity band
parameterpublic void setInsensitivityBand(double epsilon)
epsilon
- a double
> 0.0, the value of the
infeasibility band parameter
Default: epsilon
=0.1
protected SVModel optimize(DataNode[][] x, double[] y, double[] w, int len, Kernel kernel) throws NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
optimize
in class SupportVectorMachine
x
- a DataNode
matrix containing the attribute datay
- a double
array containing the response variablelen
- an int
, the total possible number of support
vectorsw
- a double
array containing the observation weightskernel
- a Kernel
objectSVModel
structure containing the fitted modelNoSuchMethodException
- thrown when a particular method
cannot be foundInstantiationException
- thrown when an application tries
to create an instance of a class using the newInstance
method in class Class
, but the specified class object cannot
be instantiatedIllegalAccessException
- thrown when an application tries
to reflectively create an instance (other than an array), set or get a
field, or invoke a method, but the currently executing method does not
have access to the definition of the specified class, field, method or
constructorInvocationTargetException
- a checked exception
that wraps an exception thrown by an invoked method or constructorprotected double[] predictValues(SVModel model, double[][] attributeData) throws PredictiveModel.SumOfProbabilitiesNotOneException
predictValues
in class SupportVectorMachine
model
- a fitted SVModel
objectattributeData
- a double
matrix containing the
attribute (or predictor) datadouble
array containing the predictions for each
row in the input attribute dataPredictiveModel.SumOfProbabilitiesNotOneException
- the
sum of probabilities is not approximately oneCopyright © 2020 Rogue Wave Software. All rights reserved.