机器学习算法之_支持向量机(SVM)

【关键词:支持向量,最大几何间隔,拉格朗日乘子法】

SVM主要针对小样本数据进行学习、分类和预测(有时也叫回归)的一种方法,能解决神经网络不能解决的过学习问题,而且有很好的泛化能力。

一、原理:

支持向量机,其含义是通过支持向量运算的分类器。其中“机”的意思是机器,可以理解为分类器。 那么什么是支持向量呢?在求解的过程中,会发现只根据部分数据就可以确定分类器,这些数据称为支持向量。 见下图,在一个二维环境中,其中点R,S,G点和其它靠近中间黑线的点可以看作为支持向量,它们可以决定分类器,也就是黑线的具体参数。
在这里插入图片描述

举个便于理解的例子

(1)有一堆蓝黑球
在这里插入图片描述
(2)于是大侠这样放,干的不错?
在这里插入图片描述
(3)然后魔鬼,又在桌上放了更多的球,似乎有一个球站错了阵营
在这里插入图片描述
(4)SVM就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙
在这里插入图片描述
(5)现在即使魔鬼放了更多的球,棍仍然是一个好的分界线
在这里插入图片描述

增加难度

(1)然后,在SVM 工具箱中有另一个更加重要的 trick。 魔鬼看到大侠已经学会了一个trick,于是魔鬼给了大侠一个新的挑战
在这里插入图片描述
(2)现在,大侠没有棍可以很好帮他分开两种球了,现在怎么办呢?当然像所有武侠片中一样大侠桌子一拍,球飞到空中。然后,凭借大侠的轻功,大侠抓起一张纸,插到了两种球的中间
在这里插入图片描述
(3)现在,从魔鬼的角度看这些球,这些球看起来像是被一条曲线分开了
在这里插入图片描述

总结:

最后人们把这些球叫做 「data」,
把棍子 叫做 「classifier」,
最大间隙trick 叫做「optimization」,
拍桌子叫做「kernelling」,
那张纸叫做「hyperplane」

二、解决的问题

线性分类

在训练数据中,每个数据都有n个的属性和一个二类类别标志,我们可以认为这些数据在一个n维空间里。我们的目标是找到一个n-1维的超平面(hyperplane),这个超平面可以将数据分成两部分,每部分数据都属于同一个类别。 其实这样的超平面有很多,我们要找到一个最佳的。因此,增加一个约束条件:这个超平面到每边最近数据点的距离是最大的。也成为最大间隔超平面(maximum-margin hyperplane)。这个分类器也成为最大间隔分类器(maximum-margin classifier)。 支持向量机是一个二类分类器。

非线性分类

SVM的一个优势是支持非线性分类。它结合使用拉格朗日乘子法和KKT条件,以及核函数可以产生非线性分类器。

SVM的目的是要找到一个线性分类的最佳超平面 f(x)=xw+b=0。求 w 和 b。

首先通过两个分类的最近点,找到f(x)的约束条件。

有了约束条件,就可以通过拉格朗日乘子法和KKT条件来求解,这时,问题变成了求拉格朗日乘子αi 和 b。

对于异常点的情况,加入松弛变量ξ来处理。

非线性分类的问题:映射到高维度、使用核函数。

线性分类及其约束条件

SVM的解决问题的思路是找到离超平面的最近点,通过其约束条件求出最优解。
在这里插入图片描述

最大几何间隔(geometrical margin)
求解问题w,b

我们使用拉格朗日乘子法(http://blog.csdn.net/on2way/article/details/47729419) 来求w和b,一个重要原因是使用拉格朗日乘子法后,还可以解决非线性划分问题。 拉格朗日乘子法可以解决下面这个问题:

在这里插入图片描述

三、实战

发布了388 篇原创文章 · 获赞 71 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/ZZQHELLO2018/article/details/104001542