如何使用支持向量机(SVM)进行多类分类
libsvm
machine-learning
svm
5
0

在每本书和示例中,它们始终仅显示二进制分类(两个类),而新矢量可以属于任何一个类。

这里的问题是我有4个类(c1,c2,c3,c4)。我已经为4个班级训练了数据。

对于新矢量,输出应为

C1 80% (获胜者)

c2 10%

c3 6%

c4 4%

这个怎么做?我打算使用libsvm(因为它最受欢迎)。我对此不太了解。如果以前有人使用过,请告诉我应该使用的特定命令。

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

您始终可以通过递归选择类别集合的随机划分,将多类别分类问题简化为二进制问题。这不一定比一次学习要有效或有效,因为子学习问题需要较少的示例,因为分区问题较小。 (这可能最多需要一个恒定的订购时间,例如两倍长)。它还可能导致更准确的学习。

我并不一定推荐这样做,但这是对您问题的一个答案,并且是一种可以应用于任何二进制学习算法的通用技术。

收藏
评论

常用的方法是“一对休息”和“一对一”。在第一种方法中,您将获得n个分类器,并且所得的类将具有最高分数。在第二种方法中,结果类别是通过所有分类器的多数票获得的。

AFAIR,libsvm支持两种多类分类策略。

收藏
评论

LibSVM使用一对一方法解决多类学习问题。从常见问题解答

问:libsvm用于多类SVM的方法是什么?为什么不使用“其余部分为1”方法?

这是一对一的。我们在进行以下比较后选择了它:C.-W.许和C.-J.林多类支持向量机方法的比较 ,IEEE Transactions on Neural Networks,13(2002),415-425。

“对抗其余部分”是一种不错的方法,其性能可与“ 1-对抗-1”相媲美。我们之所以这样做是因为它的训练时间更短。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号