SVM专业知识讲座_第1页
SVM专业知识讲座_第2页
SVM专业知识讲座_第3页
SVM专业知识讲座_第4页
SVM专业知识讲座_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SupportVectorMachine

支持向量机

第1页内容SVM介绍线性分类器核函数松弛变量LIBSVM介绍试验第2页SVM介绍支持向量机(SupportVectorMachine)是Cortes和Vapnik于1995年首先提出,它在处理小样本、非线性及高维模式识别中体现出许多特有优势,并能够推广应用到函数拟合等其他机器学习问题中。

第3页SVM介绍支持向量机办法是建立在统计学习理论VC维理论和构造风险最小原理基础上,根据有限样本信息在模型复杂性(即对特定训练样本学习精度,Accuracy)和学习能力(即无错误地识别任意样本能力)之间谋求最佳折衷,以期取得最佳推广能力(或称泛化能力)。第4页SVM介绍VC维:所谓VC维是对函数类一种度量,能够简单理解为问题复杂程度,VC维越高,一种问题就越复杂。正是由于SVM关注是VC维,背面我们能够看到,SVM处理问题时候,和样本维数是无关(甚至样本是上万维都能够,这使得SVM很适适用来处理像文本分类这样问题,当然,有这样能力也由于引入了核函数)。第5页SVM介绍构造风险最小原理:就是追求“经验风险”与“置信风险”和最小。第6页SVM介绍风险:机器学习本质上就是一种对问题真实模型逼近(我们选择一种我们以为比较好近似模型,这个近似模型就叫做一种假设),但毫无疑问,真实模型一定是不懂得。既然真实模型不懂得,那么我们选择假设与问题真实解之间究竟有多大差距,我们就没法得知。这个与问题真实解之间误差,就叫做风险(更严格说,误差累积叫做风险)。第7页SVM介绍经验风险Remp(w):我们选择了一种假设之后(更直观点说,我们得到了一种分类器后来),真实误差无从得知,但我们能够用某些能够掌握量来逼近它。最直观想法就是使用分类器在样本数据上分类成果与真实成果(由于样本是已经标注过数据,是精确数据)之间差值来表达。这个差值叫做经验风险Remp(w)。第8页SVM介绍此前某些机器学习办法把经验风险最小化作为努力目标,但后来发觉很多分类函数能够在样本集上容易达成100%正确率,在真实分类时却不好(即所谓推广能力差,或泛化能力差)。此时情况是由于选择了一种足够复杂分类函数(它VC维很高),能够精确记住每一种样本,但对样本之外数据一律分类错误。由于经验风险最小化标准适用大前提是经验风险要确实能够逼近真实风险才行。但事实上不太也许,经验风险最小化标准只在这占很小百分比样本上做到没有误差,不能确保在更大百分比真实文本上也没有误差。第9页SVM介绍泛化误差界:为理解决刚才问题,统计学提出了泛化误差界概念。就是指真实风险应当由两部分内容刻画,一是经验风险,代表了分类器在给定样本上误差;二是置信风险,代表了我们在多大程度上可以信任分类器在未知样本上分类结果。很显然,第二部分是没有办法精确计算,因此只能给出一个估计区间,也使得整个误差只能计算上界,而无法计算准确值(因此叫做泛化误差界,而不叫泛化误差)。第10页SVM介绍置信风险:与两个量有关,一是样本数量,显然给定样本数量越大,我们学习成果越有也许正确,此时置信风险越小;二是分类函数VC维,显然VC维越大,推广能力越差,置信风险会变大。第11页SVM介绍泛化误差界公式为:R(w)≤Remp(w)+Ф(n/h)公式中R(w)就是真实风险,Remp(w)表达经验风险,Ф(n/h)表达置信风险。此时目标就从经验风险最小化变为了谋求经验风险与置信风险和最小,即构造风险最小。第12页SVM介绍小样本:并不是说样本绝对数量少(事实上,对任何算法来说,更多样本几乎总是能带来更加好效果),而是说与问题复杂度比起来,SVM算法要求样本数是相对比较少。第13页SVM介绍非线性:是指SVM擅长应付样本数据线性不可分情况,主要通过松弛变量(也叫处罚变量)和核函数技术来实现,这一部分是SVM关键内容,背面会详细说明。第14页SVM介绍高维模式识别:是指样本维数很高,SVM也能够应付。这主要是由于SVM产生分类器很简洁,用到样本信息很少(仅仅用到那些称之为“支持向量”样本),使得虽然样本维数很高,也不会给存放和计算带来大麻烦。第15页线性分类器线性分类器:一定意义上,也能够叫做感知机,是最简单也很有效分类器形式。在一种线性分类器中,能够看到SVM形成思绪,并接触很多SVM关键概念。下面举例说明。第16页线性分类器用一种二维空间里仅有两类样本分类问题来举例子。如图所示:C1和C2是要辨别两个类别。中间直线就是一种分类函数,它能够将两类样本完全分开。一般,假如一种线性函数能够将样本完全正确分开,就称这些数据是线性可分,不然称为非线性可分。

