支持向量机通俗导论理解SVM的三层境界.docx

上传人:b****1 文档编号:661230 上传时间:2022-10-11 格式:DOCX 页数:58 大小:1.37MB
下载 相关 举报
支持向量机通俗导论理解SVM的三层境界.docx_第1页
第1页 / 共58页
支持向量机通俗导论理解SVM的三层境界.docx_第2页
第2页 / 共58页
支持向量机通俗导论理解SVM的三层境界.docx_第3页
第3页 / 共58页
支持向量机通俗导论理解SVM的三层境界.docx_第4页
第4页 / 共58页
支持向量机通俗导论理解SVM的三层境界.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

支持向量机通俗导论理解SVM的三层境界.docx

《支持向量机通俗导论理解SVM的三层境界.docx》由会员分享,可在线阅读,更多相关《支持向量机通俗导论理解SVM的三层境界.docx(58页珍藏版)》请在冰豆网上搜索。

支持向量机通俗导论理解SVM的三层境界.docx

支持向量机通俗导论理解SVM的三层境界

   支持向量机通俗导论(理解SVM的三层境界)

 在本文中,你将看到,理解SVM分三层境界,

∙第一层、了解SVM(你只需要对SVM有个大致的了解,知道它是个什么东西便已足够);

∙第二层、深入SVM(你将跟我一起深入SVM的内部原理,通宵其各处脉络,以为将来运用它时游刃有余);

∙第三层、证明SVM(当你了解了所有的原理之后,你会有大笔一挥,尝试证明它的冲动);

第一层、了解SVM

1.0、什么是支持向量机SVM

  然在进入第一层之前,你只需了解什么是支持向量机SVM就够了,而要明白什么是SVM,便得从分类说起。

  分类作为数据挖掘领域中一项非常重要的任务,目前在商业上应用最多(比如分析型CRM里面的客户分类模型,客户流失模型,客户盈利等等,其本质上都属于分类问题)。

而分类的目的则是学会一个分类函数或分类模型(或者叫做分类器),该模型能吧数据库中的数据项映射到给定类别中的某一个,从而可以用于预测未知类别。

   其实,若叫分类,可能会有人产生误解,以为凡是分类就是把一些东西或样例按照类别给区分开来,实际上,分类方法是一个机器学习的方法,分类也成为模式识别,或者在概率统计中称为判别分析问题。

  你甚至可以想当然的认为,分类就是恰如一个商场进了一批新的货物,你现在要根据这些货物的特征分门别类的摆放在相关的架子上,这一过程便可以理解为分类,只是它由训练有素的计算机程序来完成。

  说实话,上面这么介绍分类可能你不一定内心十分清楚。

我来举个例子吧,比如心脏病的确诊中,如果我要完全确诊某人得了心脏病,那么我必须要进行一些高级的手段,或者借助一些昂贵的机器,那么若我们没有那些高科技医疗机器怎么办?

还怎么判断某人是否得了心脏病呢?

  当然了,古代中医是通过望、闻、问、切“四诊”,但除了这些,我们在现代医学里还是可以利用一些比较容易获得的临床指标进行推断某人是否得了心脏病。

如作为一个医生,他可以根据他以往诊断的病例对很多个病人(假设是500个)进行彻底的临床检测之后,已经能够完全确定了哪些病人具有心脏病,哪些没有。

因为,在这个诊断的过程中,医生理所当然的记录了他们的年龄,胆固醇等10多项病人的相关指标。

那么,以后,医生可以根据这些临床资料,对后来新来的病人通过检测那10多项年龄、胆固醇等指标,以此就能推断或者判定病人是否有心脏病,虽说不能达到100%的标准,但也能达到80、90%的正确率,而这一根据以往临场病例指标分析来推断新来的病例的技术,即成为分类classification技术。

   OK,既然讲到了病例诊断这个例子,接下来咱们就以这个例子来简单分析下SVM。

