支持向量机 (一)

发布于:2022-10-29 ⋅ 阅读:(469) ⋅ 点赞:(0)

1.1训练模型

假设给定一个特征空间上的训练数据集T={(x1,y1),(x2,y2),...,(xm,ym)},其中yi∈{+1,−1},i=1,2,...m , xi 为第 i 个特征向量, yi 为类标记,当它等于+1时为正例;为-1时为负例。再假设训练数据集是线性可分的。

我们的目标是训练出一条直线(二维空间的二分类模型),能够区分出两个不同类别。

图a直观上来看,我们可以训练出无数条模型,但显然a比b更好,这是由于当有一些临近b的点时,如图b,b将会对这些点判错,而a不会,也就是说a的容忍性更好,鲁棒性更高,泛化能力更强。 

 1.2 支持向量

在样本空间中,划分超平面可以通过如下线性方程描述: w.T⋅x+b=0 ,w={w1,w2},x={x1,x2}

那么如何得到最佳的模型呢?首先对 得到的w.T⋅x+b=0这条直线上下平移,直到触碰到数据点后停止,这是得到的空间就是该直线对样本数据的容忍的范围,分别记为w.T⋅x+b=1和w.T⋅x+b=-1

那是否有人疑惑为什么是1和-1呢?

其实这里的常数可以是任意的数,以向上平移为例,如下图所示,任意(w',b')与(w,b)都一一对应,因此就写成w.T⋅x+b=1的形式。同理w.T⋅x+b=1也如此。

由于上下边界是由w.T⋅x+b=0这条直线上下平移,直到触碰到数据点后停止得到的,则必定有较少的点停留在边界处,这些点也叫做支持向量,当确定了支持向量,那么模型也就随之确定,因为两种类型的数据距离越远越好划分,而那些支持向量也是最拖后腿的数,他们里超平面最近,只要将他们划分开,其余数据自然就划分开了。 

1.3 间隔  

超平面的线性方程描述为: w.T⋅x+b=0 ,w={w1,w2},x={x1,x2},即为 w1⋅x1+w2⋅x2+b=0

则对于样本空间上任意一点(x0,x0)到超平面的距离可以表示为

d = |w1⋅x0+w2⋅x0+b| / (w1^2+w2^2)^1/2 = |w.T⋅x+b| / ||w||

两个异类支持向量到超平面的距离之和为:r = 2 / ||w||   ,也被称为“间隔”(margin)

1.4 满足条件

如图a ,对于classA中的点满足:w.T⋅x+b>=1,and yi=1;

对于classA中的点满足:w.T⋅x+b<=-1,and yi=-1;

则所有点满足:yi*(w.T⋅x+b)>=1;

1.5  最终目标

及最终我们的目标就是找到w,b,是的d(margin)最大:

max(w,b) 2 / ||w||

s.t. yi*(w.T⋅x+b)>=1,i=1,2..m

可转化为求:

min(w,b) 1/2*||w||^2

s.t. yi*(w.T⋅x+b)>=1,i=1,2..m

因为w是带根号的式子,平方去除根号,1/2 是求导时消除2,使式子计算更简单。

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到