第17页线性分类器线性函数在一维空间里就是一种点,在二维空间里就是一条直线,三维空间里就是一种平面,能够如此想象下去,假如不关注空间维数,这种线性函数尚有一种统一名称——超平面(HyperPlane)。第18页线性分类器例如我们有一种线性函数g(x)=wx+b我们能够取阈值为0,这样当有一种样本xi需要鉴别时候,我们就看g(xi)值。若g(xi)>0,就鉴别为类别C1,若g(xi)<0,则鉴别为类别C2(等于时候我们就回绝判断)。此时也等价于给函数g(x)附加一种符号函数sgn(),即f(x)=sgn[g(x)]是我们真正鉴别函数。第19页线性分类器有关g(x)=wx+b这个体现式要注意三点:1.式中x不是二维坐标系中横轴,而是样本向量表达,例如一种样本点坐标是(3,8),则xT=(3,8),而不是x=3(一般说向量都是说列向量)。2.这个形式并不局限于二维情况,在n维空间中仍然能够使用这个体现式,只是式中w成为了n维向量(在二维这个例子中,w是二维向量,注意这里w严格说也应当是转置形式,为了表达起来方便简洁,下列均不区分列向量和它转置)。3.g(x)不是中间那条直线体现式,中间那条直线体现式是g(x)=0,即wx+b=0,我们也把这个函数叫做分类面。第20页线性分类器分类间隔:下列图中间那条分界限并不是唯一,把它稍微旋转一下,只要不把两类数据分错,仍然能够达成上面说效果,稍微平移一下,也能够。此时就牵涉到一种问题,对同一种问题存在多种分类函数时候,哪一种函数更加好呢?显然必须要先找一种指标来量化“好”程度,一般使用叫做“分类间隔”指标。

第21页线性分类器例如在进行文本分类时候,我们能够让计算机这样来看待我们提供应它训练样本,每一种样本由一种向量(就是那些文本特性所组成向量)和一种标识(标示出这个样本属于哪个类别)组成。如下:Di=(xi,yi)xi就是文本向量(维数很高),yi就是分类标识。第22页线性分类器在二元线性分类中,这个表达分类标识只有两个值,1和-1(用来表达属于还是不属于这个类)。有了这种表达法,我们就能够定义一种样本点到某个超平面间隔:δi=yi(wxi+b)首先假如某个样本属于该类别话,那么wxi+b>0,而yi也大于0;若不属于该类别话,那么wxi+b<0,而yi也不大于0,这意味着yi(wxi+b)总是大于0,并且它值就等于|wxi+b|,也就是|g(xi)|。第23页线性分类器

目前把w和b进行归一化处理,即用w/||w||和b/||w||分别替代本来w和b,那么间隔就能够写成:

这就是解析几何中点xi到直线g(x)=0距离公式,也就是到超平面g(x)=0距离。

