【问题标题】:SVM for multi-class in MatlabMatlab中多类的SVM
【发布时间】:2015-07-17 17:38:47
【问题描述】:

我正在尝试在 Matlab 中为多类问题实现 SVM。我知道 matlab 中有一个 SVM 的内置代码,但我不知道如何使用它。在开始使用 Matlab SVM 时需要一些帮助。

【问题讨论】:

  • 你需要更具体。
  • 谷歌“Matlab SVM”并阅读您在那里找到的文档。看起来 Matlab 的 SVM 只适用于两类问题。

标签: matlab neural-network svm


【解决方案1】:

SVM 分为两类。如果你想创建一个多类 SVM,你必须自己破解它。例如,您可以使用支持向量机作为“廉价分类器”进行 AdaBoost,尽管它们的训练成本并不低(与决策树甚至决策树桩相反)。

说到 AdaBoost,如果你真的不想自己编程,你可能最终会在 matlab 中使用ensemble methods

对于三个或更多类的分类:

  • 'AdaBoostM2'
  • “LPBoost”(需要优化工具箱许可证)
  • “TotalBoost”(需要优化工具箱许可证)
  • 'RUSBoost'
  • “子空间”
  • '包'

集成工具箱非常简单,matlab 的帮助页面上有大量文档。基本上你说明你的XY,你想要的学习器类型(例如SVM)和集成方法,这是你想用来组合不同弱学习器的方法。 AdaBoost 是一种方法,但您也可以只做 Bagging,让所有弱学习者的多数票都算在内。

因此,您可以在这里回答或至少问自己一些问题:为什么要对 SVM 进行多分类?是家庭作业吗?您知道 SVM 和其他机器学习算法的工作原理吗?您需要帮助选择正确的算法吗?

【讨论】:

  • 我们想比较我们用 SVM 开发的一种方法
  • MATLAB 中存在多类 SVM 函数:fitcecoc。此外,为 k-class SVM 训练 k one-vs-all 二进制 SVM 是一项非常简单的任务。
  • 我承认我忘记了fitcecoc... 请记住,尽管一对一的二进制 SVM 需要更多的工作。当多个学习者声称这是他们的课程时该怎么办?如果没有人声称数据属于他们的类怎么办?然后,您开始根据每个学习者在验证集上的表现来定义他们的权重。在不知不觉中,您正在做类似于 adaboost 的事情 :)。
猜你喜欢
  • 2019-01-30
  • 2012-02-21
  • 2015-12-21
  • 2018-07-23
  • 2013-01-23
  • 2017-04-21
  • 2016-07-15
  • 2011-03-05
  • 2013-04-20
相关资源
最近更新 更多