Package org.opencv.ml
Class SVM
java.lang.Object
org.opencv.core.Algorithm
org.opencv.ml.StatModel
org.opencv.ml.SVM
Support Vector Machines.
SEE: REF: ml_intro_svm
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
Fields inherited from class org.opencv.ml.StatModel
COMPRESSED_INPUT, PREPROCESSED_INPUT, RAW_OUTPUT, UPDATE_MODEL
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic SVM
__fromPtr__
(long addr) static SVM
create()
Creates empty model.protected void
finalize()
double
getC()
SEE: setCSEE: setClassWeightsdouble
getCoef0()
SEE: setCoef0double
getDecisionFunction
(int i, Mat alpha, Mat svidx) Retrieves the decision functionstatic ParamGrid
getDefaultGridPtr
(int param_id) Generates a grid for %SVM parameters.double
SEE: setDegreedouble
getGamma()
SEE: setGammaint
Type of a %SVM kernel.double
getNu()
SEE: setNudouble
getP()
SEE: setPRetrieves all the support vectors The method returns all the support vectors as a floating-point matrix, where support vectors are stored as matrix rows.SEE: setTermCriteriaint
getType()
SEE: setTypeRetrieves all the uncompressed support vectors of a linear %SVM The method returns all the uncompressed support vectors of a linear %SVM that the compressed support vector, used for prediction, was derived from.static SVM
Loads and creates a serialized svm from a file Use SVM::save to serialize and store an SVM to disk.void
setC
(double val) getC SEE: getCvoid
setClassWeights
(Mat val) getClassWeights SEE: getClassWeightsvoid
setCoef0
(double val) getCoef0 SEE: getCoef0void
setDegree
(double val) getDegree SEE: getDegreevoid
setGamma
(double val) getGamma SEE: getGammavoid
setKernel
(int kernelType) Initialize with one of predefined kernels.void
setNu
(double val) getNu SEE: getNuvoid
setP
(double val) getP SEE: getPvoid
getTermCriteria SEE: getTermCriteriavoid
setType
(int val) getType SEE: getTypeboolean
Trains an %SVM with optimal parametersboolean
Trains an %SVM with optimal parametersboolean
Trains an %SVM with optimal parametersboolean
Trains an %SVM with optimal parametersboolean
trainAuto
(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid) Trains an %SVM with optimal parametersboolean
trainAuto
(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid) Trains an %SVM with optimal parametersboolean
trainAuto
(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid) Trains an %SVM with optimal parametersboolean
trainAuto
(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid) Trains an %SVM with optimal parametersboolean
trainAuto
(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid, boolean balanced) Trains an %SVM with optimal parametersMethods inherited from class org.opencv.ml.StatModel
calcError, empty, getVarCount, isClassifier, isTrained, predict, predict, predict, train, train, train
Methods inherited from class org.opencv.core.Algorithm
clear, getDefaultName, getNativeObjAddr, save
-
Field Details
-
CUSTOM
public static final int CUSTOM- See Also:
-
LINEAR
public static final int LINEAR- See Also:
-
POLY
public static final int POLY- See Also:
-
RBF
public static final int RBF- See Also:
-
SIGMOID
public static final int SIGMOID- See Also:
-
CHI2
public static final int CHI2- See Also:
-
INTER
public static final int INTER- See Also:
-
C
public static final int C- See Also:
-
GAMMA
public static final int GAMMA- See Also:
-
P
public static final int P- See Also:
-
NU
public static final int NU- See Also:
-
COEF
public static final int COEF- See Also:
-
DEGREE
public static final int DEGREE- See Also:
-
C_SVC
public static final int C_SVC- See Also:
-
NU_SVC
public static final int NU_SVC- See Also:
-
ONE_CLASS
public static final int ONE_CLASS- See Also:
-
EPS_SVR
public static final int EPS_SVR- See Also:
-
NU_SVR
public static final int NU_SVR- See Also:
-
-
Constructor Details
-
SVM
protected SVM(long addr)
-
-
Method Details
-
__fromPtr__
-
getType
public int getType()SEE: setType- Returns:
- automatically generated
-
setType
public void setType(int val) getType SEE: getType- Parameters:
val
- automatically generated
-
getGamma
public double getGamma()SEE: setGamma- Returns:
- automatically generated
-
setGamma
public void setGamma(double val) getGamma SEE: getGamma- Parameters:
val
- automatically generated
-
getCoef0
public double getCoef0()SEE: setCoef0- Returns:
- automatically generated
-
setCoef0
public void setCoef0(double val) getCoef0 SEE: getCoef0- Parameters:
val
- automatically generated
-
getDegree
public double getDegree()SEE: setDegree- Returns:
- automatically generated
-
setDegree
public void setDegree(double val) getDegree SEE: getDegree- Parameters:
val
- automatically generated
-
getC
public double getC()SEE: setC- Returns:
- automatically generated
-
setC
public void setC(double val) getC SEE: getC- Parameters:
val
- automatically generated
-
getNu
public double getNu()SEE: setNu- Returns:
- automatically generated
-
setNu
public void setNu(double val) getNu SEE: getNu- Parameters:
val
- automatically generated
-
getP
public double getP()SEE: setP- Returns:
- automatically generated
-
setP
public void setP(double val) getP SEE: getP- Parameters:
val
- automatically generated
-
getClassWeights
SEE: setClassWeights- Returns:
- automatically generated
-
setClassWeights
getClassWeights SEE: getClassWeights- Parameters:
val
- automatically generated
-
getTermCriteria
SEE: setTermCriteria- Returns:
- automatically generated
-
setTermCriteria
getTermCriteria SEE: getTermCriteria- Parameters:
val
- automatically generated
-
getKernelType
public int getKernelType()Type of a %SVM kernel. See SVM::KernelTypes. Default value is SVM::RBF.- Returns:
- automatically generated
-
setKernel
public void setKernel(int kernelType) Initialize with one of predefined kernels. See SVM::KernelTypes.- Parameters:
kernelType
- automatically generated
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid, boolean balanced) Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples.kFold
- Cross-validation parameter. The training set is divided into kFold subsets. One subset is used to test the model, the others form the train set. So, the %SVM algorithm isCgrid
- grid for CgammaGrid
- grid for gammapGrid
- grid for pnuGrid
- grid for nucoeffGrid
- grid for coeffdegreeGrid
- grid for degreebalanced
- If true and the problem is 2-class classification then the method creates more balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid, ParamGrid degreeGrid) Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples.kFold
- Cross-validation parameter. The training set is divided into kFold subsets. One subset is used to test the model, the others form the train set. So, the %SVM algorithm isCgrid
- grid for CgammaGrid
- grid for gammapGrid
- grid for pnuGrid
- grid for nucoeffGrid
- grid for coeffdegreeGrid
- grid for degree balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid, ParamGrid coeffGrid) Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples.kFold
- Cross-validation parameter. The training set is divided into kFold subsets. One subset is used to test the model, the others form the train set. So, the %SVM algorithm isCgrid
- grid for CgammaGrid
- grid for gammapGrid
- grid for pnuGrid
- grid for nucoeffGrid
- grid for coeff balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid, ParamGrid nuGrid) Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples.kFold
- Cross-validation parameter. The training set is divided into kFold subsets. One subset is used to test the model, the others form the train set. So, the %SVM algorithm isCgrid
- grid for CgammaGrid
- grid for gammapGrid
- grid for pnuGrid
- grid for nu balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid, ParamGrid pGrid) Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples.kFold
- Cross-validation parameter. The training set is divided into kFold subsets. One subset is used to test the model, the others form the train set. So, the %SVM algorithm isCgrid
- grid for CgammaGrid
- grid for gammapGrid
- grid for p balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
trainAuto
public boolean trainAuto(Mat samples, int layout, Mat responses, int kFold, ParamGrid Cgrid, ParamGrid gammaGrid) Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples.kFold
- Cross-validation parameter. The training set is divided into kFold subsets. One subset is used to test the model, the others form the train set. So, the %SVM algorithm isCgrid
- grid for CgammaGrid
- grid for gamma balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
trainAuto
Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples.kFold
- Cross-validation parameter. The training set is divided into kFold subsets. One subset is used to test the model, the others form the train set. So, the %SVM algorithm isCgrid
- grid for C balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
trainAuto
Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples.kFold
- Cross-validation parameter. The training set is divided into kFold subsets. One subset is used to test the model, the others form the train set. So, the %SVM algorithm is balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
trainAuto
Trains an %SVM with optimal parameters- Parameters:
samples
- training sampleslayout
- See ml::SampleTypes.responses
- vector of responses associated with the training samples. subset is used to test the model, the others form the train set. So, the %SVM algorithm is balanced cross-validation subsets that is proportions between classes in subsets are close to such proportion in the whole train dataset. The method trains the %SVM model automatically by choosing the optimal parameters C, gamma, p, nu, coef0, degree. Parameters are considered optimal when the cross-validation estimate of the test set error is minimal. This function only makes use of SVM::getDefaultGrid for parameter optimization and thus only offers rudimentary parameter options. This function works for the classification (SVM::C_SVC or SVM::NU_SVC) as well as for the regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed.- Returns:
- automatically generated
-
getSupportVectors
Retrieves all the support vectors The method returns all the support vectors as a floating-point matrix, where support vectors are stored as matrix rows.- Returns:
- automatically generated
-
getUncompressedSupportVectors
Retrieves all the uncompressed support vectors of a linear %SVM The method returns all the uncompressed support vectors of a linear %SVM that the compressed support vector, used for prediction, was derived from. They are returned in a floating-point matrix, where the support vectors are stored as matrix rows.- Returns:
- automatically generated
-
getDecisionFunction
Retrieves the decision function- Parameters:
i
- the index of the decision function. If the problem solved is regression, 1-class or 2-class classification, then there will be just one decision function and the index should always be 0. Otherwise, in the case of N-class classification, there will be \(N(N-1)/2\) decision functions.alpha
- the optional output vector for weights, corresponding to different support vectors. In the case of linear %SVM all the alpha's will be 1's.svidx
- the optional output vector of indices of support vectors within the matrix of support vectors (which can be retrieved by SVM::getSupportVectors). In the case of linear %SVM each decision function consists of a single "compressed" support vector. The method returns rho parameter of the decision function, a scalar subtracted from the weighted sum of kernel responses.- Returns:
- automatically generated
-
getDefaultGridPtr
Generates a grid for %SVM parameters.- Parameters:
param_id
- %SVM parameters IDs that must be one of the SVM::ParamTypes. The grid is generated for the parameter with this ID. The function generates a grid pointer for the specified parameter of the %SVM algorithm. The grid may be passed to the function SVM::trainAuto.- Returns:
- automatically generated
-
create
Creates empty model. Use StatModel::train to train the model. Since %SVM has several parameters, you may want to find the best parameters for your problem, it can be done with SVM::trainAuto.- Returns:
- automatically generated
-
load
Loads and creates a serialized svm from a file Use SVM::save to serialize and store an SVM to disk. Load the SVM from this file again, by calling this function with the path to the file.- Parameters:
filepath
- path to serialized svm- Returns:
- automatically generated
-
finalize
-