第24页线性分类器||w||叫做向量w范数,范数是对向量长度一种度量。我们常说向量长度其实指是它2-范数,范数最一般表达形式为p-范数,能够写成如下体现式向量w=(w1,w2,w3,……wn)它p-范数为:当我们不指明p时候,就意味着我们不关怀p值,用几范数都能够。当用归一化w和b替代原值之后间隔有一种专门名称,叫几何间隔,表达是点到超平面欧氏距离。第25页线性分类器下面这张图直观展示出了几何间隔现实含义:H是分类面,而H1和H2是平行于H,且过离H近来两类样本直线,H1与H,H2与H之间距离就是几何间隔。第26页线性分类器之因此如此关怀几何间隔这个东西,是由于几何间隔与样本误分次数间存在关系:

其中δ是样本集合到分类面几何间隔,R=max||xi||i=1,...,n,即R是所有样本中向量长度最长值(也就是说代表样本分布有多么广)。误分次数一定程度上代表分类器误差。而从上式能够看出,在样本已知情况下,误分次数上界由几何间隔决定!几何间隔越大解,它误差上界越小。因此最大化几何间隔成了训练阶段目标。第27页线性分类器间隔:δ=y(wx+b)=|g(x)|几何间隔:

能够看出δ=||w||δ几何。几何间隔与||w||是成反比,因此最大化几何间隔与最小化||w||完全是一回事。而我们常用办法并不是固定||w||大小而谋求最大几何间隔,而是把所有样本点中间隔最小那一点间隔固定(例如固定为1),寻找最小||w||。第28页线性分类器假如直接来解这个求最小值问题,当||w||=0时候就得到了目标函数最小值。不过无论给什么样数据,都是这个解!反应在图中,就是H1与H2两条直线间距离无限大,这个时候,所有样本点都跑到了H1和H2中间,进入了无法分类灰色地带。

造成这种成果原因是在描述问题时候只考虑了目标,而没有加入约束条件。第29页线性分类器之前把所有样本点中间隔最小那一点间隔定为1,这就相称于让下面式子总是成立:yi[(w·xi)+b]≥1(i=1,2,…,l)(l是总样本数)即:yi[(w·xi)+b]-1≥0(i=1,2,…,l)(l是总样本数)因此我们两类分类问题也被我们转化成了它数学形式,一种带约束最小值问题:

第30页线性分类器从最一般定义上说,一种求最小值问题就是一种优化问题(也叫规划),它同样由两部分组成,目标函数和约束条件,能够用下面式子表达:

约束条件用函数c来表达,就是constrain意思。一共有p+q个约束条件,其中p个是不等式约束,q个等式约束。第31页线性分类器这个式子中x是自变量,但不限定它维数必须为1(视乎你处理问题空间维数)。要求f(x)在哪一点上取得最小值,但不是在整个空间里找,而是在约束条件所划定可行域里找。注意可行域中每一种点都要求满足所有p+q个条件,同步可行域边界上点有一种额外好特性,它们能够使不等式约束取得等号!而边界内点不行。第32页线性分类器这对一般优化问题也许提供不了什么帮助,但对SVM来说,边界上点有其特殊意义,事实上是它们唯一决定了分类超平面,这些点(就是此前图中正好落在H1和H2上点,在文本分类问题中,每一种点代表一种文档,因而这个点本身也是一种向量)就被称为支持向量。第33页线性分类器回头再看线性分类器问题描述:

