1. 概述
支持向量机(supportvector machine,svm)是一种被认为是效果最好的现成可用的分类算法之一。这个“现成”很重要,因为他在学术界和工业界都混得很好(而不同于有些算法,在抽象出来的模型里面很完美,但是在实际问题效果很差。)
2. 间隔(几何间隔)
对于上面第一个图,它们已经分的足够开,因此可以很容易在图中画出一条直线将2组数据分开,这组数据被称为线性可分数据。在2维空间,这个将数据集分开的是直线;在3维空间,将数据分开的是平面;在高维空间,将数据分开的是超平面,也就是分类决策面。
上面提供了3条直线,这3条直线都可以将数据分开。但是哪条直线更好呢?我们希望能用这种方式来构建分类器,即如果数据点离决策边界越远,那么其最后的预测结果越可信。这里定义点到分割面的距离为间隔。我们希望间隔尽可能的大,因为如果训练样本局部“扰动”或者在有限数据上训练分类器的话,我们希望分类器尽可能健壮,即超平面所受影响最小。换言之,这个划分的超平面所产生的分类结果是最鲁棒性的,对未见的例子泛化能力很强。我们怎么做呢?希望找到离分割超平面最近的点(这就是支持向量,support vector),确保它们离分割超平面尽可能的远。
3. what? -->构建目标函数,找到分割平面,即确定w和b
首先论述线性可分支持向量机
1).最大化几何间隔
先从最简单的点到直线的距离开始
输入数据会给分类器一个类别标签,使用类似海维赛得阶跃函数(即单位阶跃函数)对分割超平面作用f(wTx+b),当wTx+b<0输出的值是-1,反之则输出+1,但是海维赛得阶跃函数跳变太陡,所以采用sigmoid函数的方式,它连续、比较平滑,是个良好的阈值函数,如下图。
但是类标签为什么使用-1,+1,而不使用0,1呢?主要是由于-1,+1只差一个符号,只是方便数学上的处理。