支持向量机讲解(很详细明了).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

w支持向量机:MaximumMarginClassifier

bypluskid,on2010-09-08,in?MachineLearning????

?84comments

支持向量机即?SupportVectorMachine,简称SVM。我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把Support这么一个具体的动作和Vector这么一个抽象的概念拼到一起,然后再做成一个Machine,一听就很玄了!

不过后来我才知道,原来SVM它并不是一头机器,而是一种算法,或者,确切地说,是一类算法,当然,这样抠字眼的话就没完没了了,比如,我说SVM实际上是一个分类器(Classifier),但是其实也是有用SVM来做回归(Regression)的。所以,这种字眼就先不管了,还是从分类器说起吧。

SVM一直被认为是效果最好的现成可用的分类算法之一(其实有很多人都相信,“之一”是可以去掉的)。这里“现成可用”其实是很重要的,因为一直以来学术界和工业界甚至只是学术界里做理论的和做应用的之间,都有一种“鸿沟”,有些很fancy或者很复杂的算法,在抽象出来的模型里很完美,然而在实际问题上却显得很脆弱,效果很差甚至完全fail。而SVM则正好是一个特例——在两边都混得开。

好了,由于SVM的故事本身就很长,所以废话就先只说这么多了,直接入题吧。当然,说是入贴,但是也不能一上来就是SVM,而是必须要从线性分类器开始讲。这里我们考虑的是一个两类的分类问题,数据点用?x?来表示,这是一个?n?维向量,而类别用?y?来表示,可以取1或者-1,分别代表两个不同的类(有些地方会选0和1,当然其实分类问题选什么都无所谓,只要是两个不同的数字即可,不过这里选择+1和-1是为了方便SVM的推导,后面就会明了了)。一个线性分类器就是要在?n?维的数据空间中找到一个超平面,其方程可以表示为

一个超平面,在二维空间中的例子就是一条直线。我们希望的是,通过这个超平面可以把两类数据分隔开来,比如,在超平面一边的数据点所对应的?y?全是-1,而在另一边全是1。具体来说,我们令?f(x)=wTx+b?,显然,如果?f(x)=0?,那么?x?是位于超平面上的点。我们不妨要求对于所有满足?f(x)0?的点,其对应的?y?等于-1,而?f(x)0?则对应?y=1?的数据点。当然,有些时候(或者说大部分时候)数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在,不过关于如何处理这样的问题我们后面会讲,这里先从最简单的情形开始推导,就假设数据都是线性可分的,亦即这样的超平面是存在的。

如图所示,两种颜色的点分别代表两个类别,红颜色的线表示一个可行的超平面。在进行分类的时候,我们将数据点?x代入?f(x)?中,如果得到的结果小于0,则赋予其类别-1,如果大于0则赋予类别1。如果?f(x)=0,则很难办了,分到哪一类都不是。事实上,对于?f(x)?的绝对值很小的情况,我们都很难处理,因为细微的变动(比如超平面稍微转一个小角度)就有可能导致结果类别的改变。理想情况下,我们希望?f(x)?的值都是很大的正数或者很小的负数,这样我们就能更加确信它是属于其中某一类别的。

从几何直观上来说,由于超平面是用于分隔两类数据的,越接近超平面的点越“难”分隔,因为如果超平面稍微转动一下,它们就有可能跑到另一边去。反之,如果是距离超平面很远的点,例如图中的右上角或者左下角的点,则很容易分辩出其类别。

实际上这两个Criteria是互通的,我们定义functionalmargin为?γ?=y(wTx+b)=yf(x),注意前面乘上类别?y?之后可以保证这个margin的非负性(因为?f(x)0?对应于?y=?1?的那些点),而点到超平面的距离定义为geometricalmargin。不妨来看看二者之间的关系。如图所示,对于一个点?x?,令其垂直投影到超平面上的对应的为?x0?,由于?w?是垂直于超平面的一个向量(请自行验证),我们有

又由于?x0?是超平面上的点,满足?f(x0)=0?,代入超平面的方程即可算出

不过,这里的?γ?是带符号的,我们需要的只是它的绝对值,因此类似地,也乘上对应的类别?y即可,因此实际上我们定义geometricalmargin为:

显然,functionalmargin和geometricalmargin相差一个?∥w∥?的缩放因子。按照我们前面的分析,对一个数据点进行分类,当它的margin越大的时候,分类的confidence越大。对于一个包含?n?个点的数据集,我们可以很自

文档评论(0)

ryaoo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档