在这个问题中,自变量就是w,目标函数是w二次函数,所有约束条件都是w线性函数(不要把xi当成变量,它代表样本,是已知),这种规划问题也叫做二次规划(QuadraticProgramming,QP)。并且,由于它可行域是一种凸集,因此它是一种凸二次规划。凸二次规划长处在于它有全局最优解。第34页线性分类器不过事实上我们并不懂得该怎么解一种带约束优化问题。我们能够轻松解一种不带任何约束优化问题(事实上就是函数求极值,求导再找0点),我们甚至还会解一种只带等式约束优化问题,就是求条件极值,通过添加拉格朗日乘子,构造拉格朗日函数,来把这个问题转化为无约束优化问题。假如只带等式约束问题能够转化为无约束问题来求解,那么可不能够把带不等式约束问题向只带等式约束问题转化而得以求解呢?答案是能够。第35页线性分类器我们想求得这样一种线性函数(在n维空间中线性函数):g(x)=wx+b求g(x)过程就是求w(一种n维向量)和b(一种实数)两个参数过程(但事实上只需要求w,求得后来找某些样本点代入就能够求得b)。因此在求g(x)时候,w才是变量。第36页线性分类器样本确定了w,用数学语言描述,就是w能够表达为样本某种组合:w=α1x1+α2x2+…+αnxn

式子中αi是一种一种数(在严格证明过程中,这些α被称为拉格朗日乘子),而xi是样本点,因而是向量,n就是总样本点个数。为了方便描述,下列开始严格区分数字与向量乘积和向量间乘积,用α1x1表达数字和向量乘积,而用<x1,x2>表达向量x1,x2内积。因此g(x)体现式严格形式应当是:g(x)=<w,x>+b第37页线性分类器

不过上面式子还不够好,假如我不动所有点位置,而只是把其中一种正样本点定为负样本点(也就是把一种点形状从圆形变为方形),那么三条直线都必须移动。这说明w不但跟样本点位置有关,还跟样本类别有关因此用下面这个式子表达才算完整:w=α1y1x1+α2y2x2+…+αnynxn

其中yi就是第i个样本标签,它等于1或者-1。其实以上式子那一堆拉格朗日乘子中,只有很少一部分不等于0(不等于0才对w起决定作用),这部分不等于0拉格朗日乘子背面所乘样本点,其实都落在H1和H2上,也正是这部分样本唯一确实定了分类函数。更严格说,这些样本一部分就能够确定,由于例如确定一条直线,只需要两个点就能够。这部分样本点,就叫做支持(撑)向量!

第38页线性分类器

式子也能够用求和符号简写一下:

因此本来g(x)体现式能够写为:

注意式子中x才是变量,假如要分类哪篇文档,就把该文档向量表达代入到x位置,而所有xi统统都是已知样本。还注意到式子中只有xi和x是向量,因此一部分能够从内积符号中拿出来,得到g(x)式子为:

第39页线性分类器至此w不见了,从求w变成了求α。看似没有简化问题,其实简化了本来问题,由于以这样形式描述问题后来,我们优化了不等式约束。之后求解就变得很容易了。下面遇到一种问题:假如提供样本线性不可分,怎么办?因此必须要提到SVM中比较主要内容——核函数。第40页核函数之前始终在讨论线性分类器。假如提供样本线性不可分,成果很简单,线性分类器求解程序会无限循环,永远也解不出来。这必然使得它适用范围大大缩小,而它很多长处我们实在不原意放弃,那么就必须寻找让线性不可分数据变得线性可分办法。第41页核函数用一种二维平面中分类问题作例子,如图:把横轴上端点a和b之间红色部分里所有点定为正类,两边黑色部分里点定为负类。试问能找到一种线性函数把两类正确分开么?不能,由于二维空间里线性函数就是指直线,显然找不到符合条件直线。第42页核函数

但我们能够找到一条曲线,例如下面这一条:

显然通过点在这条曲线上方还是下方就能够判断点所属类别。这条曲线就是我们熟知二次曲线,它函数体现式是:第43页核函数问题只是它不是一种线性函数,不过,做一下变换,新建一种向量y和a:这样g(x)就能够转化为f(y)=<a,y>,你能够把y和a分别回带一下,看看等不等于本来g(x)。用内积形式写你也许看不太清楚,事实上f(y)形式就是:g(x)=f(y)=ay在任意维度空间中,这种形式函数都是一种线性函数,由于自变量y次数不大于1。本来在二维空间中一种线性不可分问题,映射到高维空间后,变成了线性可分!因此也形成了我们最初想处理线性不可分问题基本思绪——向高维空间转化,使其变得线性可分。第44页核函数

