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

3 visualizaciones (últimos 30 días)
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 comentarios
allline
allline el 25 de Feb. de 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 el 25 de Feb. de 2013
If you set MaxIter to inf, how would you know whether at the end of that time, the calculation had converged or not ?

Iniciar sesión para comentar.

Respuesta aceptada

Ilya
Ilya el 25 de Feb. de 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.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by