gpt4 book ai didi

c++ - C++中无库分类SVM的实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:17:07 27 4
gpt4 key购买 nike

我最近几周在学习支持 vector 机。我了解如何将数据分为两类的理论概念。但我不清楚如何选择支持 vector 并生成分隔线以使用 C++ 对新数据进行分类。

假设,我有两个类的两个训练数据集

enter image description here

绘制数据后,我得到了以下带 vector 的特征空间,这里,分隔线也很清楚。

enter image description here

如何在没有库函数的情况下在 C++ 中实现它。这将帮助我理清关于 SVM 的实现概念。我需要清楚实现,因为我将在我的母语的意见挖掘中应用 SVM。

最佳答案

我会加入大多数人的建议,并说你真的应该考虑使用图书馆。 SVM 算法非常棘手,如果由于您的实现中的错误而无法正常工作,则会增加噪音。更不用说在内存大小和时间上实现可扩展的实现有多难了。

也就是说,如果您只是想将其作为一种学习体验来探索,那么 SMO 可能是您的最佳选择。以下是您可以使用的一些资源:

The Simplified SMO Algorithm - Stanford material PDF

Fast Training of Support Vector Machines - PDF

The implementation of Support Vector Machines using the sequential minimal optimization algorithm - PDF

我找到的最实用的解释可能是 Peter Harrington 所著的机器学习实战一书第 6 章中的解释。代码本身在 Python 上,但您应该能够将其移植到 C++。我不认为这是最好的实现,但它可能足以让我们了解正在发生的事情。

代码是免费的:

https://github.com/pbharrin/machinelearninginaction/tree/master/Ch06

遗憾的是,该章没有样本,但许多本 map 书馆往往都有这本书。

关于c++ - C++中无库分类SVM的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27501444/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com