概念讲解?
1.什么是支持向量机?#小鲸云课堂的说法
? ? ?支持向量机(support vector machines,SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。除此之外,SVM算法还包括核函数,核函数可以使它成为非线性分类器。在了解SVM算法之前,我们要先认识一下线性分类器。
线性分类器:假设在一个二维线性可分的数据集中,我们要找到一个超平面把两组数据分开,已知的方法有我们已经学过的线性回归和逻辑回归,这条直线可以有很多种,如下图的H1、H2、H3哪一条直线的效果最好呢,也就是说哪条直线可以使两类的空间大小相隔最大呢?
????????我们凭直观感受应该觉得答案是H3。首先H1不能把类别分开,这个分类器肯定是不行的;H2可以,但分割线与最近的数据点只有很小的间隔,如果测试数据有一些噪声的话可能就会被H2错误分类(即对噪声敏感、泛化能力弱)。H3以较大间隔将它们分开,这样就能容忍测试数据的一些噪声而正确分类,是一个泛化能力不错的分类器。因此我们把这个划分数据的决策边界就叫做超平面。离这个超平面最近的点就是”支持向量”,点到超平面的距离叫做间隔,支持向量机的意思就是使超平面和支持向量之间的间隔尽可能的大,这样才可以使两类样本准确地分开。????????????????
2.支持向量机的种类:
a) 线性可分SVM:当数据线性可分的时候,通过硬间隔最大化可以学习得到一个线性分类器,即硬间隔SVM,如上图的H3
b) 线性SVM:当训练数据不能线性可分但是可以近似线性可分时,通过软间隔(soft margin)最大化也可以学习到一个线性分类器,即软间隔SVM
c) 非线性SVM:
当训练数据线性不可分时,通过使用核技巧(kernel trick)和软间隔最大化,可以学习到一个非线性SVM。
?3.超平面与间隔:
?我们从图上可以看到,这条中间的实线代表的超平面离直线两边的数据的间隔最大,对训练集的数据的噪声有最大的包容力。
? ? ? ? ?对一个分类问题,我们假设,
????????我们知道,所谓的支持向量,就是使得上式等号成立,即最靠近两条虚边界线的向量。为什么像上面的式子那么假设呢?其实是为了方便计算。?
?
? ? ? ? 更详细的理论推导可以看看这里:??支持向量机(SVM)——原理篇
实际操作
????????由于 SVM 算法本身的实现非常复杂,所以不研究如何实现 SVM,而是采用 sklearn 库来学习 SVM 的应用问题。
参考资料
支持向量机(SVM)——原理篇【理论强化】顺序二#看完顺序一看顺序二会顺畅许多
什么是支持向量?【精品入门】顺序一
机器学习算法(一)SVM ?
|