【机器学习】SVM中对函数间隔和几何间隔的理解
超平面表达式:
函数间隔 : 对于在超平面上的点, 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中对函数间隔和几何间隔的理解相关推荐
- SVM函数间隔和几何间隔
刚开始接触SVM,遇到函数间隔和几何间隔,对这2个概念有点混肴,查阅一些资料后有点明白了. 函数间隔: 并不是实际意义上的点到超平面的距离,只是表示点到超平面的远近. 比如平面方程1:3x1 + 6x ...
- 1.2 函数间隔和几何间隔理解2
转载地址: https://www.zhihu.com/question/20466147 SVM是通过超平面将样本分为两类. 在超平面 w*x + b = 0 确定的情况下,| w*x + b ...
- 支持向量机(一)——深入理解函数间隔与几何间隔
1.支持向量机和logistic函数的有什么区别 实践发现,在所给的例子中,两种方法线性划分两类事物时得到的线性分类器的效果差不多.那具体的差别在哪呢? SVM更关心的是靠近中间分割线的点,让他们尽可 ...
- 机器学习实战中的函数学习记录
title: 机器学习实战中的函数学习记录 date: 2020-05-01 09:20:50 tags: [python函数] categories: 机器学习实战 更多内容请关注我的博客 记录机器 ...
- python中size的用法.dim_对于numpy中的函数的参数dim的一点理解
对于numpy中的函数的参数dim的一点理解 经常被dim参数搞混.试着总结了一下.记忆瞬间清晰了 以.max(dim)方法为例: >>> import numpy as np &g ...
- SVM中函数间隔和几何间隔的区别
1.用|w∗x+b|表示点x到超平面0的距离远近,(w∗x+b)∗y表示分类的正确性以及确信度. 2.在二分类问题里,如果(w∗x+b)>0,则x的类别被判定为1:如果(w∗x+b)<0, ...
- 1.1 函数间隔和几何间隔理解1
转载地址: https://www.jianshu.com/p/2e3c0c583e85 1.函数间隔 我们的函数间隔定义为: 可以看到,函数间隔其实就是类别标签乘上了f(x)的值,可以看到,该值永远 ...
- 机器学习python中train_test_split()函数进行数据集分割
函数名:train_test_split 所在包:sklearn.model_selection 功能:划分数据的训练集与测试集 参数解读:train_test_split (*arrays,test ...
- python的sklearn机器学习SVM中的NuSVC运行报错:ValueError: b'specified nu is infeasible'
早上在使用NuSVC进行模型训练的时候,报错如下 Reloaded modules: __mp_main__ Traceback (most recent call last):File " ...
最新文章
- 关于java继承中父类方法可见性探讨
- linunx获取命令帮助
- 成都python培训比较好的机构-成都Python培训班哪个好,怎样才能不走弯路学习
- CTFshow php特性 web147
- 科大星云诗社动态20210524
- Docker 部署ELK 日志分析
- C++ multimap查找某一个键的所有键值对
- scripts文件夹_常用Scripts整理
- java类中声明log对象_用于Android环境,java环境的log打印,可打印任何类型数据
- HDU2159 研发费用背包
- 用python进行股票数据分析_利用python进行股票数据分析
- 试题17 方程的解(枚举法)
- MATLAB的非线性变换
- name域名转出的步骤流程有哪些?
- linux木马查杀工具,【Kali】linux木马查杀
- 转:管理者必备技能之全局观:找出复杂环境中的秩序
- 当前应用拦截NFC响应,不弹出选择框教程
- 【莫安迪原创摄影作品】深圳最美夕阳-烟云成画
- AngularJS动态加载Controller
- 解决浏览器被毒霸篡改问题
热门文章
- 论WEB2.0网站建设与核心价值解析
- axure 8 表格合并_如何在亚马逊创建变体案例 灵活运用拆分/合并变体及基础问题...
- 一文搞懂SQL中的各种联结——内联结、自然联结、自联结、交叉联结
- iOS 使用Moya网络请求
- 周立功先生给学子的话
- 单键模式_购买单键或更换整个键盘是否更好?
- Linux中查看用户密码(加密方式)
- 【笔记】Java - mapstruct 转换VO、DTO、PO
- Hdu 2430 Beans (数据结构_单调队列)
- goahead(嵌入式) webservice (3.3.0)运行jst、asp页面