支持向量机原理(超详细)

支持向量机原理(超详细)支持向量机 SVM 是机器学习算法之一 是二分类算法 给定一组训练样本集 如图 样本数据集是二维的 分散在平面上 需要找到一条直线将数据集分割开 可以分开的直线有很多 我们要找到其中泛化能力最好 鲁棒性最强的直线 这是在平面上的点 如果是在三维空间中 则需要找到一个平面 如果是超过三维以上的维数 则需要找到一个超平面 超平面的表达式为 原理举例 wT 取 w1 w2 x 取 x1 x2 T 则原式得 w1x1 w2x2 b 0 与传统直线 Ax By c 0 方程式相同 由二维三维空间推到

现在假设这个超平面能够将样本正确分类,只不过这个超平面的wb值我们不知道,这正是我们要求的,但是这个平面是一定存在的,有:
在这里插入图片描述
将几何距离r式中的分子绝对值和分母拿掉以后(因为都为正)剩下的wT+b是能够判断出样本为+1还是-1类别的部分,定义函数距离(很重要)为:
在这里插入图片描述
函数距离就是样本类别乘wT+b。因为正样本类别为+1,且wT+b也为正;负样本类别为-1且wT+b为负。所以函数距离只有大小没有方向。
函数距离就相当于几何距离的分子部分,在所有样本中每一个点都有一个函数距离和一个几何距离,几何距离是可观测到的直接的距离,函数距离具有如下性质:一个点到超平面的函数距离取决于这个超平面的法向量和b值,同一个超平面可以有多组w和b值,但每组值成比例。w和b值不同,点的函数距离也不同。
三维空间举例:
现有两个平面2x+3y+4z+2=0 与 4x+6y+8z+4=0
有点:x(1,1,1)
则点到平面的函数距离分别为:11,22。 但平面实质为一个平面,只有w和b值不同,也就是说我们可以通过放缩w和b值,来控制函数距离!!!








重点:支持向量机数学模型原理,其实就是通过控制函数距离来求得最大几何距离。也就是函数距离为约束条件,几何距离为目标函数。具体往下看:
通过放缩w和b,让两类中某一类点距超平面的函数距离分别为1(离超平面的距离相等,为1方便后续计算)。
W和b值未知,但总存在一组值满足上述。如图:
在这里插入图片描述
中间最粗的平面为我们要求的超平面,两边的虚线为支撑平面,支撑平面上的点就是支持向量,通过放缩超平面的w和b值,使支持向量到超平面的函数距离为1,支持向量是距超平面最近的点,所以其他向量点到超平面的函数距离一定大于等于1。其实这时候就可以建立最初的模型了,为:
在这里插入图片描述
在这里插入图片描述
解释一下这个模型,首先先不看目标函数,先看约束条件,约束添加表达的是所有样本点到超平面的距离要大于等于1,在支撑平面上的为1,其他的大于1,根据约束条件其实可以得到无数个平面,如下面两个:
在这里插入图片描述
但是,在这些平面中我们需要的是泛华能力最好,鲁棒性最强的那一个,也就是最宽的那一个(margin最大),这时候就需要通过定义目标函数来求得,宽度最大也就是几何距离最大,几何距离的分子是函数距离,而两个支撑平面的函数距离我们定义完了是2,所以才有了上面的数学模型。








总有 在这里插入图片描述
在这里插入图片描述
前者意味着向量点根本不会在求和中出现,后者意味着向量在支撑平面上,是一个支撑向量,训练完成后大部分样本都不需要保留。也就是训练完后大部分拉格朗日乘子都为零,只有在支撑平面上的样本的拉格朗日乘子不为0。
至此,已经对支持向量机有一个基本认识,以上数学推理为支持向量机的硬间隔。记住这个模型:
在这里插入图片描述
支持向量机的软间隔、核函数方法、支持向量回归都是在这个模型的基础上的。上面讲的是样本完全线性可分,但是实际中,不可分的情况多谢,如果是线性不可分的如:
在这里插入图片描述
需要把数据映射到更高维空间,这时候用到核函数
如果数据有噪声如:
在这里插入图片描述
那么用到的是支持向量机的软间隔
如果你不是分类数据而是要有监督的预测数据,那么就是支持向量回归。
在这里插入图片描述
软间隔、核函数、支持向量回归我会以后写出来。












版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178093.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午6:02
下一篇 2026年3月26日 下午6:02


相关推荐

  • python和java哪个值得学-Python和Java学哪个好?大家是怎么选的

    python和java哪个值得学-Python和Java学哪个好?大家是怎么选的Python和Java学哪个好?很多开始学习编程的同学就很难选择,过去几年选择Java无话可说,近年来大家都开始关注人工智能这一方向,都觉得人工智能是未来的趋势,选择Java就会和人工智能失之交臂,确实,但大家要知道,想从事人工智能方面的工作,学的可不只有Python,更需要你会各种复杂的计算,数据分析,推演,超强的思维等等。Java是一门成熟发展20多年编程语言,开发使用率极高,目前java市场…

    2022年7月7日
    23
  • Mysqldump备份报错1449

    Mysqldump备份报错1449Mysqldump备份报错1449

    2022年4月24日
    87
  • 2021.12.13激活码(JetBrains全家桶)

    (2021.12.13激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~00OE5RWT28-eyJsaWNlb…

    2022年3月30日
    63
  • python tkinter窗口美化_jquery进度条插件

    python tkinter窗口美化_jquery进度条插件前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年7月29日
    9
  • 空间流介绍[通俗易懂]

    空间流介绍[通俗易懂]stream是802.11n中的空间流的意思,11n协议中最高支持4空间流。11n协议物理层最核心的技术就是MIMO技术,一般AP设备MIMO都后注1×1,2×2,2×3,3×3等,这两个数字前面一个数字式11nAP的发射天线数量,后面一个数字是11nAP的接受天线数量。11n中所谓的空间流实际就是MIMO空间复用支持的多根天线独立地并行发送由单独编码的信号组成的不同的数据流。无线复用的空间流的数量取决于发射天线的数量。你可以这样简单理解,由于11nAP有多个发射天线,形成多个发射物理信道,与以前的WLA

    2022年7月21日
    41
  • Drupal8 入门教程(一)安装部署[通俗易懂]

    Drupal8 入门教程(一)安装部署[通俗易懂]一、Drupal简介Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。连续多年荣获全球最佳CMS大奖,是基于P

    2022年7月4日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号