用一种详细文本分类例子来看看这种向高维空间映射从而分类办法如何运作,假如我们文本分类问题原始空间是1000维(即每个要被分类文档被表达为一种1000维向量),在这个维度上问题是线性不可分。目前我们有一种2023维空间里线性函数f(x’)=<w’,x’>+b

它能够将原问题变得可分。式中w’和x’都是2023维向量,只不过w’是定值,而x’是变量。目前我们输入呢,是一种1000维向量x,分类过程是先把x变换为2023维向量x’,然后求这个变换后向量x’与向量w’内积,再把这个内积值和b相加,就得到了成果,看成果大于阈值还是不大于阈值就得到了分类成果。第45页核函数

因此只需要关怀那个高维空间里内积值。而从理论上说,x’是经由x变换来,因此广义上能够把它叫做x函数(由于有一种x,就确定了一种x’),而w’是常量,它是一种低维空间里常量w通过变换得到,因此给了一种w和x值,就有一种确定f(x’)值与其对应。因此,需要这样一种函数K(w,x),他接收低维空间输入值,却能算出高维空间内积值<w’,x’>。也就是当给了一种低维空间输入x后来:g(x)=K(w,x)+bf(x’)=<w’,x’>+b这两个函数计算成果就完全同样,我们也就用不着费劲找那个映射关系,直接拿低维输入往g(x)里面代就能够了。第46页核函数这样函数确实存在,它被称作核函数(核,kernel),并且不止一种,事实上,只要是满足了Mercer条件函数,都能够作为核函数。核函数基本作用就是接收两个低维空间里向量,能够计算出通过某个变换后在高维空间里向量内积值。这就是说,尽管给问题是线性不可分,不过就硬当它是线性问题来求解,只不过求解过程中,凡是要求内积时候就用选定核函数来算。这样求出来α再和选定核函数一组合,就得到分类器。。第47页核函数几个比较常用核函数如下:第48页核函数接下来尚有两个问题:1.既然有很多核函数,针对详细问题该怎么选择?2.假如使用核函数向高维空间映射后,问题仍然是线性不可分,那怎么办?第49页核函数对核函数选择,目前还缺乏指导标准!多种试验观测成果(不光是文本分类)确实表白,某些问题用某些核函数效果较好,用另某些就很差,不过一般来讲,径向基核函数(RBF)是不会出太大偏差一种。第50页核函数在常用核函数中,应用最广泛是具有较好学习能力RBF核,无论低维、高维、小样本、大样本等情况,RBF核均适应,具有较宽收敛域,是较为抱负分类根据函数。KeerthiSS等人证明了线性核和多项式核是RBF核特殊情况。

LinCJ等说明了在某些参数情况下,

Sigmoid核同RBF核具有相同性能。第51页松弛变量处理第二个问题:

举个例子,例如我们已经把一种本来线性不可分文本分类问题,通过映射到高维空间而变成了线性可分。目前有这样一种训练集,只比原先这个训练集多了一篇文章,映射到高维空间后来也就多了一种样本点,不过这个样本位置如下列图:第52页松弛变量

就是图中黄色那个点,它是方形,因而它是负类一种样本,这单独一种样本,使得原本线性可分问题变成了线性不可分。这样类似问题(仅有少数点线性不可分)叫做“近似线性可分”问题。

第53页松弛变量按照常识判断,假如有一万个点都符合某种规律,只有一种点不符合,那这个样本点也许是噪声。因此即便简单忽视这个样本点,仍然使用本来分类器,其效果丝毫不受影响。但程序并没有这种容错性。由于在原本优化问题体现式中,确实要考虑所有样本点,并在此基础上寻找正负类之间最大几何间隔,而几何间隔代表是距离,是非负,像上面这种有噪声情况会使得整个问题无解。这种解法其实也叫做“硬间隔”分类法,由于他硬性要求所有样本点都满足和分类平面间距离必须大于某个值。处理办法也很显著,就是仿照人思绪,允许某些点到分类平面距离不满足原先要求。第54页松弛变量

