我想在高维二进制数据(文本)的情况下实现一个简单的 SVM 分类器,我认为简单的线性 SVM 是最好的。自己实现它的原因基本上是我想了解它是如何工作的,所以使用库不是我想要的。
问题是大多数教程都会提出一个可以作为“二次问题”来解决的方程,但它们从未展示实际的算法!那么您能否向我指出一个我可以研究的非常简单的实现,或者(更好)向我提供一个一直到实现细节的教程?
非常感谢!
最佳答案
John C. Platt 的论文中可以找到顺序最小优化 (SMO) 方法的一些伪代码: Fast Training of Support Vector Machines using Sequential Minimal Optimization 。还有 SMO 算法的 Java 实现,它是为研究和教育目的而开发的 ( SVM-JAVA )。
解决QP优化问题的其他常用方法包括:
- 约束共轭梯度
- 内点法
- 事件集方法
但请注意,需要一些数学知识才能理解这些东西(拉格朗日乘数、卡鲁什-库恩-塔克条件等)。
关于machine-learning - 实现线性二元 SVM(支持向量机),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1757224/