|
virtual double | getC () const =0 |
|
virtual cv::Mat | getClassWeights () const =0 |
|
virtual double | getCoef0 () const =0 |
|
virtual double | getDecisionFunction (int i, OutputArray alpha, OutputArray svidx) const =0 |
| Retrieves the decision function. More...
|
|
virtual double | getDegree () const =0 |
|
virtual double | getGamma () const =0 |
|
virtual int | getKernelType () const =0 |
|
virtual double | getNu () const =0 |
|
virtual double | getP () const =0 |
|
virtual Mat | getSupportVectors () const =0 |
| Retrieves all the support vectors. More...
|
|
virtual cv::TermCriteria | getTermCriteria () const =0 |
|
virtual int | getType () const =0 |
|
virtual Mat | getUncompressedSupportVectors () const =0 |
| Retrieves all the uncompressed support vectors of a linear SVM. More...
|
|
virtual void | setC (double val)=0 |
|
virtual void | setClassWeights (const cv::Mat &val)=0 |
|
virtual void | setCoef0 (double val)=0 |
|
virtual void | setCustomKernel (const Ptr< Kernel > &_kernel)=0 |
|
virtual void | setDegree (double val)=0 |
|
virtual void | setGamma (double val)=0 |
|
virtual void | setKernel (int kernelType)=0 |
|
virtual void | setNu (double val)=0 |
|
virtual void | setP (double val)=0 |
|
virtual void | setTermCriteria (const cv::TermCriteria &val)=0 |
|
virtual void | setType (int val)=0 |
|
virtual bool | trainAuto (const Ptr< TrainData > &data, int kFold=10, ParamGrid Cgrid=getDefaultGrid(C), ParamGrid gammaGrid=getDefaultGrid(GAMMA), ParamGrid pGrid=getDefaultGrid(P), ParamGrid nuGrid=getDefaultGrid(NU), ParamGrid coeffGrid=getDefaultGrid(COEF), ParamGrid degreeGrid=getDefaultGrid(DEGREE), bool balanced=false)=0 |
| Trains an SVM with optimal parameters. More...
|
|
virtual bool | trainAuto (InputArray samples, int layout, InputArray responses, int kFold=10, Ptr< ParamGrid > Cgrid=SVM::getDefaultGridPtr(SVM::C), Ptr< ParamGrid > gammaGrid=SVM::getDefaultGridPtr(SVM::GAMMA), Ptr< ParamGrid > pGrid=SVM::getDefaultGridPtr(SVM::P), Ptr< ParamGrid > nuGrid=SVM::getDefaultGridPtr(SVM::NU), Ptr< ParamGrid > coeffGrid=SVM::getDefaultGridPtr(SVM::COEF), Ptr< ParamGrid > degreeGrid=SVM::getDefaultGridPtr(SVM::DEGREE), bool balanced=false)=0 |
| Trains an SVM with optimal parameters. More...
|
|
virtual float | calcError (const Ptr< TrainData > &data, bool test, OutputArray resp) const |
| Computes error on the training or test dataset. More...
|
|
virtual bool | empty () const CV_OVERRIDE |
| Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
|
|
virtual int | getVarCount () const =0 |
| Returns the number of variables in training samples. More...
|
|
virtual bool | isClassifier () const =0 |
| Returns true if the model is classifier. More...
|
|
virtual bool | isTrained () const =0 |
| Returns true if the model is trained. More...
|
|
virtual float | predict (InputArray samples, OutputArray results=noArray(), int flags=0) const =0 |
| Predicts response(s) for the provided sample(s) More...
|
|
virtual bool | train (const Ptr< TrainData > &trainData, int flags=0) |
| Trains the statistical model. More...
|
|
virtual bool | train (InputArray samples, int layout, InputArray responses) |
| Trains the statistical model. More...
|
|
| Algorithm () |
|
virtual | ~Algorithm () |
|
virtual void | clear () |
| Clears the algorithm state. More...
|
|
virtual String | getDefaultName () const |
|
virtual void | read (const FileNode &fn) |
| Reads algorithm parameters from a file storage. More...
|
|
virtual void | save (const String &filename) const |
|
virtual void | write (FileStorage &fs) const |
| Stores algorithm parameters in a file storage. More...
|
|
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
| simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
Trains an SVM with optimal parameters.
- Parameters
-
data | the training data that can be constructed using TrainData::create or TrainData::loadFromCSV. |
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 executed kFold times. |
Cgrid | grid for C |
gammaGrid | grid for gamma |
pGrid | grid for p |
nuGrid | grid for nu |
coeffGrid | grid for coeff |
degreeGrid | grid for degree |
balanced | 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.
If there is no need to optimize a parameter, the corresponding grid step should be set to any value less than or equal to 1. For example, to avoid optimization in gamma, set gammaGrid.step = 0
, gammaGrid.minVal
, gamma_grid.maxVal
as arbitrary numbers. In this case, the value Gamma
is taken for gamma.
And, finally, if the optimization in a parameter is required but the corresponding grid is unknown, you may call the function SVM::getDefaultGrid. To generate a grid, for example, for gamma, call SVM::getDefaultGrid(SVM::GAMMA)
.
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.
virtual bool cv::ml::SVM::trainAuto |
( |
InputArray |
samples, |
|
|
int |
layout, |
|
|
InputArray |
responses, |
|
|
int |
kFold = 10 , |
|
|
Ptr< ParamGrid > |
Cgrid = SVM::getDefaultGridPtr(SVM::C) , |
|
|
Ptr< ParamGrid > |
gammaGrid = SVM::getDefaultGridPtr(SVM::GAMMA) , |
|
|
Ptr< ParamGrid > |
pGrid = SVM::getDefaultGridPtr(SVM::P) , |
|
|
Ptr< ParamGrid > |
nuGrid = SVM::getDefaultGridPtr(SVM::NU) , |
|
|
Ptr< ParamGrid > |
coeffGrid = SVM::getDefaultGridPtr(SVM::COEF) , |
|
|
Ptr< ParamGrid > |
degreeGrid = SVM::getDefaultGridPtr(SVM::DEGREE) , |
|
|
bool |
balanced = false |
|
) |
| |
|
pure virtual |
Trains an SVM with optimal parameters.
- Parameters
-
samples | training samples |
layout | 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 |
Cgrid | grid for C |
gammaGrid | grid for gamma |
pGrid | grid for p |
nuGrid | grid for nu |
coeffGrid | grid for coeff |
degreeGrid | grid for degree |
balanced | 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.