0

我需要实现 SVM 数字分类器的概念教授。它应该是我在画布上写的对输入进行分类的简单方法。但我需要从头开始实现它。语言无所谓。

任何人都可以向我提供逐步说明如何做到这一点。任何材料链接都会有所帮助。但我需要一些与实践相关的东西,而不是理论。因为我已经阅读了一些关于它的理论文章。并且有基本的想法,它应该如何工作,但仍然有一些麻烦如何将这些想法转化为现实生活中的例子。

非常感谢。

4

2 回答 2

5

您不会找到编写 SVM 的分步说明。理解它们背后的理论和数学很重要,因为它们在算法中扮演着重要的角色,如果没有这些背景,算法就很难理解。

最好的起点是 John Platt 的顺序最小优化 (SMO)算法。我之前已经实现过这篇论文,但是 Platt 假设有大量的背景知识。一本很棒的入门书是 Lutz Hamel 的书Knowledge Discovery with Support Vector Machines。这本书激发了一切,所以如果你想理解 SVM,你不必知道或了解统计和优化理论。

如果你真的只想变得超级简单,那么从 UNT 的这个简化 SMO 算法开始 ,让你的脚湿透。这是没有任何优化的 SMO 算法。

Platt 的 SMO 算法目前还不是最先进的,但它是许多当前使用的算法的基础。LibSVM和SVMLight都可以在线获取源代码它们基于 SMO 概念的两种不同优化。

如果您对更高级别没问题,您可以使用像CVX这样的凸优化包来实现 SVM ,它具有 MatLab 和其他语言的接口。在这种情况下,您只需在 SVM 的核心设置优化问题,并让求解器为您找到解决方案。我不建议尝试从头开始实施 QP 求解器。

如果您想使用现有库,并且当您说“从头开始”时,您指的是处理数据而不是 SVM 算法本身,您可以查看现有的实现,例如R中可用的实现。“R 中的支持向量机”讨论了如何做到这一点。Hamel 的书也使用了 R。

手写数字识别数据集已在许多SVM 论文中使用,并用于分类器比较

于 2012-05-23T17:41:20.073 回答
0

是关于 SVM 的完美文章。他们提供了一些理论和分步指南 - 如何实施。

于 2012-05-23T22:11:41.857 回答