假定是否患有心脏病与病人的年龄和胆固醇水平密切相关,下表对应10个病人的临床数据(年龄用[x1]表示,胆固醇水平用[x2]表示):

   这样,问题就变成了一个在二维空间上的分类问题,可以在平面直角坐标系中描述如下:

根据病人的两项指标和有无心脏病,把每个病人用一个样本点来表示,有心脏病者用“+”形点表示,无心脏病者用圆形点,如下图所示:

  如此我们很明显的看到,是可以在平面上用一条直线把圆点和“+”分开来的。

当然,事实上,还有很多线性不可分的情况,下文将会具体描述。

  So,本文将要介绍的支持向量机SVM算法便是一种分类方法。

∙所谓支持向量机,顾名思义,分为两个部分了解,一什么是支持向量(简单来说,就是支持or支撑平面上把两类类别划分开来的超平面的向量点,下文将具体解释),二这里的“机”是什么意思。

我先来回答第二点:

这里的“机(machine,机器)”便是一个算法。

在机器学习领域,常把一些算法看做是一个机器,如分类机(当然,也叫做分类器),而支持向量机本身便是一种监督式学习的方法(什么是监督学习与非监督学习,请参见第一篇),它广泛的应用于统计分类以及回归分析中。

  支持向量机(SVM)是90年代中期发展起来的基于统计学习理论的一种机器学习方法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。

  对于不想深究SVM原理的同学(比如就只想看看SVM是干嘛的),那么,了解到这里便足够了,不需上层。

而对于那些喜欢深入研究一个东西的同学,甚至究其本质的,咱们则还有很长的一段路要走,万里长征,咱们开始迈第一步吧(相信你能走完)。

1.1、线性分类

  OK,在讲SVM之前,咱们必须先弄清楚一个概念:

线性分类器(也可以叫做感知机,这里的机表示的还是一种算法,本文第三部分、证明SVM中会详细阐述)。

  这里我们考虑的是一个两类的分类问题,数据点用 x 来表示,这是一个 n 维向量,而类别用 y 来表示,可以取1或者-1,分别代表两个不同的类。

一个线性分类器就是要在 n 维的数据空间中找到一个超平面,其方程可以表示为:

wTx+b=0

  对应的几何示意图如下:

1.2、线性分类的一个例子

  来理论可能读者看不懂,咱们来直接举一个例子吧,且举最简单的例子,一个二维平面(一个超平面,在二维空间中的例子就是一条直线),如下图所示,平面上有两种不同的点,分别用两种不同的颜色表示,一种为红颜色的点,另一种则为蓝颜色的点,红颜色的线表示一个可行的超平面。

  从上图中我们可以看出,这条红颜色的线把红颜色的点和蓝颜色的点分开来了。

而这条红颜色的线就是我们上面所说的超平面,也就是说,这个所谓的超平面的的确确便把这两种不同颜色的数据点分隔开来,在超平面一边的数据点所对应的 y 全是-1,而在另一边全是1。

  接着,我们可以令分类函数(下文将一直用蓝色表示分类函数)

 f(x)=wTx+b ,

  显然,如果 f(x)=0 ,那么 x 是位于超平面上的点。

我们不妨要求对于所有满足 f(x)<0 的点,其对应的 y 等于-1,而 f(x)>0 则对应 y=1 的数据点。

   (有一朋友飞狗来自Mare_Desiderii,看了上面的定义之后,问道:

请教一下SVMfunctionalmargin为γˆ=y(wTx+b)=yf(x)中的Y是只取1和-1吗?

y的唯一作用就是确保functionalmargin的非负性?

真是这样的么?

当然不是,详情请见本文评论下第43楼)

当然,有些时候(或者说大部分时候)数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在(不过关于如何处理这样的问题我们后面会讲),这里先从最简单的情形开始推导,就假设数据都是线性可分的,亦即这样的超平面是存在的。

更进一步,我们在进行分类的时候,将数据点 x代入 f(x) 中,如果得到的结果小于0,则赋予其类别-1,如果大于0则赋予类别1。

如果 f(x)=0,则很难办了,分到哪一类都不是(后续会说明此种情况)。

