支持向量机资料文档格式.docx
《支持向量机资料文档格式.docx》由会员分享,可在线阅读,更多相关《支持向量机资料文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
![支持向量机资料文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/12/270ccbd9-326f-4917-91a4-0c53acdccd1f/270ccbd9-326f-4917-91a4-0c53acdccd1f1.gif)
在学习这种方法时,首先要弄清楚这种方法考虑问题的特点,这就要从线性可分的最简单情况讨论起,在没有弄懂其原理之前,不要急于学习线性不可分等较复杂的情况,支持向量机在设计时,需要用到条件极值问题的求解,因此需用拉格朗日乘子理论。
2一般特征
⑴SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。
而其他分类方法(如基于规则的分类器和人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。
⑵SVM通过最大化决策边界的边缘来控制模型的能力。
尽管如此,用户必须提供其他参数,如使用核函数类型和引入松弛变量等。
⑶通过对数据中每个分类属性引入一个哑变量,SVM可以应用于分类数据。
⑷SVM一般只能用在二类问题,对于多类问题效果不好。
3原理简介
SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题.简单地说,就是升维和线性化.升维,就是把样本向高维空间做映射,一般情况下这会增加计算的复杂性,甚至会引起“维数灾难”,因而人们很少问津.但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归).一般的升维都会带来计算的复杂化,SVM方法巧妙地解决了这个难题:
应用核函数的展开定理,就不需要知道非线性映射的显式表达式;
由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”.这一切要归功于核函数的展开和计算理论.
选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:
⑴线性核函数K(x,y)=x·
y;
⑵多项式核函数K(x,y)=[(x·
y)+1]^d;
⑶径向基函数K(x,y)=exp(-|x-y|^2/d^2)
⑷二层神经网络核函数K(x,y)=tanh(a(x·
y)+b).
最优分类面:
最优超平面
SVM是从线性可分情况下的最优分类面发展而来的,基本思想可用图2的两维情况说明。
方形点和圆形点代表两类样本,H为分类线,H1,H2分别为过各类中离分类线最近的样本且平行于分类线的直线,他们之间的距离叫分类间隔。
最优分类线就是要求分类线不但能将两类正确分开(训练错误率为0),且使分类间隔最大。
推广到高维空间,最优分类线就变为最优分类面。
设线性可分的样本集(xi,yi),i=1,…,n,x∈Rd,y∈{+1,-1}。
d维空间中的线性判别函数:
g(x)=wx-b,分类面方程为:
wx-b=0。
我们可以对它进行归一化,使得所有样本都满足|g(x)|>
=1,即分类面最近的样本满足g(x)=1,这样分类间隔就等于2/||W||,因此要求分类间隔最大,就是要求||W||或||W||2最小。
而要求分类面对所有样本正确分类,就是要求满足:
yi[wxi+b]-1>
=0,i=1,…,n,
(1)
因此,满足上面公式且使||W||2最小的分类面就是最优分类面。
过两类样本中离分类面最近的点且平行于最优分类面的超平面H1,H2上的训练样本,就是使上式等号成立的样本称作支持向量。
定义:
支持向量机(SupportVectorMachine,SVM),是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
在地球物理反演当中解决非线性反演也有显著成效,例如(支持向量机在预测地下水涌水量问题等)。
已知该算法被应用的主要有:
石油测井中利用测井资料预测地层孔隙度及粘粒含量、天气预报工作等。
支持向量机方法建立在统计学习理论的VC维理论和结构风险最小原理基础上,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折中,以求获得最好的推广能力(或称泛化能力)。
所谓VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂。
正是因为SVM关注的是VC维,后面我们可以看到,SVM解决问题的时候,和样本的维数是无关的(甚至样本是上万维的都可以,这使得SVM很适合用来解决文本分类的问题,当然,有这样的能力也因为引入了核函数)。
我们通常希望分类的过程是一个机器学习的过程。
这些数据点是n维实空间中的点。
我们希望能够把这些点通过一个n-1维的超平面分开。
通常这个被称为线性分类器。
有很多分类器都符合这个要求。
但是我们还希望找到分类最佳的平面,即使得属于两个不同类的数据点间隔最大的那个面,该面亦称为最大间隔超平面。
如果我们能够找到这个面,那么这个分类器就称为最大间隔分类器。
支持向量机属于一般化线性分类器。
他们也可以认为是提克洛夫规则化(TikhonovRegularization)方法的一个特例。
这种分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区。
因此支持向量机也被称为最大边缘区分类器。
支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。
在分开数据的超平面的两边建有两个互相平行的超平面。
建立方向合适的分隔超平面使两个与之平行的超平面间的距离最大化。
其假定为,平行超平面间的距离或差距越大,分类器的总误差越小。
一个极好的指南是C.J.CBurges的《模式识别支持向量机指南》。
支持向量机特点
支持向量机中的一大亮点:
在传统的最优化问题中提出了对偶理论,主要有最大最小对偶及拉格朗日对偶。
(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;
(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;
(3)支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。
(4)SVM是一种有坚实理论基础的新颖的小样本学习方法。
它基本上不涉及概率测度及大数定律等,因此不同于现有的统计方法。
从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题。
(5)SVM的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。
(6)少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。
这种“鲁棒”性主要体现在:
①增、删非支持向量样本对模型没有影响;
②支持向量样本集具有一定的鲁棒性;
③有些成功的应用中,SVM方法对核的选取不敏感
支持向量机不足
(1)SVM算法对大规模训练样本难以实施
由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。
针对以上问题的主要改进有有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian等的SOR算法
(2)用SVM解决多分类问题存在困难
经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。
可以通过多个二类支持向量机的组合来解决。
主要有一对多组合模式、一对一组合模式和SVM决策树;
再就是通过构造多个分类器的组合来解决。
主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。
如:
与粗集理论结合,形成一种优势互补的多类问题的组合分类器。
支持向量机的优势:
∙可用于分类、回归和异常检验
∙可以发现全局最优解
∙可以用参数来控制过度拟合问题
SVM的关键在于核函数。
低维空间向量集通常难于划分,于是将它们映射到高维空间。
但这个办法带来的困难就是计算复杂度的增加,而核函数正好巧妙地解决了这个问题。
只要选用适当的核函数,就可以得到高维空间的分类函数。
采用不同的核函数将导致不同的SVM算法。
支持向量机分类器
理解SVM有四个关键名词:
分离超平面、最大边缘超平面、软边缘、核函数。
∙分离超平面(separatinghyperplane):
处理分类问题的时候需要一个决策边界,好象楚河汉界一样,在界这边我们判别A,在界那边我们判别B。
这种决策边界将两类事物相分离,而线性的决策边界就是分离超平面。
∙最大边缘超平面(MaximalMarginHyperplane):
分离超平面可以有很多个,怎么找最好的那个呢,SVM的作法是找一个“最中间”的。
换句话说,就是这个平面要尽量和两边保持距离,以留足余量,减小泛化误差,保证稳健性。
或者用中国人的话讲叫做“执中”。
以江河为国界的时候,就是以航道中心线为界,这个就是最大边缘超平面的体现。
在数学上找到这个最大边缘超平面的方法是一个二次规划问题。
∙软边缘(SoftMargin):
但世界上没这么美的事,很多情况下都是“你中有我,我中有你”的混杂状态。
不大可能用一个平面完美的分离两个类别。
在线性不可分情况下就要考虑软边缘了。
软边缘可以破例允许个别样本跑到其它类别的地盘上去。
但要使用参数来权衡两端,一个是要保持最大边缘的分离,另一个要使这种破例不能太离谱。
这种参数就是对错误分类的惩罚程度C。
∙核函数(KernelFunction),为了解决完美分离的问题,SVM还提出一种思路,就是将原始数据映射到高维空间中去,直觉上可以感觉高维空间中的数据变的稀疏,有利于“分清敌我”。
那么映射的方法就是使用“核函数”。
如果这种“核技术”选择得当,高维空间中的数据就变得容易线性分离了。
而且可以证明,总是存在一种核函数能将数据集映射成可分离的高维数据。
看到这里各位不要过于兴奋,映射到高维空间中并非是有百利而无一害的。
维数过高的害处就是会出现过度拟合。
所以选择合适的核函数以及软边缘参数C就是训练SVM的重要因素。
一般来讲,核函数越复杂,模型越偏向于拟合过度。
在参数C方面,它可以看作是LASSO算法中的lambda的倒数,C越大模型越偏向于拟合过度,反之则拟合不足。
实际问题中怎么选呢?
用人类最古老的办法,试错。
常用的核函数有如下种类:
∙Linear:
使用它的话就成为线性向量机,效果基本等价于Logistic回归。
但它可以处理变量极多的情况,例如文本挖掘。
∙polynomial:
多项式核函数,适用于图像处理问题。
∙Radialbasis,高斯核函数,最流行易用的选择。
参数包括了sigma,其值若设置过小,会