机器学习教程 之 支持向量机:模型篇1—支持向量与间隔
支持向量机是机器学习领域里最强的几种分类器之一,被广泛的运用于各种分类回归问题,如果不考虑集成学习算法以及近几年出现的深度学习算法,支持向量机的性能可以说是在学习领域具有统治地位,在一些中小型的数据集上它的性能甚至能够超过一些深度学习网络。其基本原理相当简单,但是模型的求解和优化却十分复杂,很难描述清楚,这里我会一步一步,尽我所能分章节的将它总结完善
模型篇
· 支持向量机:模型篇1–支持向量与间隔
· 支持向量机:模型篇2–支持向量的拉格朗日对偶
· 支持向量机:模型篇3–对偶问题的求解: SMO算法
· 支持向量机:模型篇4–核函数与非线性优化
· 支持向量机:模型篇5–向量机的软间隔拓展
代码篇
· 支持向量机:代码篇1-基于CVXPT优化函数求解
· 支持向量机:代码篇2-基于SMO算法求解
支持向量与间隔
支持向量机(Support Vector Machine),这一名称是令人疑惑的,在这一章节里我们会解释这一名称与支持向量机的最基本模型。让我们先从线性二分类支持向量机开始
对于一个给定的训练样本集
正如上图所示,对于一个线性可分问题来说,能够将两类样本分开的超平面(图中直线)往往不止一个,那么我们寻找哪一个比较好呢?在图中,直观上看来,应该去找位于两类训练样本“正中间“的那一条红色直线作为划分的超平面,因为该超平面对训练样本局部扰动的“容忍性“最好。例如,由于训练集的局限性或噪声的因素,测试集中的样本可能比图中训练集中的样本更加接近两个类的分隔界,这就有可能使得一些超平面出现划分错误的现象,在这种情况下,红色超平面会受到最小影响,换而言之,这个划分超平面所产生的分类结果是鲁棒的,对未见的测试点泛化性能最强
在样本空间中,划分超平面可通过如下的线性方程来描述
其中
其中
为了得到距离,将上式取绝对值(或者乘上
在得到距离公式以后,我们假设超平面
我们现在可以看看下图,距离超平面最近的几个训练样本点可以使上式中的等式成立。它们被称为“支持向量“,两个异类支持点到超平面的距离之和为
它被称为“间隔“
现在建立优化目标方程,找到使间隔最大的划分超平面参数
显然,为了最大化间隔,仅需要最大化
这就是支持向量机的基本模型,由上面的分析我们可以知道,模型的求解其实仅仅于“支持向量“的分布有关,而与其他训练点无关,“支持向量“的分布决定了超平面的划分,这也是“支持向量机“名称的由来