支持向量机


引言

 如果数据分布在直线上,我们可以找到一个点,把两类样本分开;
在这里插入图片描述
如果数据分布在一个平面上,我们可以找到一条直线,来把样本分开;
在这里插入图片描述
支持向量机就是找到这样一条直线,让直线两边的点与它的距离是最大的。

假设,在一个平面上有一个点是x(x1,x2)类别是1或者-1。超平面方程如下:
在这里插入图片描述
两点之间的距离公式如下:
在这里插入图片描述
如果分子绝对值里面是正数,说明类别等于1,如果是负数说明类别等于-1,所以可以把绝对值去掉,换成y代替,变成如下形式:
在这里插入图片描述
再次进行简化,把分子用伽马y代替,则变成如下形式:
在这里插入图片描述
如果想要找到距离所有点间隔都是最大的直线,那么首先就需要先找到间隔最小的那些点,然后让最终的直线距离它们最大就可以了。
因为函数间隔是最小的,所以其他样本只需要大于等于这个间隔即可。

  • 首先,直线和最近点的间隔就是w的范数分之一,也就是要优化的目标,且这个优化计算时只和这些最近的点相关,这些样本被称为支持向量
    在这里插入图片描述

什么是支持向量机?

 SVM将每条有标签的记录绘制为N维空间有坐标的点,它在保证所有训练数据分类正确的前提下,最大化分类超平面的最小距离,SVM的核心在于寻找最有的超平面。
SVM本质是量化两类数据差异的方法。
在这里插入图片描述
 在上图,把梨和分类,有许多条线,但是哪一条线最好,样本点与线的距离也有意义,代表着分类的可信程度。
 支持向量积就是找到这样一条最优直线,让直线两边的点与它的距离是最大的。

关键术语

  • 超平面:区分不同标签的决策边界(适用于更高维度)
  • 分类间隔:找到线附近的样本,它们与线的距离越远越好,这个距离就叫分类间隔
    在这里插入图片描述
    间隔的距离体现出两类数据差异的大小。
  • 样本点:数据点
  • 边界:样本点和超平面之间的最小距离。
  • 支持向量:在边界上的样本点就是支持向量,下图中指的是那一个蓝点和两个红点。SVM只需要通过这些支持向量 决策,剩余的样本点则不参与,所以说支持向量只只用于小样本训练。
    在这里插入图片描述

线性模型

在这里插入图片描述
蓝色圆圈:class1
橘色圆圈:class2
用一条直线把两类圆圈分开,就叫做线性模型。
凡是可以画一条直线可以把橘色和蓝色分开的这个训练样本集,可以把它叫为线性可分训练样本集。

在线性可分训练样本集上画一条直线

 在上图中,如果说存在一条直线可以分开蓝色与橘色,那么在空间中一定存在着无数条直线可以分开蓝色和橘色,那么哪一条直线是最好的呢?选的那条线如何画出来的呢?
每一条线都有一个性能指标,那么怎样定义这个性能指标,如下:
在这里插入图片描述
首先,把这条直线平行的向一侧运动,直到它插到其中的某一个或者某几个圆圈为止,如下图
在这里插入图片描述
接着,往另一侧运动,如下图
在这里插入图片描述
这三条都是平行的线,做了一个性能指标d,是这两条虚线之间的距离,d越大,性能越优。
d被叫做间隔
要想使中间的这一条线唯一,还需要让这条线的范围是最中间的,才可以让这条线唯一。

定义

  • 训练集数据及标签: (x1.y1),(x2,y2),(x3,y3)…
    x是向量,y是标签只能为1或-1,也可以说为0或1,标签是可以随便取的,但是向量机为了方便取1或-1
  • 线性模型:就是找一条直线。二维是直线,三维是一个平面,四维及以上就是一个超平面。要找到一个超平面,就要找到参数w和b,公式如下
    在这里插入图片描述

通过训练数据,求得w和b。
第一步,先限定一个模型,用一个方程或者复杂的函数来限定模型,在这里就是用上面的公式限定了这个模型是超平面模型。
第二步,就是在这个模型里留出一些待定的参数,w和b就是参数。
第三步,用训练样本和算法去确定这个w和b的取值

优化问题(凸优化问题,二次优化问题)

最小化:在这里插入图片描述
限制条件:在这里插入图片描述
在这里插入图片描述
由定义可知,只有线性可分才可以满足w和b且y只可以取正负1,线性不可分则无法满足w和b。
二次规划:

  • 目标函数是二次项
  • 限制条件是一次项
    举个例子:
    在这里插入图片描述
    以上函数是一个凸优化问题,要找到唯一的极值。用一个基本的思想(试探思想):比如随便放一个点在此函数上的任意位置,然后在此周围进行搜索,如果发现有下降的趋势,则继续往下取点,以此类推,直到到达唯一点,没有再小的点,停止,跳出来,即找到了唯一极值点。
    无论这个任意点取哪里,最后都会到达唯一极值点

非线性模型

在这里插入图片描述

如上图,不管怎样都没有办法画一条直线把圆圈和叉分开,这叫做非线性可分或者线性不可分。

SVM处理非线性问题

最小化:在这里插入图片描述

  • c:是一个设定的参数,这个参数需要根据具体的任务不断地尝试优化。
  • 正则项:在这里插入图片描述

限制条件:在这里插入图片描述
非线性可分的问题本身是无解的,但是可以加入一个正则项,同时改变一些限制条件,让svm对于线性可分的问题也能够产生解。

低维到高维映射

在这里插入图片描述
上图就是把低维的矢量映射到高维上面去,再在高维里面找直线把它分开。

低维空间里面的线性不可分的一些数据到高维空间里面将会以更大的概率被线性分开。

正超平面与负超平面

在这里插入图片描述
红色代表赴超平面,绿色代表正超平面

最大化分类超平面的最小距离

最小距离margin就是最近的样本点到超平面的距离,最近的两个样本点距离超平面越远,说明边界越清晰,分类结果越可信。
所以,目标就是寻找使最小距离最大的超平面。
最小距离使用一个参数1/||w||来表示,所以最大化的最小距离就是最小化w/

软间隔支持向量

有一定的容错率。
在这里插入图片描述
在这里插入图片描述
图a的超平面可以实现完全的准确分类,但是距离绿色样本群很近,分类效果不理想。
图b的超平面把一个蓝色点判断成绿色点,但是分类效果更好,两边距离相差不多,允许一定程度的错误,就是软间隔支持向量。

惩罚函数C

 惩罚函数C越大表示越不能容忍错误,减少过拟合力度越大,越接近硬间隔支持向量,越小表示越能容忍错误,越接近软间隔支持向量,可以通过调节惩罚函数来提高模型精度。

核函数

概念:将线性不可分的样本投影到高维空间,使得变成线性可分
在这里插入图片描述

 决策边界可以是不同形状的,核函数就是对于形状的刻画。常见的核函数有linear(线性)/RBF(正态)/ploy(多项式)/sigmoid(S形)
在这里插入图片描述
这样一条线,无法分类两个样本,一维空间已经不能满足需求,这时需要引入核函数进行升维,如下图:
在这里插入图片描述
举个例子1:
在这里插入图片描述
无论我们使用什么办法,都无法把蓝色与橘色完全分开。为此,我们可以将数据增加一个维度,使用x1的平方来构建第二个维度,又可以把数据分开了,如下:
在这里插入图片描述
举个例子2:
如果分类的点类似椭圆分布的,如下:
在这里插入图片描述
我们可以使用x1的平方和x2的平方为轴,把所有的数据点重新映射到平面上,又可以转换成线性可分的问题了。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值