机器学习之支持向量机(SVM)

一.前言

支持向量机(SVM)主要针对于线性可分和线性不可分(软间隔)和线性不可分的数据分布下使用,类似于逻辑回归(LR)是做不到线性不可分的和虽然线性可分但是需要软间隔的情况下。

二.原理流程

     1.首先需要明确的前提条件是支持向量是未知的,并且带有软间隔的情况下是有(松弛变量)的。定义训练数据集:D={(x1,y1),(x2,y2).......(xN,yN)}(

xi为数据集第i个数据,标签要么为1,要么为-1。

2.定义几何间隔(算法最终围绕思想间隔最大化):假设超平面为f(x)=w1x+b1(1),那么任意样本点的几何间隔定义为:(2),那么如果是支持向量的几何间隔为:(3)。(注:(2)式的理解说白了就是点到直线的距离(欧式距离)):,(2)式的yi为了得到的值为正值,||w1||为向量w1的二范数。

3.最大化支持向量的几何距离为:(4),化简(4)式中约束条件得到:(5);进而为了简洁令:,得到:(6)。

4.由于最大化,等效于最小化,得到目标函数为(含约束条件):(7)。

5.(7)式为典型的含有约束条件的凸二次规划问题,那么正面求解很难做到;所以运用拉格朗日乘子法得到拉格朗日乘子法目标函数,再利用对偶问题求解方法进行求解:(8)。

6.(8)式中≥0,并且我们数据集样本 ≥0(9),所以得到:

那么原约束问题等效于:(11)

这个式子并不好求,里边有拉格朗日乘子并且为约束条件。所以利用对偶求解:

用(8)式分别对w2和b2求偏导可得:;将这两个结果带入(8)式可得:

利用序列最小化算法(SMO)和之前的kkt条件及式(16)等计算先求解得到,最终计算得到w2和b2:

 

 

 

对于任意训练样本,都会有 ;如果则有

相反,则样本不会出现在算法参数求解式子中,这也就说明了SVM最终的训练结果只与支持向量相关(求解模型参数过程也会得到前边刚开始所未知的支持向量)。

7.加入软间隔,也就是在训练样本中允许出现几何间隔小于支持向量的几何间隔:

用式(17)代替式(7)。

8.梳理一下大概流程:

输入数据集:D,设定惩罚参数C且

构造凸优化问题(包括拉格朗日乘子法、对偶求解等):

也就是式子(16);

利用SMO进行求解得到:

 

最终求解得到超平面:

附上最终的图:

此图为示意图,并且三个方程等号右边的不是标签值,也不是特征值,只是表示几何间隔大小还是相对支持向量来说的。

三.非线性不可分SVM原理 

      对于非线性不可分来说,那么一种重要的途径就是降维或者升维,显然这个问题可以去升维试一下,通过非线性变换在高维进行线性可分;由于线性可分低纬状态下目标函数(16)是样本向量的内积,所以不需要在训练开始就进行非线性变换,而是用核函数(核技巧)等效代替并在式(16)直接替换,这里边为什么用核函数代替我想大家了解,在求解过程中就会求解出高纬的模型参数;由于特征直接含有了低纬特征的二次幂等,所哟得到的模型也就是曲面,那么就解决了线性不可分问题。大致流程为:

1.输入训练集:D

2.选取适当的核函数K(x,z)和惩罚项参数C,构造最终类似式(16)的凸二次规划问题:

3.找到 的一个分量并满足

得到:

 

4.最终得到分类器函数为:

注意此表达式中核函数为高斯核。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值