|
virtual float | getInitialStepSize () const =0 |
| Parameter initialStepSize of a SVMSGD optimization problem. More...
|
|
virtual float | getMarginRegularization () const =0 |
| Parameter marginRegularization of a SVMSGD optimization problem. More...
|
|
virtual int | getMarginType () const =0 |
| Margin type, one of SVMSGD::MarginType. More...
|
|
virtual float | getShift ()=0 |
|
virtual float | getStepDecreasingPower () const =0 |
| Parameter stepDecreasingPower of a SVMSGD optimization problem. More...
|
|
virtual int | getSvmsgdType () const =0 |
| Algorithm type, one of SVMSGD::SvmsgdType. More...
|
|
virtual TermCriteria | getTermCriteria () const =0 |
| Termination criteria of the training algorithm. You can specify the maximum number of iterations (maxCount) and/or how much the error could change between the iterations to make the algorithm continue (epsilon). More...
|
|
virtual Mat | getWeights ()=0 |
|
virtual void | setInitialStepSize (float InitialStepSize)=0 |
| Parameter initialStepSize of a SVMSGD optimization problem. More...
|
|
virtual void | setMarginRegularization (float marginRegularization)=0 |
| Parameter marginRegularization of a SVMSGD optimization problem. More...
|
|
virtual void | setMarginType (int marginType)=0 |
| Margin type, one of SVMSGD::MarginType. More...
|
|
virtual void | setOptimalParameters (int svmsgdType=SVMSGD::ASGD, int marginType=SVMSGD::SOFT_MARGIN)=0 |
| Function sets optimal parameters values for chosen SVM SGD model. More...
|
|
virtual void | setStepDecreasingPower (float stepDecreasingPower)=0 |
| Parameter stepDecreasingPower of a SVMSGD optimization problem. More...
|
|
virtual void | setSvmsgdType (int svmsgdType)=0 |
| Algorithm type, one of SVMSGD::SvmsgdType. More...
|
|
virtual void | setTermCriteria (const cv::TermCriteria &val)=0 |
| Termination criteria of the training algorithm. You can specify the maximum number of iterations (maxCount) and/or how much the error could change between the iterations to make the algorithm continue (epsilon). 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 (FileStorage &fs, const String &name) const |
|
void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
|
Stochastic Gradient Descent SVM classifier.
SVMSGD provides a fast and easy-to-use implementation of the SVM classifier using the Stochastic Gradient Descent approach, as presented in [29].
The classifier has following parameters:
- model type,
- margin type,
- margin regularization ( \(\lambda\)),
- initial step size ( \(\gamma_0\)),
- step decreasing power ( \(c\)),
- and termination criteria.
The model type may have one of the following values: SGD and ASGD.
The recommended model type is ASGD (following [29]).
The margin type may have one of the following values: SOFT_MARGIN or HARD_MARGIN.
- You should use HARD_MARGIN type, if you have linearly separable sets.
- You should use SOFT_MARGIN type, if you have non-linearly separable sets or sets with outliers.
- In the general case (if you know nothing about linear separability of your sets), use SOFT_MARGIN.
The other parameters may be described as follows:
- Margin regularization parameter is responsible for weights decreasing at each step and for the strength of restrictions on outliers (the less the parameter, the less probability that an outlier will be ignored). Recommended value for SGD model is 0.0001, for ASGD model is 0.00001.
- Initial step size parameter is the initial value for the step size \(\gamma(t)\). You will have to find the best initial step for your problem.
- Step decreasing power is the power parameter for \(\gamma(t)\) decreasing by the formula, mentioned above. Recommended value for SGD model is 1, for ASGD model is 0.75.
- Termination criteria can be TermCriteria::COUNT, TermCriteria::EPS or TermCriteria::COUNT + TermCriteria::EPS. You will have to find the best termination criteria for your problem.
Note that the parameters margin regularization, initial step size, and step decreasing power should be positive.
To use SVMSGD algorithm do as follows:
svmsgd->train(trainData);
svmsgd->predict(samples, responses);