超平面表达式:

函数间隔 : 对于在超平面上的点, w x + b = 0 wx+b=0 wx+b=0 恒成立。而超平面之外的点,可以认为距离越远, w x + b wx+b wx+b 的绝对值越大,同时分类成功的概率也越高,表达式为:

几何间隔 : 顾名思义,几何间隔就是两条平行线之间的距离,表达式为:

考虑SVM的目标,是要使所有样本点中几何间隔的最小值尽可能大

即最优化问题为:

将约束条件的左右两边同时乘以 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣,可以得到表达式: y i ( w ⋅ x i + b ) ≥ γ ⋅ ∣ ∣ w ∣ ∣ y_i(w·x_i+b)≥γ·||w|| yi​(w⋅xi​+b)≥γ⋅∣∣w∣∣

可以发现此时左边是函数间隔的表达式,回到函数间隔的本身意义,它表示空间中任一点到分类超平面 w ⋅ x i + b = 0 w·x_i+b=0 w⋅xi​+b=0 的相对距离,如果对超平面表达式两边乘以一个系数,相当于对该平面作一个线性空间的映射,例如将 2 x + 2 = 0 2x+2=0 2x+2=0 的两端同时乘以 0.5 0.5 0.5,得到 x + 1 = 0 x+1=0 x+1=0,表示新的基底向量下的平面空间。

相应的,空间中任一点到该平面的相对距离也会成比例增加或者减小。因此,对于 y i ( w ⋅ x i + b ) ≥ γ ⋅ ∣ ∣ w ∣ ∣ y_i(w·x_i+b)≥γ·||w|| yi​(w⋅xi​+b)≥γ⋅∣∣w∣∣,相当于对于此超平面,空间中任一点到它的相对距离是 γ ⋅ ∣ ∣ w ∣ ∣ γ·||w|| γ⋅∣∣w∣∣。 假设我们站在上帝视角已经得到了一个超平面 w ⋅ x i + b = 0 w·x_i+b=0 w⋅xi​+b=0,不妨对此超平面做一个映射,也就是令两端同时除以系数 γ ⋅ ∣ ∣ w ∣ ∣ γ·||w|| γ⋅∣∣w∣∣,映射到新的线性空间,那么点与平面的相对距离也是同时映射过去的,换句话说,映射操作不对点到平面的相对距离发生变化,因此可以在一开始就令 γ ⋅ ∣ ∣ w ∣ ∣ = 1 γ·||w||=1 γ⋅∣∣w∣∣=1

又由于最大化 γ γ γ 等价于最大化 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} ∣∣w∣∣1​,等价于最小化 1 2 ∣ ∣ x ∣ ∣ 2 \frac{1}{2}||x||^2 21​∣∣x∣∣2, 1 2 \frac{1}{2} 21​是为了方便后面求导

这时,SVM模型求约束下的最大分割超平面又可以表示成:

(根据以上的推导,这是映射到新线性空间后的表达式)

此时,经过我们一系列映射、转换的方式,原问题变成了含有不等式约束的凸二次规划问题。

可视化验证:
以下是某个模型对于两个测试集的svm分类结果,精度分别为1和0.9980:

当讲常数1改为100后,得到的分类结果如下:

精度分别为1和0.9980,与常数为100时一致,但是空间被拉伸,两条虚线之间的相对距离很大

当讲常数1改为0.01后,得到的分类结果如下

同时精度仍然为1和0.9980,常数为1时保持不变,但可以发现空间被压缩,两条虚线之间的距离非常小以至于看不见

