SVM中的软间隔最大化与硬间隔最大化
参考文献:https://blog.csdn.net/Dominic_S/article/details/83002153
1.硬间隔最大化
对于以上的KKT条件可以看出,对于任意的训练样本总有ai=0或者yif(xi) - 1=0即yif(xi) = 1
1)当ai=0时,代入最终的模型可得:f(x)=b,样本对模型没有贡献
2)当ai>0时,则必有yif(xi) = 1,注意这个表达式,代表的是所对应的样本刚好位于最大间隔边界上,是一个支持向量,这就引出一个SVM的重要性质:训练完成后,大部分的训练样本都不需要保留,最终的模型仅与支持向量有关。
2.软间隔最大化
如果数据加入了少数噪声点,而模型为了迁就这几个噪声点改变决策平面,即使让数据仍然线性可分,但是边际会大大缩小,这样模型的准确率虽然提高了,但是泛化误差却升高了,这也是得不偿失的。
或者有一些数据,线性不可分,或者说线性可分状况下训练准确率不能达到100%,即无法让训练误差为0。
此时此刻,我们需要让决策边界能够忍受一小部分训练误差,而不能单纯地寻求最大边际了。因为边际越大被分错的样本也就会越多,因此我们需要找出一个”最大边际“与”被分错的样本数量“之间的平衡,引入一个松弛系数ζ。
在硬间隔中:决策平面是绿色实线,约束条件是要保证两类样本点分别位于两条绿色虚线的两侧,所有样本点都被正确分类。
在软间隔中:决策平面是绿色实线,约束条件变为蓝色虚线,且红色样本点在红色箭头一侧即可,紫色样本点在紫色箭头一侧即可。
由于ζ是松弛量,即偏离绿色虚线的函数距离(绿色虚线到决策平面的距离为1),松弛量越大,表示样本点离绿色虚线越远,如果松弛量大于1,那么表示样本越过决策平面,即允许该样本点被分错。模型允许分类错误的样本数越多,模型精确性越低。因此需要对所有样本的松弛量之和进行控制,因此将所有样本量之和加入目标函数。
C表示的是在目标函数中松弛量的权重,C越大表示最小化时更多的考虑最小化ζ,即允许模型错分的样本越少,C值的给定需要调参。
同硬间隔最大化SVM,构造软间隔最大化的约束问题对应的Lagrange函数如下:
优化目标函数为:
对偶问题为:
带入对偶函数得:
再对上式求α的极大值,即得对偶问题:
此处的约束条件由上面求导的2、3式可得。
软间隔SVM的KKT条件:
根据KKT条件中的对偶互补条件 αi(yi(wTxi+b)-1+ξi)=0 可知αi>0(即ai≠0)的样本为支持向量,在间隔边界上、间隔边界(yi(w*xi+b)=1)与决策超平面之间、或者在超平面误分一侧的向量都有可能是支持向量,因为软间隔模型中每个样本的αi、ξi不同,而αi、ξi不同的取值,样本就有可能落在不同的区域:
(1)αi<C,则μi>0,ξi=0,支持向量xi恰好落在间隔边界上;
(2)αi=C,则μi=0,则ζ≠0
0<ξi<1,则分类正确,xi在间隔边界与决策超平面之间;
ξi=1,则xi在决策超平面上;
ξi>1,则xi位于决策超平面误分一侧。
求得的每个样本点的α和ζ都不同,因此那条有松弛量的蓝色虚线超平面只是一个抽象概念,是不存在的,因为各个样本的松弛量都不同,C只是对总体样本的松弛量(即误差进行控制)。
支持向量是满足yi(w*xi+b)=1-ζi这个式子的样本,因为每个样本的ζi不同因此支持向量构不成线。间隔边界yi(w*xi+b)=1还在原来的地方。
图中箭头所指的样本点都可以是支持向量。
如果给定的惩罚项系数C越小,在模型构建的时候就允许存在越多分类错误的样本,也就是表示此时模型的准确率比较低;如果给定的C越大,表示在模型构建的时候,允许分类错误的样本越少,也就表示此时模型的准确率比较高。
SVM中的软间隔最大化与硬间隔最大化的更多相关文章
- SVM中的间隔最大化
参考链接: 1.https://blog.csdn.net/TaiJi1985/article/details/75087742 2.李航<统计学习方法>7.1节 线性可分支持向量机与硬间 ...
- <老古董>线性支持向量机中的硬间隔(hard margin)和软间隔(soft margin)是什么
_________________________________________________________________________________________________ Th ...
- SVM中为何间隔边界的值为正负1
在WB二面中,问到让讲一下SVM算法. 我回答的时候,直接答道线性分隔面将样本分为正负两类,取平行于线性切割面的两个面作为间隔边界,分别为:wx+b=1和wx+ b = -1. 面试官就问,为什么是正 ...
- linux中的软、硬链接
linux中的软.硬链接 硬链接 硬链接(hard link),如果文件B是文件A的硬链接,则A的inode节点号与B的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同 ...
- svm中的数学和算法
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出很多特有的优势,并可以推广应用到函数拟合等其它 ...
- 《机器学习_07_01_svm_硬间隔支持向量机与SMO》
一.简介 支持向量机(svm)的想法与前面介绍的感知机模型类似,找一个超平面将正负样本分开,但svm的想法要更深入了一步,它要求正负样本中离超平面最近的点的距离要尽可能的大,所以svm模型建模可以分为 ...
- SVM中的线性分类器
线性分类器: 首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将下图中黑色的点和白色的点分开,很显然,图上的这条直线就是我们要求的直线之一(可以有无数条这样的直线) 假如说, ...
- 机器学习实战:基于Scikit-Learn和TensorFlow 第5章 支持向量机 学习笔记(硬间隔)
数据挖掘作业,需要实现支持向量机进行分类,记录学习记录 环境:win10,Python 3.7.0 SVM的基本思想:在类别之间拟合可能的最宽的间距,也叫作最大间隔分类 书上提供的源代码绘制了两个图, ...
- word文档巧替换(空行替换、空格替换、软回车替换成硬回车)
一.空行替换 在日常工作中,我们经常从网上下载一些文字材料,往往因空行多使得页数居高不下.一般方法是:在“编辑”菜单中打开“查找和替换”对话框(或按ctrl+H),在“查找内容”中输入“^p^p”“替 ...
随机推荐
- centos 添加sudo 权限
https://apple.stackexchange.com/a/82527 visudo user1 ALL=(user2) NOPASSWD: /bin/bash amy ALL=(AL ...
- 【JAVA】笔记(6)--- toString方法;equals方法;finalize方法;package与import;内部类;
toString: 1.每创建一个类时,都要重写 toString 方法,这是敲代码的基本素养: 2.重写规则:简单明了: 3.String 类中也有toString方法(SUN公司写的): equa ...
- [hdu6580]Milk
考虑定义以下dp数组:1.g1[i][j]表示第i行从中间出发向左取j瓶牛奶最少要多久2.g2[i][j]表示第i行从中间出发向右取j瓶牛奶最少要多久3.g3[i][j]表示在g1[i][j]的基础上 ...
- [noi34]palindrome
分割实际上就是不断地从两端取出一样的一段,并对剩下的串进行分割.下面我们来证明一下每一次贪心取出最短一段的正确性: 考虑两种分割方式,分别表示成S=A+B+A和S=C+D+C,其中A就是最短的一段,那 ...
- SSM整合小项目
1.文件目录结构 2.MyBatis配置 创建数据库环境 CREATE DATABASE `ssmbuild`; USE `ssmbuild`; DROP TABLE IF EXISTS `books ...
- 7.5 实现基于探针对pod中的访问的健康状态检查
1.pod的声明周期 取值 描述 Pending Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行.此阶段包括等待 Pod 被调度的时间和通过网络下载镜像的时间, R ...
- c# Quartzs定时器的简单使用
使用背景: 首先想到倒计时,定时任务.大家想到的肯定就是定时器.那么定时器在web和winfrom程序中有着很大的作用.那在服务器端有没有像定时器一样的存在呢. 有了这些需求,我找到了第三方的组件 Q ...
- [CF707 Div2, A ~ D]
(相信进这个博客的人,都已经看过题目了,不再赘述) 这把打小号打到了\(484\),\(rating + 636\) \(A\) 考虑进行模拟就行了,说白了这是一个英语阅读题 // code by D ...
- Codeforces 1404D - Game of Pairs(构造)
Codeforces 题面传送门 & 洛谷题面传送门 首先注意到 \(\sum\limits_{i=1}^{2n}i=\dfrac{2n(2n+1)}{2}=n(2n+1)\equiv n\p ...
- Codeforces 516D - Drazil and Morning Exercise(树的直径+并查集)
Codeforces 题目传送门 & 洛谷题目传送门 这是一道 jxd 的作业题,感觉难度不是特别大(虽然我并没有自己独立 AC,不过也可能是省选结束了我的脑子也没了罢(((,就随便写写罢 u ...