为此引入一种非负松弛项,有两种常用方式:另一种是:其中l都是样本数目。两种办法没有大区分。假如选择了第一种,得到办法就叫做一阶软间隔分类器,第二种就叫做二阶软间隔分类器。

第55页松弛变量把损失加入到目标函数里时候,就需要一种处罚因子(cost,也就是libSVM很多参数中C),本来优化问题就变成了下面这样:

这个式子有这样几点要注意:1.并非所有样本点都有一种松弛变量与其对应。只有“离群点”才有。2.松弛变量值事实上标示出了对应点究竟离群有多远,值越大,点就越远。

第56页松弛变量3.处罚因子C决定了你有多重视离群点带来损失,显然当所有离群点松弛变量和一定期,C越大,对目标函数损失也越大,此时就暗示着非常不乐意放弃这些离群点,最极端情况是把C定为无限大,这样只要稍有一种点离群,目标函数值立即变成无限大,立即让问题变成无解,这就退化成了硬间隔问题。4.是处罚因子C不是一种变量,整个优化问题在解时候,C是一种必须事先指定值,指定这个值后来,解一下,就得到一种分类器,然后用测试数据看看成果好不好,不好再换一种C值。如此就是一种参数寻优过程。另外,当遇到数据集偏斜问题时,也是通过调整处罚因子来处理。第57页松弛变量核函数与松弛变量作用区分:虽然二者引入都是为理解决线性不可分问题。但二者尚有微妙不一样。以文本分类为例。在原始低维空间中,样本相称不可分,无论怎么找分类平面,总会有大量离群点,此时用核函数向高维空间映射一下,虽然结果仍然是不可分,但比原始空间里要更加接近线性可分状态,就是达到了近似线性可分状态。此时再用松弛变量处理那些少数离群点,就简单有效得多了。第58页ExampleSupposewehave51Ddatapointsx1=1,x2=2,x3=4,x4=5,x5=6,with1,2,6asclass1and4,5asclass2

y1=1,y2=1,y3=-1,y4=-1,y5=1Weusethepolynomialkernelofdegree2K(xi,xj)=(xixj+1)2Wefirstfindai(i=1,…,5)bySubjectto:

i>0第59页Example

ByusingaQPsolver,wegeta1=0,a2=2.5,a3=0,a4=7.333,a5=4.833Thesupportvectorsare{x2=2,x4=5,x5=6}Thediscriminantfunctionisbisrecoveredbysolving

f(2)=1

orby

f(5)=-1

orby

f(6)=1,as

x2,x4,x5

lieon

andallgive

b=9f(z)=(2.5)(1)(2z+1)2+7.333(1)(5z+1)2+4.833(1)(6z+1)2+b=0.6667z2–5.333z+byi(wT(z)+b)=1f(x)=0.6667x2-5.333x+9第60页ExampleValueofdiscriminantfunction12456class2class1class1{x=2,x=5,x=6aresupportvectors}第61页SVM用于多类分类一次性得到多种分类面办法:就是真一次性考虑所有样本,并求解一种多目标函数优化问题,一次性得到多种分类面,如下列图:

只可惜这种算法还基本停留在纸面上,由于一次性求解办法计算量实在太大,大到无法实用地步。

第62页SVM用于多类分类“一类对其他”办法:例如有5个类别,第一次就把类别1样本定为正样本,其他2,3,4,5样本合起来定为负样本,得到一种两类分类器,它能够指出一篇文章是还是不是第1类;第二次我们把类别2样本定为正样本,把1,3,4,5样本合起来定为负样本,得到一种分类器,如此下去。但这种办法容易造成分类重合现象和不可分类现象人为造成“数据集偏斜”问题。第63页SVM用于多类分类“一对一单挑”办法:每次选一种类样本作正类样本,而负类样本则变成只选一种类。因此第一种只回答“是第1类还是第2类”,第二个只回答“是第1类还是第3类”,如此下去。在真正用来分类时候,把一篇文章扔给所有分类器,让每一种都投上自己一票,最后统计票数,假如类别“1”得票最多,就判这篇文章属于第1类。这种办法使得两类分类器数目为k(k-1)/2)。类别数假如是1000,要调用分类器数目会上升至约500000个,过于复杂。第64页SVM用于多类分类

