2013-05-22 43 views
0

我正在嘗試在matlab中使用multisvm函數。在一個小的數據集上,一切都很好。增加在我需要它的大小,我得到以下錯誤:使用multisvm增加迭代次數

Error using seqminopt>seqminoptImpl (line 198) No convergence achieved within maximum number of iterations.

Error in seqminopt (line 81) [alphas offset] = seqminoptImpl(data, targetLabels, ...

Error in svmtrain (line 499) [alpha, bias] = seqminopt(training, groupIndex, ...

Error in multisvm (line 20) models(k) = svmtrain(TrainingSet,G1vAll);

我一直在試圖尋找解決方案在線和發現這一點:http://www.mathworks.com/matlabcentral/answers/66183

,其中建議「等方面加大最大迭代次數「。問題是,這似乎並不容易。我有些新手,但我試圖通過查看所有這些文件來解決這個問題,但沒有成功。有誰知道我可以如何增加迭代次數並解決這個問題?

回答

2

您可以使用svmtrain函數(MaxIter)的可選'options'參數來執行此操作。 documentation of svmtrain包含有關此的更多信息。

如果您使用的是SMO(默認),則需要使用statset選項結構,如果您使用的是QP解算器,則需要使用optimset

4

Svmtrain正試圖找到例如兩組。如果它找不到正確的線,它會改變線上函數的一些參數來找到一個正確的線,這些線將分組分組並迭代迭代參數。默認情況下,它試圖找到正確的行15000次。如果我們使用以下代碼,svmtrain將嘗試100000次以找到更正的行。但是訓練的時間自然更長。

options.MaxIter = 100000; 
my_svm_struct = svmtrain((Training, Group, 'Options', options); 
相關問題