【问题标题】:Differences between svmtrain and fitcsvmsvmtrain 和 fitcsvm 的区别
【发布时间】:2015-09-28 23:56:17
【问题描述】:

我有一组由 35 个特征组成的数据。我注意到当我将数据提供给 svmtrain 时,我收到了以下信息:

no convergence achieved within maximum number of iterations

然后,当我将迭代次数“MaxIter”增加到大约 1,000,000 次时,上述错误消失了,我开始使用“svmclassify”进行良好的分类。

另一方面,当我将数据提供给“fitcsvm”时,它会在默认的迭代次数“15,000”内快速收敛。然而,问题是当我尝试使用“predict”对数据进行分类时,我得到了错误的分类。

简而言之,在增加迭代次数后,最后“svmtrain”对数据进行正确分类。但是,“fitcsvm”既没有对数据进行正确分类,也没有给我增加迭代次数的机会,因为它通过检查 ConvergenceInfo.Converged 属性可以看出它已经成功收敛.

请给点建议?请注意,我是 matlab 和 SVM 的新手。

【问题讨论】:

    标签: matlab svm


    【解决方案1】:

    fitcsvm 和 svmtrain 在其他算法中使用 SMO 进行优化。该软件在两个函数之间实现了不同的 SMO,但数值研究表明结果存在合理的一致性。

    来源:http://in.mathworks.com/help/stats/classificationsvm-class.html

    SMO 是顺序最小优化。这是训练 SVM 的步骤。

    显然 SMO 的两种实现有不同的参数需要配置。这就是为什么在 fitcsvm 的实现中,您无法设置迭代次数。

    查看上面的链接,它还提到了其他差异。

    【讨论】:

      猜你喜欢
      • 2015-05-24
      • 1970-01-01
      • 2019-08-27
      • 2012-11-28
      • 2018-12-15
      • 2013-08-07
      • 2011-10-20
      • 2020-01-23
      • 1970-01-01
      相关资源
      最近更新 更多