机器学习之SVM支持向量机
SVM支持向量机是由模式识别中广义肖像算法发展而来的分类器。
支持向量的概念在二十世纪六十年代就已经出现,但支持向量机在1995年才正式发表,并由于在文本分类任务中性能卓越,随后就开始大火大火啦——直到2012年深度学习神经网络的发展才将这团火给慢慢扑灭,当然目前应用它的地方还是挺多的。所有呢,支持向量机是机器学习中比较重要的算法,也是面试中会常被问到的问题。
支持向量机包括:
线性可分支持向量机:当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器
线性支持向量机:当训练数据集近似线性可分时,通过软间隔最大化,学习一个线性分类器,又称为软间隔支持向量机
非线性支持向量机:当线性数据不可分时,通过使用核技巧以及软间隔最大化,学习非线性支持向量机
文章目录
1、线性可分支持向量机
1.1线性可分支持向量机概念
给定训练样本集D={(x1,y1),(x2,y2),(x3,y3),…(xm,ym)},yi∈{-1,+1}
这时候就会得到很多个分类超平面将他们分开

这些超平面可以表示为线性方程:wTx+b=0,其中w=(w1,w2,w3……Wd)为法向量,决定了超平面的方向。我们的目的就是找到最优超平面,也就要找到最优的w和b
这里先插入一段高中学过的知识,有一个线性方程X1-X2-2=0,这里y用X2表示
将A点(-1,1)带入X1-X2-2=-4
将b点(2,-3)带入X1-X2-2=3
一般而言在超平面w⋅x+b=0确定的情况下,|w⋅x+b|可以相对地表示点x距离超平面的远近。对于二分类问题,如果w⋅x+b>0,则x的类别被判定为1;否则判定为-1,那么上面图中A点就属于-1,B点就属于+1。
1.2函数间隔和几何间隔
理解了上面公式我们就要来理解一下什么是函数间隔,什么是几何间隔。
对于一个训练样本(x(i),y(i))我们定义它到超平面(w,b)的函数间隔为:
那么如果用以上公式求间隔,我们来考虑一下问题,假如把w和b同时放大两倍,比如变成
2X1-2X2-4=0 ,那么此时A点的距离就为2X1-2X2-4=-8,B点为2X1-2X2-4=6,可是2X1-2X2-4=0 和X1-X2-2=0表示同一个方程,但是A,B点到他们之间的距离却变了。
所以为了防止以上改变,才有了几何间隔。
几何间隔:
几何间隔就是点到超平面的距离,这里还是要回顾一个高中的知识,就是点到直线的距离。
点(x1,y1)ax+by+c=0的距离公式为:
那么等同于
1.3 间隔最大化:
知道了函数间隔和几何间隔之后,我们来看看支持向量机。对于二分类问题,如果w⋅x+b>0,则x的类别被判定为1;否则判定为-1。有如下公式和图
这里为什么必须大于等于1或者小于等于1呢,为什么不是0.5或者0.1。
原因很简单,就是我们上面也举例啦,这里的w和b是可以缩放的,总存在合适的w和b满足以上公式。
那么可以得到几何间隔公式:
我们的目标函数可以变为:
上面也说过总可以等比例缩放w的办法,使得两类点的函数值都

本文详细介绍了SVM支持向量机,从线性可分支持向量机的概念、间隔最大化、学习的对偶算法,到线性支持向量机的处理方式和非线性支持向量机与核函数的应用,深入浅出地解析了这一重要的机器学习算法。


被折叠的 条评论
为什么被折叠?



