什么是支持向量机?
在机器学习中,支持向量机是在 分类与回归 分析中分析数据的 监督式学习模型 与相关的学习算法。
给定一组训练实例,每个训练实例被标记为属于 两个类别 中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的 模型 ,使其成为 非概率二元线性分类器 。
SVM模型是 将实例表示为空间中的点 ,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分 开。
然后,将新的实例映射到同一空间, 并基于它们落在间隔的哪一侧来预测所属类别 。
以上是维基百科的解释,看起来是不是有一点懵,没关系,我们接下来我们进行一些 解释你就明白了。
首先,我们通过一个简单的游戏来帮助你理解svm。
游戏规则:请将下面图中的篮球与红球分离开
关卡一:
你可能已经想到解决办法了,在红球与方块之间加一条直线就可以了。
关卡二:
这个时候直线好像不行了,我们可以使用一条曲线将两种球分开
通过这个小游戏,你应该对svm有了一点初步的认识。
蓝球和白球是数据源,用来区分蓝球和红球的直线叫做 分类器 。
我们将关卡二中的图转化成三维模型
曲线变成了一个平面,很好的将蓝球与红球分离开来,这个平面就 叫做 超平面 。
如何识别正确的超平面
上面,我们已经习惯了用超平面隔离这两个数据源的过程, svm的实质就是找到最合适的那个超平面以进行最好的分类。
01
下面的图中我们用A、B、C三个超平面分开了星星与红球,哪个是最佳的超平面呢?
在识别超平面的时候你需要牢记一个原则,就是你选择的这个超平面一定是要更好的对你的源数据进行分类。遵循这个原则,超平面B更好的完成了这个任务。
02
同样使用A、B、C三个超平面进行隔离,此时三个超平面都很好的将星星和红球隔离,哪一个是正确的超平面呢?
此时你需要牢记的一个关键点是,SVM就是试图把分类器放在最佳位置,好让在分类器的两边有尽可能大的间隙。
可以看到C与两个数据源的边距都比A和B要高,因此正确的超平面是C。
03
在这个图中有A、B两个超平面对数据源进行了分类,如果让你使用上面两个规则哪一个时正确的超平面呢?
使用规则一,正确的超平面是A,使用规则二,会选择超平面B,因为B与数据源间隔的位置更大。在这里需要注意的是,最大化边距的前提是准确的进行分类,这里B的分类有误差,因此,正确的超平面是A。
04
现在,没有直线可以分隔以下圆球球和星星了,因为在圆球中混入了一颗星,这颗星是异常值 。
SVM具有忽略异常值并找到具有最大余量的超平面的功能
05
之前我们所做的超平面都是线性的超平面,现在将情况变得复杂一点,在下面的图中,无法找到一个线性的超平面,该怎么办呢?
此时我们需要引入一个附加功能,添加一个新特征z = x ^ 2 + y ^ 2。现在,让我们绘制轴x和z上的数据点。
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 等参数,下面列出了四种常用的 核函数以及如何进行调参:
点
击
关
注
探索数据科学之旅
公众号ID
DataCastle-VIP
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 边缘控制平面 Ambassador 全解读
- Envoy Proxy构建控制平面指南
- Y分形的平面微带天线生成过程
- SOFAMosn v0.8.0 发布,数据平面代理
- 贫苦家庭用户的 Envoy xDS 控制平面
- 超越像素平面:聚焦3D深度学习的现在和未来
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Ruby
Dave Thomas、Chad Fowler、Andy Hunt / Pragmatic Bookshelf / 2004-10-8 / USD 44.95
Ruby is an increasingly popular, fully object-oriented dynamic programming language, hailed by many practitioners as the finest and most useful language available today. When Ruby first burst onto the......一起来看看 《Programming Ruby》 这本书的介绍吧!