数据挖掘学习--支持向量机SVM2

1.前言

前一篇博客《数据挖掘学习–支持向量机SVM1》写了一下我对SVM思想的一些理解。本来当时就想写下之后的这几篇博客来完成SVM算法的初步学习笔记的,但是在不断回看自己写的博客,发现我对SVM的算法推导还是有很多不是很理解的地方,也花了比较多的时间去认真解决我碰到的问题。随口一提,支持向量机真的是个很有逻辑的算法,学习过程中也不禁膜拜起发明这种算法的科学家们。

本文就接着写写对SVM中软边缘的一些学习笔记,也记录下对SVM中非线性问题的学习。

2.线性不可分、非线性问题

前一篇博客讲的SVM的基础理论推导,都是讲的是在线性可分的情况下的SVM情况,这种也叫做硬边缘支持向量机(Hard margin SVM)。这当然是最理想的状态,那么不难想象我们在现实的情况中,我们将会碰到很多我们并不能一次性用一个决策边界划分的数据。这时候又分为了线性不可分和非线性问题。

那么有人说,这线性不可分和非线性问题不是一样的吗?其实并非如此
(1).线性不可分指的是,针对于Hard margin SVM来说,我们仍然想用一个线性决策边界去解决分类问题,但是此时我们碰到了一些问题,就是在数据集上有一些数据点我们用某一条线性决策边界能划分好,但是代价很大,并非最优的线性决策边界。我们可以找到一条更优的决策边界来划分,但是可能就是有一些数据点不能正确分类。线性不可分本质上还是用线性SVM去解决。
(2).非线性问题则是指,对大部分数据(也可能是所有数据),不论我们怎么增大容错空间,都找不到这么一个线性SVM来进行分类。

3.软边缘

我们对比硬边缘(Hard margin),我们的决策边界是:
在这里插入图片描述
相对应的Plus-plane和Minus-plane就是:
在这里插入图片描述
对于硬边缘支持向量机,他的决策边缘区域是不允许有数据点出现的,也就是我们所有数据点都必须满足一下条件:
在这里插入图片描述
那么对于这个规定是太不灵活了,也许我们会碰到一些错误的样本点或者噪声出现在决策边缘区域中,而这些错误的点数量也是很小,同时会产生一条更优的决策边界(有更好泛化能力)。此时我们引入一个为正值的松弛变量来优化这个问题:
在这里插入图片描述
从几何意义上讲,就是将Plus-plane和Minus-plane同时向决策边界平移,产生的效果就是决策边缘区域变小,影响就是允许更多的点不用被分类正确(针对硬决策边缘),结果上来讲就是增加了训练数据的容错率,允许有训练数据的学习分类错误。允许这个经验误差代价的产生而进一步加大模型泛化误差。

此时受限条件改变了,那么原目标问题也应该改变
在这里插入图片描述
其中C为容错因子。我们可以对比正则化的知识来看待这个新的式子,我们调高这个容错因子C的话,在最小化这个函数时,我们将更多的去顾及第二项也就是松弛变量的值,也就是优先考虑将松弛变量最小化,相比之下第一项的影响程度就变小了。

4.非线性支持向量机

面对上文提到的非线性的情况,不论我们怎么增大容错空间,都找不到这么一个线性决策超平面。此时我们要转换我们的思想,类比一下我们在LinearRegression中,我们也碰到一些非线性的数据,那么那时候我们是用了多项式的线性回归的方法来找到关系。那么也得出了非线性支持向量机的思路:将数据从原想的坐标空间x变换到一个新的坐标空间Φ(x)中,从而在变换后的坐标空间中使用一个线性的决策边界来划分样本。

回顾我们要解决的对偶问题:
在这里插入图片描述
由于在非线性问题上,我们要将每个样本x进行升维,那么在对偶问题求解中我们需要计算下列点乘时将是十分耗费时间的,同时升维操作我们也不能避免的占用更大的内存:
在这里插入图片描述
(数学表达上就是将用多项式先升维为Φ(xi)和Φ(xj),再通过点积计算对应每两个样本点组合的结果)

我们观察到,对每一组的数据样本点的点积,我们用黑盒的思想,它们的传入参数就是两个向量(未升维的),传出的结果是一个数字(它们升维后的点积)。我们要是能够用某种函数,使得我们仅仅只需传入两个初始参数,通过在低维空间中用函数的计算就能得到这个点积,而非要去升维再计算的话,那样的话就能优化我们的计算过程,大大减少计算时间和占用的内存空间。 这个就是我们 核函数 的思想。

5.利用核函数来简化非线性问题SVM的求解

首先要明确的一点是,解决非线性问题SVM的最优化问题的思路依然是多项式升维再求解,在映射后空间上找到一个可以划分样本的决策超平面。我们引入核函数,只是一个小技巧(又称Kernel trick)来帮助我们简化计算而已。

先抛出几种不同的常用的核函数:

(1).h度多项式核函数:
在这里插入图片描述
(2).高斯核函数(RBF核函数):
在这里插入图片描述
引入核函数,是因为我们在通过预先定义好的核函数计算得到的结果是恰巧和他们的点乘结果是一样的,运用核函数可以使我们减少运算量,避免了先升维再计算,一步到位。

实际上对于对偶问题:
在这里插入图片描述
升维后的对偶问题变为:
在这里插入图片描述
此时我们知道有这么一些函数K(xi , xj),这些函数有下式成立:
在这里插入图片描述
那么将上式代入升维后待解决的对偶问题:
在这里插入图片描述
这样达到了 不需升维,代入低维空间的向量就能得到我们利用高维空间数据的点积 的效果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值