因此必须在分类时候下功夫。举个例子,还是像一对一办法那样来训练,只是在对一篇文章进行分类之前,先按照下面图样子来组织分类器:

分类时,先问分类器“1对5”(意思是它能够回答“是第1类还是第5类”),假如回答5,就往左走,再问“2对5”这个分类器,假如还是“5”,继续往左走,这样始终下去,就能够得到分类成果。第65页SVM用于多类分类这是一种有向无环图,因此这种办法也叫做DAGSVM),调用了k-1(K是类别数)个分类器。速度快,且没有分类重合和不可分类现象。缺陷是假如最一开始分类器回答错误,那么背面分类器是无法纠正它错误。对下面每一层分类器都存在这种错误向下累积现象。不过DAG办法好于它们地方就在于,累积上限,不论是大是小,总是有定论,有理论能够证明。并且能够通过调整“根节点选用”及输出“置信度”来改善效果。第66页LIBSVM介绍LIBSVM是台湾大学林智仁专家2023年开发一套支持向量机库,运算速度快,能够很方便对数据做分类或回归。由于LIBSVM程序小,利用灵活,输入参数少,并且是开源,易于扩展,因此成为目前国内应用最多SVM库。这套库目前已经发展到2.9版。第67页LIBSVM介绍工具包里主要有5个文献夹:1.Java主要是应用于java平台;2.Python是用来参数优选工具,稍后介绍;3.svm-toy是一种可视化工具,用来展示训练数据和分类界面,里面是源码,其编译后程序在windows文献夹下;4.tools—主要包括四个python文献,用来数据集抽样(subset),参数优选(grid),集成测试(easy),数据检查(checkdata);5.windows包括libSVM四个exe程序包,我们所用库就是他们。其中svm-scale.exe是用来对原始样本进行缩放;svm-train.exe主要实现对训练数据集训练,并能够取得SVM模型;svmpredict是根据训练取得模型,对数据集合进行预测。尚有一种svm-toy.exe之前已经交待过,是一种可视化工具。第68页LIBSVM介绍libSVM数据格式如下:Label1:value2:value…Label是类别标识,例如上节train.model中提到1-1,你能够自己随意定,例如-10,0,15。假如是回归,这是目标值,就要实事求是了。Value就是要训练数据,从分类角度来说就是特性值,数据之间用空格隔开,例如:-151:0.7082:10563:-0.3333需要注意是,假如特性值为0,特性冒号前面(姑且称做序号)能够不连续。如:-151:0.7083:-0.3333表白第2个特性值为0,从编程角度来说,这样做能够减少内存使用,并提升做矩阵内积时运算速度。第69页试验试验样本选择工具包下存在样本文献:heart_scale。内容截图如下:第70页试验

训练:首先用svm-train进行训练,输入下列命令:svm-trainheart_scaletrain.model得到一种成果文献:train.model

第71页试验能够看到成果:optimizationfinished,#iter=162nu=0.431029obj=-100.877288,rho=0.424462nSV=132,nBSV=107TotalnSV=132其中,#iter为迭代次数,nu是选择核函数类型参数,obj为SVM文献转换为二次规划求解得到最小值,rho为判决函数偏置项b,nSV为标准支持向量个数(0<a[i]<c),nBSV为边界上支持向量个数(a[i]=c),TotalnSV为支持向量总个数(对于两类来说,由于只有一种分类模型TotalnSV=nSV,不过对于多类,这个是各个分类模型nSV之和)。第72

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论