svm 是什么?如何找到正确的超平面

栏目: 数据库 · 发布时间: 6年前

svm 是什么?如何找到正确的超平面

什么是支持向量机?

在机器学习中,支持向量机是在 分类与回归 分析中分析数据的 监督式学习模型 与相关的学习算法。

给定一组训练实例,每个训练实例被标记为属于 两个类别 中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的 模型 ,使其成为 非概率二元线性分类器

SVM模型是 将实例表示为空间中的点 ,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分 开。

然后,将新的实例映射到同一空间, 并基于它们落在间隔的哪一侧来预测所属类别

以上是维基百科的解释,看起来是不是有一点懵,没关系,我们接下来我们进行一些 解释你就明白了。

首先,我们通过一个简单的游戏来帮助你理解svm。

游戏规则:请将下面图中的篮球与红球分离开

关卡一:

svm 是什么?如何找到正确的超平面

你可能已经想到解决办法了,在红球与方块之间加一条直线就可以了。

svm 是什么?如何找到正确的超平面

关卡二:

svm 是什么?如何找到正确的超平面

这个时候直线好像不行了,我们可以使用一条曲线将两种球分开

svm 是什么?如何找到正确的超平面

通过这个小游戏,你应该对svm有了一点初步的认识。

蓝球和白球是数据源,用来区分蓝球和红球的直线叫做 分类器

我们将关卡二中的图转化成三维模型

svm 是什么?如何找到正确的超平面

曲线变成了一个平面,很好的将蓝球与红球分离开来,这个平面就 叫做 超平面

如何识别正确的超平面

上面,我们已经习惯了用超平面隔离这两个数据源的过程, svm的实质就是找到最合适的那个超平面以进行最好的分类。

01

下面的图中我们用A、B、C三个超平面分开了星星与红球,哪个是最佳的超平面呢?

svm 是什么?如何找到正确的超平面

在识别超平面的时候你需要牢记一个原则,就是你选择的这个超平面一定是要更好的对你的源数据进行分类。遵循这个原则,超平面B更好的完成了这个任务。

02

同样使用A、B、C三个超平面进行隔离,此时三个超平面都很好的将星星和红球隔离,哪一个是正确的超平面呢?

svm 是什么?如何找到正确的超平面

此时你需要牢记的一个关键点是,SVM就是试图把分类器放在最佳位置,好让在分类器的两边有尽可能大的间隙。

svm 是什么?如何找到正确的超平面

可以看到C与两个数据源的边距都比A和B要高,因此正确的超平面是C。

03

在这个图中有A、B两个超平面对数据源进行了分类,如果让你使用上面两个规则哪一个时正确的超平面呢?

svm 是什么?如何找到正确的超平面

使用规则一,正确的超平面是A,使用规则二,会选择超平面B,因为B与数据源间隔的位置更大。在这里需要注意的是,最大化边距的前提是准确的进行分类,这里B的分类有误差,因此,正确的超平面是A。

04

现在,没有直线可以分隔以下圆球球和星星了,因为在圆球中混入了一颗星,这颗星是异常值 。

svm 是什么?如何找到正确的超平面

SVM具有忽略异常值并找到具有最大余量的超平面的功能

svm 是什么?如何找到正确的超平面

05

之前我们所做的超平面都是线性的超平面,现在将情况变得复杂一点,在下面的图中,无法找到一个线性的超平面,该怎么办呢?

svm 是什么?如何找到正确的超平面

此时我们需要引入一个附加功能,添加一个新特征z = x ^ 2 + y ^ 2。现在,让我们绘制轴x和z上的数据点。

svm 是什么?如何找到正确的超平面

SVM有一种称为 内核技巧 的技术。

它主要用于非线性分离问题。它执行一些极其复杂的数据转换,然后根据你定义的标签或输出找出分离数据的过程。

当我们在原始输入空间中查看超平面时,它看起来像一个圆圈:

svm 是什么?如何找到正确的超平面

利用核函数进行调参

在寻找超平面的过程之中,我们会遇到各种各样的难题,但最终的目的时能够更好的 高SVM的准确性。

此时我们可能会用到svm分类器中的调整参数,通过不断的调整以获取最优的解决办法。

线性SVM中超平面的学习是通过使用一些线性代数转换问题来完成的。

对于 线性核 ,使用输入(x)和每个支持向量(xi)之间的点积来预测新输入的等式 f(x)= B(0)+ sum(ai *(x,xi))

这是一个方程,涉及使用训练数据中的所有支持向量计算新输入向量(x)的内积。必须通过学习算法从训练数据估计系数B0和ai。

如果 数据线性不可分 ,将输入空间内线性不可分的数据映射到 一个高维的特征空间内,使数据在特征空间内是线性可分的,这个映射记作 ϕ(x)。

之后优化问题中就会有内积 ϕi⋅ϕj, 这个内积的计算维度会非常大,因此引入了 核函数

svm中有两个非常重要的参数: C参数和gamma参数

其中C是惩罚系数,即对误差的宽容度。

对于较大的C值,如果超平面能够更好地将所有训练点分类正确,则优化将选择边距较小的超平面。相反,非常小的C值将导致优化器寻找更大边距的分离超平面,即使该超平面错误分类更多的点。

Gamma是选择RBF函数作为kernel后,该函数自带的一个参数。

Gamma越大,支持向量越少,Gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。

kernel 可以帮我们很快地做一些计算, 在 sklearn 中可以用 grid search 找到合适的 kernel,以及它们的 gamma,C 等参数,下面列出了四种常用的 核函数以及如何进行调参:

svm 是什么?如何找到正确的超平面

探索数据科学之旅

公众号ID

DataCastle-VIP

svm 是什么?如何找到正确的超平面


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

从点子到产品

从点子到产品

刘飞 / 电子工业出版社 / 2017-1-1 / 49.00元

《从点子到产品:产品经理的价值观与方法论》以产品经理的方法论与价值观为主线,讲述了产品经理在从点子到产品的过程中应该考虑的问题、思考问题的思路,以及如何解决问题的方法。第一部分主要讲述从粗略的点子到具体的方案,要经历的步骤。第二部分主要讲述如何落实方案,以及如何进行用户研究、需求分析和产品设计。第三部分主要讲述在落实方案的过程中要掌握的方法和管理技巧。最后一部分主要讲述产品经理在工作和成长过程中要......一起来看看 《从点子到产品》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码