Clear Filters
Clear Filters

SVM - SVMTRAIN method SMO (error: No convergence achieved within maximum number of iterations)

4 views (last 30 days)
Hello, I am using the method SMO for SVMTRAIN. When training the svm, the parameter MaxIter (set in default at 15000) is used to control the time needed to get convergence.
If convergence not reached before iteration number [MaxIter] then an error is lauched and svmtrain function stops.
the error lauched displays (error: No convergence achieved within maximum number of iterations).
I increased the parameter MaxIter to 100000 (=10^5) but still svmtrain crashes.
*HOW CAN I HANDLE THIS ERROR? INCREASING THE PARAMETER TO INFINITY IS IT A GOOD SOLUTION ?
BY REDUCING THE SAMPLE SIZE, IS IT GOING TO DECREASE THE COMPLEXITY OF THE CLASSIFICATION PROBLEM, AND HELP IT TO ACHIEVE CONVERGENCE FASTER ?*
thank you guys !
  2 Comments
allline
allline on 25 Feb 2013
Here are some details: The SVMtrain function do not reach convergence when:
for MaxIter = 100.000; (10^5) boxconstraint = 1000; RBF_gamma = 0.1;
please be aware that when I set MaxIter = 1.000.000 (10^6) it works.
So, is there a consequence of increasing the MaxIter param to inf ?
Walter Roberson
Walter Roberson on 25 Feb 2013
If you set MaxIter to inf, how would you know whether at the end of that time, the calculation had converged or not ?

Sign in to comment.

Accepted Answer

Ilya
Ilya on 25 Feb 2013
You can do 3 things:
  1. Lower the box constraint.
  2. Increase tolkkt.
  3. Set kktviolationlevel to a positive value.
Any of these things should speed up convergence.
You can set MaxIter to Inf, but then be ready to spend a long time waiting till SMO converges.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!