SVM支持向量机的实现

本文介绍了如何实现支持向量机(SVM),通过伪造数据并使用SMO算法进行训练。作者提供了data.py用于生成数据,visual.py用于数据可视化,svm.py为算法核心实现。实验结果显示,训练后的分类直线与预设直线吻合,且标识出了支持向量。
摘要由CSDN通过智能技术生成

首次上传时间:2019-4-16(持续修改)
由于暂时没有深入研究,理论方面暂时不写了。具体参考大牛写的,据说修补三年成型。如果你要了解SVM,打滚推荐。
传送点:https://blog.csdn.net/v_july_v/article/details/7624837

下面的代码几乎每一行都一一和上面博客对照了,有问题欢迎讨论。

实现思路:

出于测试的目的,我将整个代码分为了三个独立运行的文件。

  • 文件data.py:这是一份数据伪造代码,我假设我们要找的线性分类器是:
    y = 2 ∗ x + 1 y=2*x+1 y=2x+1
    然后我随机在这条线的上下两侧,分别随机取10个点(点越多训练结果越准确)。直线上面10个点为正类,标记值为1。直线下面10个点为负类,标记值为-1。然后其放入一个n*3(我这里是20)的矩阵中,随机打乱其顺序,这样得到数据集。存放到了 ‘D:/pycharm/aicourse/test.txt’

  • 文件visual.py:这份代码,纯粹是参照,目的是把自己伪造的点可视化,与最终结果对比用的

  • 文件s

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值