详解支持向量机-支持向量机分类器原理菜菜的sklearn课堂笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解支持向量机-支持向量机分类器原理菜菜的sklearn课堂笔记相关的知识,希望对你有一定的参考价值。

支持向量机是如何工作的

支持向量机所作的事情其实非常容易理解。先来看看下面这一组数据的分布,这是一组两种标签的数据,两种标签分别由圆和方块代表。支持向量机的分类方法,是在这组分布中找出一个超平面作为决策边界,使模型在数据上的分类误差尽量接近于小,尤其是在未知数据集上的分类误差(泛化误差)尽量小

决策边界一侧的所有点在分类为属于一个类,而另一侧的所有点分类属于另一个类。如果我们能够找出决策边界,分类问题就可以变成探讨每个样本对于决策边界而言的相对位置。比如上面的数据分布,我们很容易就可以在方块和圆的中间画出一条线,并让所有落在直线左边的样本被分类为方块,在直线右边的样本被分类为圆。如果把数据当作我们的训练集,只要直线的一边只有一种类型的数据,就没有分类错误,我们的训练误差就会为0。 但是,对于一个数据集来说,让训练误差为0的决策边界可以有无数条。

但在此基础上,我们无法保证这条决策边界在未知数据集(测试集)上的表现也会优秀。对于现有的数据集来说,我们有$B_1$和$B_2$两条可能的决策边界

我们可以把决策边界$B_1$向两边平移,直到碰到离这条决策边界最近的方块和圆圈后停下,形成了两个新的超平面,分别是$b_11$和$b_12$,并且我们将原始的决策边界移动到$b_11$和$b_12$的中间,确保$B_1$到$b_11$和$b_12$的距离相等。在$b_11$和$b_12$中间的位置,叫做$B_1$这条决策边界的边际,通常记作$d$

对$B_2$也执行同样的操作,然后我们来对比一下两个决策边界。现在两条决策边界右边的数据都被判断为圆,左边的数据都被判断为方块,两条决策边界在现在的数据集上的训练误差都是0,没有一个样本被分错。 我们引入和原本的数据集相同分布的测试样本(红色所示),平面中的样本变多了,此时我们可以发现,对于$B_1$而言,依然没有一个样本被分错,这条决策边界上的泛化误差也是0。但是对于$B_2$而言,却有三个方块被误人类成了圆,二有两个圆被误分类成了方块,这条决策边界上的泛化误差就远远大于$B_1$了。这个例子表现出,拥有更大边际的决策边界在分类中的泛化误差更小,这一点可以由结构风险最小化定律来证明(SRM)。如果边际很小,则任何轻微扰动都会对决策边界的分类产生很大的影响。边际很小的情况,是一种模型在训练集上表现很好,却在测试集上表现糟糕的情况,所以会“过拟合”。所以我们在找寻决策边界的时候,希望边际越大越好。

支持向量机,就是通过找出边际最大的决策边界,来对数据进行分类的分类器。也因此,支持向量分类器又叫做最大边际分类器。这个过程在二维平面中看起来十分简单,但将上述过程使用数学表达出来,就不是一件简单的事情了。

支持向量机原理的三层理解

目标是"找出边际最大的决策边界",听起来是一个十分熟悉的表达,这是一个最优化问题,而最优化问题往往和损失函数联系在一起。和逻辑回归中的过程一样,SVM也是通过最小化损失函数来求解一个用于后续模型使用的重要信息:决策边界

sklearn中的支持向量机

以上是关于详解支持向量机-支持向量机分类器原理菜菜的sklearn课堂笔记的主要内容,如果未能解决你的问题,请参考以下文章

详解支持向量机-基于SVM的ROC曲线和AUC面积菜菜的sklearn课堂笔记

详解支持向量机-探索核函数的优势和缺陷菜菜的sklearn课堂笔记

详解支持向量机-ROC曲线中的概率和阈值菜菜的sklearn课堂笔记

详解支持向量机-选取与核函数相关的参数:degree & gamma & coef0菜菜的sklearn课堂笔记

详解支持向量机-SVC真实数据案例:预测明天是否会下雨-探索标签和处理异常值菜菜的sklearn课堂笔记

详解支持向量机-SVC真实数据案例:预测明天是否会下雨-填补缺失值和编码菜菜的sklearn课堂笔记