机器学习中分类算法之支持向量机

果不其然属于黑箱方法,支持向量机(Support Vector Machine,SVM)是我看得最久却仍然一知半解的分类算法,不想把教材上的公式搬过来却又不知道该如何讲明白这晦涩难懂的SVM,仅以我浅薄的认识供读者以参考,请结合相关典籍辩证地看待本文。

不同复杂程度的数据对分类器的要求不同(如:不同类别的观测是线性可分还是线性不可分),支持向量机的形成类似一个升级打怪逐步进阶的过程,我们先从最简单的概念入手:

超平面

什么是超平面?在p维空间中,超平面是p-1维的平面仿射子空间(黑人问号脸!小编,这是什么鬼!)。举个例子,二维空间中超平面其实就是一条直线,定义为β+β1X1+β2X2=0;高中老师说过,β+β1X1+β2X2>0的时候点落在直线上方,反之落在直线下方,对应在这里,即是落在超平面的上方和下方。三维空间中的超平面就是我们常见的平面,而四维及以上的空间中则很难可视化超平面,请自行想象这么一个从你的全世界切过的平面子空间。

最大间隔分类器

事实上,能够将数据分隔开的超平面可能不止一个,如下图中已经展示了三种可能的超平面。

很自然,我们想要寻找一种方法,能够从无数个超平面中合理地选择出一个。最大间隔超平面(maximal margin hyperplane)的概念应运而生,指的是离训练观测最远的那个分割超平面。如下图所示,每个训练观测到一个特定分割超平面的(垂直)最小距离被称作间隔(margin),最大间隔超平面即使得间隔最大的分割超平面,接下来,通过判断观测落在最大间隔超平面的哪一侧来判断观测的类别归属就是最大间隔分类器(maximal margin classifier)。某种意义上来说,最大间隔超平面是能够插入两个类别之间的最宽的“平板”的中线,如下图中的黑色实线;有四个观测到最大间隔超平面的距离相等并且都落在虚线上,虚线表明了间隔的宽度,则这四个训练观测就称为支持向量(support vector),顾名思义,它们“支持”最大间隔超平面,只要这四个点的位置稍微改变,最大间隔超平面也会随之移动。这里不难发现一个重要性质:最大间隔超平面只由观测的一个小子集确定,即支持向量,而与其他观测无关。

然而现实情况并不总是这么简单,我们并不总能找到一个最大间隔超平面将两种类别的观测区分开来,这时候,最大间隔分类器就要扩展升级,只要求分割超平面几乎能够把两个类别区分开来。

支持向量分类器

支持向量分类器(support vector classifier),也称为软间隔分类器(soft margin classifier),就是无法找到最大间隔超平面时的推广,小编认为把最大间隔分类器看作是支持向量分类器的特例更有助于理解它们之间的进阶关系。

其实,最大间隔分类器追求对训练观测完全正确分类,使得其对单个观测的变化极其敏感,增加或减少一个训练观测可能会导致超平面发生巨大变化,这也就说明了它极易过度拟合训练数据,泛化能力随之减弱。因而,为了提高分类器对单个观测分类的稳定性以及为了使得其余大部分观测被更好地分类,暂且允许一些观测落在间隔(上图中黑虚线)错误的一侧,甚至超平面(上图中红实线)错误的一侧,这也是它的名字由来,间隔是软的,可以允许有些训练观测点越过间隔。

这个时候,支持向量分类器在最大间隔分类器要求间隔最大化的原型上加多了一个调节参数C,它表示我们能够忍受的穿过间隔(以及超平面)的观测的数目和严重程度。随着C的增加,我们越来越能容许观测穿过间隔,从而间隔也会变得越来越宽,反之,随着C的减少,间隔会变窄。C控制了统计学习中的偏差-方差权衡,通常是通过交叉验证来选择。

支持向量机

可以看到,支持向量分类器的决策边界仍然是线性的,那么,现实情况如下图所示的时候,仿佛找不到一个几乎能够将两个类别区分开来的软间隔分类器,这时候就需要将支持向量分类器扩展升级到非线性决策边界的支持向量机了!SVM使用核函数(kernel)来扩大特征空间,简单点说,采用一个映射(核函数)将低维空间线性不可分的观测投射到高维空间使其线性可分。核函数有多种类型,最常见的几种是:线性核函数、高斯径向基核函数、多项式核函数、S形核函数等。其中,高斯径向基核函数对于许多类型的数据都运行地很好,被认为是许多学习任务的一个合理的开始。目前有许多R包可以实现SVM,如:e1071添加包、klaR添加包、kernlab添加包等。

小结

从最大间隔分类器到支持向量分类器再到支持向量机,不知道你是否理解了SVM的进阶由来?SVM因其预测准确度高愈发受到欢迎,但是它的缺点也不容忽视,即:黑箱模型,很难甚至无法解释;核函数的选择无既定规则,需要测试。本期的学习到这里就结束啦,可能只涉及其表层,欢迎批评指正!

参考文献:

加雷斯·詹姆斯. 统计学习导论[M]. 机械工业出版社, 2015.

BrettLantz, 兰兹, 李洪成,等. 机器学习与R语言[M]. 机械工业出版社, 2015.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180613G0H1HU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券