svmtrain 与 fitcsvm 相​​比

svmtrain compared to fitcsvm

在以前使用但现在弃用的 svmtrain 函数中,如果在一定次数的迭代后无法成功训练 svm,该函数将停止并且 return "No convergence error"。

然而,我注意到较新的 fitcsvm returns 没有任何错误消息,即使没有达到收敛。如果 svm 训练成功否则是否会强制 fitcsvm 为 return 否则会抛出错误?

不,不支持。它在 IterationLimit 选项下的 documentation of fitcsvm 中说:

The software returns a trained classifier regardless of whether the optimization routine successfully converges.

所以你必须手动抛出错误。或者:

SVMModel = fitcsvm(X,Y)
if not(SVMModel.ConvergenceInfo.Converged)
    error('SVM training did not reach convergence')
end

或:

SVMModel = fitcsvm(X,Y)
assert(SVMModel.ConvergenceInfo.Converged, ...
       'SVM training did not reach convergence')