【机器学习】SVM中对函数间隔和几何间隔的理解相关推荐

  1. SVM函数间隔和几何间隔

    刚开始接触SVM,遇到函数间隔和几何间隔,对这2个概念有点混肴,查阅一些资料后有点明白了. 函数间隔: 并不是实际意义上的点到超平面的距离,只是表示点到超平面的远近. 比如平面方程1:3x1 + 6x ...

  2. 1.2 函数间隔和几何间隔理解2

    转载地址: https://www.zhihu.com/question/20466147 SVM是通过超平面将样本分为两类. 在超平面  w*x + b = 0  确定的情况下,| w*x + b ...

  3. 支持向量机(一)——深入理解函数间隔与几何间隔

    1.支持向量机和logistic函数的有什么区别 实践发现,在所给的例子中,两种方法线性划分两类事物时得到的线性分类器的效果差不多.那具体的差别在哪呢? SVM更关心的是靠近中间分割线的点,让他们尽可 ...

  4. 机器学习实战中的函数学习记录

    title: 机器学习实战中的函数学习记录 date: 2020-05-01 09:20:50 tags: [python函数] categories: 机器学习实战 更多内容请关注我的博客 记录机器 ...

  5. python中size的用法.dim_对于numpy中的函数的参数dim的一点理解

    对于numpy中的函数的参数dim的一点理解 经常被dim参数搞混.试着总结了一下.记忆瞬间清晰了 以.max(dim)方法为例: >>> import numpy as np &g ...

  6. SVM中函数间隔和几何间隔的区别

    1.用|w∗x+b|表示点x到超平面0的距离远近,(w∗x+b)∗y表示分类的正确性以及确信度. 2.在二分类问题里,如果(w∗x+b)>0,则x的类别被判定为1:如果(w∗x+b)<0, ...

  7. 1.1 函数间隔和几何间隔理解1

    转载地址: https://www.jianshu.com/p/2e3c0c583e85 1.函数间隔 我们的函数间隔定义为: 可以看到,函数间隔其实就是类别标签乘上了f(x)的值,可以看到,该值永远 ...

  8. 机器学习python中train_test_split()函数进行数据集分割

    函数名:train_test_split 所在包:sklearn.model_selection 功能:划分数据的训练集与测试集 参数解读:train_test_split (*arrays,test ...

  9. python的sklearn机器学习SVM中的NuSVC运行报错:ValueError: b'specified nu is infeasible'

    早上在使用NuSVC进行模型训练的时候,报错如下 Reloaded modules: __mp_main__ Traceback (most recent call last):File " ...

最新文章

  1. 关于java继承中父类方法可见性探讨
  2. linunx获取命令帮助
  3. 成都python培训比较好的机构-成都Python培训班哪个好,怎样才能不走弯路学习
  4. CTFshow php特性 web147
  5. 科大星云诗社动态20210524
  6. Docker 部署ELK 日志分析
  7. C++ multimap查找某一个键的所有键值对
  8. scripts文件夹_常用Scripts整理
  9. java类中声明log对象_用于Android环境,java环境的log打印,可打印任何类型数据
  10. HDU2159 研发费用背包
  11. 用python进行股票数据分析_利用python进行股票数据分析
  12. 试题17 方程的解(枚举法)
  13. MATLAB的非线性变换
  14. name域名转出的步骤流程有哪些?
  15. linux木马查杀工具,【Kali】linux木马查杀
  16. 转:管理者必备技能之全局观:找出复杂环境中的秩序
  17. 当前应用拦截NFC响应,不弹出选择框教程
  18. 【莫安迪原创摄影作品】深圳最美夕阳-烟云成画
  19. AngularJS动态加载Controller
  20. 解决浏览器被毒霸篡改问题

热门文章

  1. 论WEB2.0网站建设与核心价值解析
  2. axure 8 表格合并_如何在亚马逊创建变体案例 灵活运用拆分/合并变体及基础问题...
  3. 一文搞懂SQL中的各种联结——内联结、自然联结、自联结、交叉联结
  4. iOS 使用Moya网络请求
  5. 周立功先生给学子的话
  6. 单键模式_购买单键或更换整个键盘是否更好?
  7. Linux中查看用户密码(加密方式)
  8. 【笔记】Java - mapstruct 转换VO、DTO、PO
  9. Hdu 2430 Beans (数据结构_单调队列)
  10. goahead(嵌入式) webservice (3.3.0)运行jst、asp页面