支持向量机(SVM)算法总结

支持向量机算法作为机器学习领域的经典算法,从被提出开始提出后快速发展,在很多场景和领域都取得了非常好的效果,同时兼有数度快,支持数据量级大(相对经典机器学习算法)等特点使其在工程实践中的得到了广泛的应用。但很多算法工程师以外的人对这一算法了解不多。今天我们就聊一聊支持向量机算法。

1间隔最大化

要理解svm我们需要先理解什么是间隔最大化,首先从简单的线性二分类开始开始说起。要想对不用的样本空间分开来,如下如所示,需要找出一条线将不同分类的样本隔离开。

线性分类器就是通过这条线,我们就能将不同类别的样本分离开来,当有新的样本来时,判断在这条线的那个部分就可以得出新的样本的类别。

如下图所示,能将样本分类的分离的线具有很多,如下图的L1,L2,L3。但是如何选择一条最优的线来分割呢?

最大间隔的原理就是通过选择一个离两个样本都尽量远的中间线。也就是下图中的L2。这样的好处就是,因为离两边的样本都比较远。所以误判的情况相对较小。预测的精度更高。

通过利用最优化的处理方法,可以得出获取这条最优间隔线的方法。

2支持向量

说了这么久的间隔函数,最大间隔的问题,那什么是支持向量呢。如下图所示,由于间隔最大化需要在两个不同的样本类别中找出最大间隔的分割线,因此,举例分割线两边等距离的样本的点至关重要。这些点就是支持向量。

由于选对支持向量就可以得出最大间隔线,所以在算法迭代过程中,只需要在内存中保存和更新些点即可,会大大节省算法占用的内存空间,这对在实际工程中是十分重要的。

3核函数(kernelfunction)

截止目前我们描述的支持向量机的算法都是线性可分的。但在实际工程中,很多场景和环境中的使用情况是线性不可分的。针对这些问题。需要找到一种分离样本的方法。因此这部分内容就是核(kernel)函数需要考虑的问题。

如上图所示,所谓线性不可分的情况,通常我们都是在二维或低维考虑问题时产生的。如果我们将样本空间引入到高维空间,如上图的右边所示,就会比较容易找到一种超平面来对样本进行分割。因此核函数解决了在低维度的线性不可分问题。同时利用映射的方法而非真正扩展到高维空间,又避免了完全映射到高维时带来的复杂计算量。

总结一下,支持向量机方法,通常分为如下几个步骤。

1.首先,对样本空间利用核函数的方法转换到能线性可分的空间。

2.然后利用最大化间隔的方法获取间隔最大的分割线。进而得出支持向量。

3.最后利用分割线和支持向量,可以对新的样本进行分类预测。

THE END
1.学习SVM,这篇文章就够了!(附详细代码)机器之心而当你把数据点映射一下成右图所示的情况后,现在数据点明显看上去是线性可分的,那么在这个空间上的数据点我们再用前面的SVM算法去处理,就可以得到每个数据点的分类情况了,而这个分类情况也是我们在低维空间的情况。也就是说,单纯的SVM是不能处理非线性问题的,说白了只能处理线性问题,但是来了非线性样本怎么办呢?https://www.jiqizhixin.com/articles/2018-10-17-20
2.机器学习SVM算法介绍及应用消费金融风控联盟求解线性可分支持向量机的最优化问题,很多时候会将它转化为对偶问题来求解,也就是应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,即线性可分支持向量机的对偶算法(dual algorithm)。 为什么要将求解SVM的原始问题转换为对偶问题? 对偶问题将原始问题中的约束转为了对偶问题中的等式约束,降低了算法计算的的复https://www.shangyexinzhi.com/article/7386181.html
3.机器学习SVM算法常见面试题(一)51CTO博客机器学习SVM算法常见面试题(一) 在面试数据分析或算法相关岗位时,支持向量机是常被问到的一个算法,因此本文对于面试中常见的SVM原理以及核函数方面的问题进行了汇总。 1 什么是支持向量机? 支持向量机(SVM,Support Vector Machines)是一种用于分类和回归的监督学习算法。目的是在特征空间中找到间隔最大的超平面。https://blog.51cto.com/u_15479825/4911494
4.基于机器学习算法的SVM优化人工智能机器学习必将会设计算法的优化问题,主要是实现Platt SMO算法,那么,下面本文对SVM的优化进行了介绍,主要实现了Platt SMO算法优化SVM模型,并尝试使用遗传算法框架GAFT对初始SVM进行了优化。 SMO中启发式选择变量 在SMO算法中,我们每次需要选取一对α来进行优化,通过启发式的选取我们可以更高效的选取待优化的变量使得目标函https://www.elecfans.com/rengongzhineng/565974.html
5.机器学习分类算法(三)SVM(支持向量机)算法机器学习在机器学习中,支持向量机(Support Vector Machine,SVM)是经典的分类算法之一,应用领域也非常广,其效果自然也是很厉害的。本章对支持向量机算法进行解读,详细分析其每一步流程及其参数对结果的影响。 支持向量机工作原理 前面已经给大家讲解了一些机器学习算法,有没有发现其中的一些套路呢?它们都是从一个要解决的问题https://download.csdn.net/blog/column/8943490/107214957
6.支持向量机(SupportVectorMachinesSVM)算法笔记(一)本文主要是学习支持向量机的算法原理,并且用Python来实现相关算法。内容包括:SVM概述、线性可分支持向量机、线性支持向量机、非线性不可分向量机、核函数、核技巧、SMO、KKT条件等等,但是还是没有讲完,会继续学习讨论~~ 再次申明:本文的理论知识来自Peter Harrington的《机器学习实战》和李航的《统计学习方法》,非常感https://www.jianshu.com/p/ba59631855a3
7.机器学习算法(一)SVM腾讯云开发者社区SVM 算法特性 机器学习的一般框架: 训练集 => 提取特征向量 => 结合一定的算法(分类器:比如决策树、KNN)=>得到结果 1. SVM 支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了https://cloud.tencent.com/developer/article/2155006