1.3、函数间隔Functionalmargin与几何间隔Geometricalmargin 

  一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。

在超平面w*x+b=0确定的情况下,|w*x+b|能够相对的表示点x到距离超平面的远近,而w*x+b的符号与类标记y的符号是否一致表示分类是否正确,所以,可以用量y*(w*x+b)的正负性来判定或表示分类的正确性和确信度,于此,我们便引出了函数间隔functionalmargin的概念。

1.3.1、函数间隔Functionalmargin

  我们定义函数间隔functionalmargin 为:

 

     γˆ=y(wTx+b)=yf(x),

  接着,我们定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi,yi)的函数间隔最小值,即:

γˆ=minγˆi  (i=1,...n)

  然与此同时,问题就出来了。

上述定义的函数间隔虽然可以表示分类预测的正确性和确信度,但在选择分类超平面时,只有函数间隔还远远不够,因为如果成比例的改变w和b,如将他们改变为2w和2b,虽然此时超平面没有改变,但函数间隔的值f(x)却变成了原来的改变(代进去一眼便看出来了)。

其实,我们可以对法向量w加些约束条件,使其表面上看起来规范化,如此,我们很快又将引出真正定义点到超平面的距离--几何间隔geometricalmargin的概念。

1.3.2、点到超平面的距离定义:

几何间隔Geometricalmargin

  在给出几何间隔的定义之前,咱们首先来看下,如上图所示,对于一个点 x ,令其垂直投影到超平面上的对应的为 x0 ,由于 w 是垂直于超平面的一个向量,我们有

x=x0+γw∥w∥

        (||w||表示的是范数,关于范数的概念参见:

  又由于 x0 是超平面上的点,满足 f(x0)=0 ,代入超平面的方程即可算出(别忘了,上面ˆγ的定义,ˆγ=y(wTx+b)=yf(x)):

 γ

γ=wTx+b∥w∥=f(x)∥w∥

(有的书上会写成把||w||分开相除的形式,如本文参考文献及推荐阅读条目9,其中,||w||为w的二阶泛数)

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

γ˜=yγ=γˆ∥w∥

(代人相关式子可以得出:

yi*(w/||w||+b/||w||))

  正如本文评论下读者popol1991留言:

函数间隔y*(wx+b)=y*f(x)实际上就是|f(x)|,只是人为定义的一个间隔度量;而几何间隔|f(x)|/||w||才是直观上的点到超平面距离。

  想想二维空间里的点到直线公式:

假设一条直线的方程为ax+by+c=0,点P的坐标是(x0,y0),则点到直线距离为|ax0+by0+c|/sqrt(a^2+b^2)。

如下图所示:

                 

  那么如果用向量表示,设w=(a,b),f(x)=wx+c,那么这个距离不正是|f(p)|/||w||么?

OK,下图中xi,和xj分别到超平面的距离:

1.4、最大间隔分类器MaximumMarginClassifier的定义

  于此,我们已经很明显的看出,函数间隔functionalmargin和几何间隔geometricalmargin相差一个 ∥w∥ 的缩放因子。

按照我们前面的分析,对一个数据点进行分类,当它的margin越大的时候,分类的confidence越大。

对于一个包含 n 个点的数据集,我们可以很自然地定义它的margin为所有这 n 个点的margin值中最小的那个。

于是,为了使得分类的confidence高,我们希望所选择的超平面hyperplane 能够最大化这个margin值。

  通过上节,我们已经知道:

1、functionalmargin明显是不太适合用来最大化的一个量,因为在hyperplane固定以后,我们可以等比例地缩放 w 的长度和 b 的值,这样可以使得 f(x)=wTx+b 的值任意大,亦即functionalmargin γˆ 可以在hyperplane保持不变的情况下被取得任意大,

2、而geometricalmargin则没有这个问题,因为除上了 ∥w∥ 这个分母,所以缩放 w 和 b 的时候 γ˜ 的值是不会改变的,它只随着hyperplane的变动而变动,因

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1