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

4 次查看(过去 30 天)
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 个评论
allline
allline 2013-2-25
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 2013-2-25
If you set MaxIter to inf, how would you know whether at the end of that time, the calculation had converged or not ?

请先登录,再进行评论。

采纳的回答

Ilya
Ilya 2013-2-25
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by