机器学习笔记——支持向量机 SVM

如有错误欢迎评论区指出谢谢

什么是支持向量机

支持向量机(support vector machine)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。但有好些情况数据是线性不可分的,就比如在下面的这种情况

 在这种情况下我们就会对数据进行升维或者说映射到高维空间,来使得有超平面可以能将两种颜色的点分开,这里我们使用的是核函数(kernel)。如果更加具象化一点可以说是在数轴上1到-1之间是红点,其他地方是黑点,这时候我们无法以一个点为界划分两种不同颜色的点,所以我们会将其映射到二维空间内,如图

 

这时我们就以 来将数轴上的点投影到二维空间里,而对于y>0的点就是红点,而y<0的点则是黑点,我们就可以将 y =0 作为我们的分离超平面或说分类器

支持向量机原理

  空间上的每个点我们都以向量x的形式表达 x =  其中 x1 是横轴, x2 是纵轴也就是 y ,这会方便我们在更高维度的空间里表示出每个点通过向量 x =  而原本表示一条直线我们会用 y = mx + c ,现在我们会使用向量的方式来表示直线也就是 wx + b = 0,其中w是这条直线的法向量,它与x的点积实际上就是 x 在 w 方向上的投影除以 |w| ,而截距 b 就可以确定直线的具体位置,这条直线就会是所有向量 x 在 w 上的投影除以 |w| 为 -b 的集合。

 如果我们将 w 写为 [w1 , w2] ,那现在公式就变为。然而对于一组线性可分的数据集来说分离超平面并不是唯一的,SVM求解的超平面是间隔最大的分离超平面。所有直线之上的点都满足在直线之下的点满足换而言之也就是 wx+b>0 和 wx+b<0,每一个样本都包含x和y,x我们已经解释过了而对于表示两种不同的点。

 

 

 间隔计算

在上图中,在两侧的红点我们称为支持向量,实心的红点与空心的红点分别表示了黑球与白球的支持向量。而支持向量与分离超平面的距离就为 d,而间隔就是 2d 因为分离超平面是在正中央。计算间隔无非是点到直线的距离计算  ,其中 ||w|| 是范数,可以直接理解为 w 的长度,我们要寻找的是几何间隔最大的分离超平面,也就是 d 的最大化问题。

小结

 这时候来总结一下我们面对的问题,首先在一个空间里能将不同样本二分的超平面可能不止一个,仅仅找到超平面是不够的,SVM 需要的是利用这些超平面,找到这两类点之间的“最大间隔”。其次是每个超平面所对应的支持向量都不同,我们应该怎么找到该超平面所对应的支持向量?

首先我们知道 而又因为支持向量到决策面的距离是 d 所以就有  这实质上就只是将公式除了一个||w||,所以我们可以将​​​​​​​ 那么现在就有   最后由于我们将标签y定义为1和-1我们可以将公式整合为。 

我们的目标是找出最大的d,其实这也就等价于最大化\frac{1}{||w||},而为了方便计算我们会去最大化,这也是等价的。

现在问题就变成了

min \frac{1}{2}||w||^{2}

s.t. , i =1,2,...,m

非线性SVM

 在线性不可分的数据集中,我们会将样本提前映射在n-维特征空间里面使得数据线性可分,然后再在这个空间里构造分离超平面。核函数就是一种典型的非线性映射,实际上这种映射不需要显性的表示出来,我们只用将其替换实例之间的内积就行了,分类函数如下:

在这里我们使用的是高斯核函数

 

 

σ是用户自定义的用于确定到达率(reach)或者说函数值跌落到0的速度参数。 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值