持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情
支撑向量机(SVM)算法在分类问题中有着重要地位,其主要思想是最大化两类之间的间隔。按照数据集的特点:
1. 线性可分问题,如之前的感知机算法处理的问题
2. 线性可分,只有一点点错误点,如感知机算法发展出来的 Pocket 算法处理的问题
3. 非线性问题,完全不可分,如在感知机问题发展出来的多层感知机和深度学习
作者:tsyw的个人空间_哔哩哔哩_bilibili
链接:支撑向量机 · 语雀 (yuque.com)
![![[附件/Pasted image 20221001105442.png|400]]](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f68832417c0544ca8555e756808a3b50~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp)
假如数据是完全的线性可分的,那么学习到的模型可以称为硬间隔支持向量机。换个说法,硬间隔指的就是完全分类准确,不能存在分类错误的情况。软间隔,就是允许一定量的样本分类错误。
作者:燕双嘤
链接:机器学习:支持向量机(SVM)燕双嘤的博客-CSDN博客 支持向量机
这三种情况对于 SVM 分别有下面三种处理手段:
1. hard-margin SVM
2. soft-margin SVM
3. kernel Method
作者:tsyw的个人空间_哔哩哔哩_bilibili
链接:支撑向量机 · 语雀 (yuque.com)
这里我们先谈硬间隔。在感知机算法中,如果两类线性可分,一般情况下,会存在无穷多条线。在SVM中,一个超平面,不仅能将数据正确分类,而且这个超平面到不同类之间距离最大
数据集为
{(xi,yi)}i=0N,xi∈Rp,yi∈{−1,1}
该超平面可以被写作
ωTx+b=0
正确分类数据可表示为
yi(ωTxi+b)>0,i=1,2,⋯,N
因此,最大化数据到超平面的间隔就可以被表达为
⎩⎨⎧maxmargin(ω,b)s.t.yi(ωTxi+b)>0.i=1,2,⋯,Nmargin(ω,b)=ω,bxi,i=1,2,⋯,Nmin distance(ω,b,xi)=ω,bxi,i=1,2,⋯,Nmin ∣∣ω∣∣1(ωTxi+b)
这里的margin是指数据集中离超平面最近的点到超平面的距离,因此,上式等价于
⎩⎨⎧ω,bmax xi=1,2,⋯,Nmin ∣∣ω∣∣1yi(ωTxi+b)=ω,bmax ∣∣ω∣∣1xi=1,2,⋯,Nmin yi(ωTxi+b)s.t.yi(ωTxi+b)>0,i=1,2,⋯,N
这里我们研究xi=1,2,⋯,Nmin yi(ωT+b)。
由于ωTx+b=0和aωTx+ab=0,a∈R,a=0这两个超平面表示的是同一个超平面,因此我们假设
xi=1,2,⋯,Nmin yi(ωTxi+b)=a,a∈R
令ωT=aω^T,b=ab^,因此有
xi=1,2,⋯,Nmin yi(ω^Txi+b^)=1
因此我们就可以在数据集线性可分的任何情况下,令xi=1,2,⋯,Nmin yi(ω^Txi+b^)=1,因此最大化数据到超平面的间隔就可以被表达为
⇒⎩⎨⎧ω,bmax ∣∣ω∣∣1s.t.minyi(ωTxi+b)=1,i=1,2,⋯,Ns.t.yi(ωTxi+b)>0,i=1,2,⋯,N⎩⎨⎧ω,bmin 21ωTωs.t.yi(ωTxi+b)≥1,N个约束i=1,2,⋯,N