支持向量机(SVM)全称Support Vecor Machine,谈及机器学习无论回归还是分类,一定都会拿它进行测试,它是机器学习算法中最受关注的算法之一。
这里本文不过多的去研究它的数学推导公式,而是浅尝辄止的去探究一下它的原理和作用,以及在sklearn当如如何高效的使用。
想要去推导它数据公式的朋友可以去查看刘建平的博客
1、SVM是如何工作的
SVM学习的基本想法是求解能够正确划分训练数据集(下图中实心黑点与空心点)并且几何间隔最大的分离超平面。如下图所示, w ⋅ x + b = 0 w·x+b=0 w⋅x+b=0即为分离超平面作为决策边界,对于线性可分的数据集来说,这样的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。
注:在几何中,超平面是一个空间的子空间,它是维度比所在空间小一维的空间。 如果数据空间本身是三维的,则其超平面是二维平面,而如果数据空间本身是二维的,则其超平面是一维的直线。在二分类问题中,如果一个超平面能够将数据划分为两个集合,其中每个集合中包含单独的一个类别,我们就说这个超平面是数据的“决策边界“。
SVM目标是"找出边际最大的决策边界",听起来是一个十分熟悉的表达,这是一个最优化问题,而最优化问题往往和损失函数联系在一起。和逻辑回归中的过程一样,SVM也是通过最小化损失函数来求解一个用于后续模型使用的重要信息:决策边界。
这里梳理一下这整个过程(当然你要死有兴趣的话,可以去看论文再自己推导一下):
- 定义决策边界的数学表达,并基于此表达定义分类函数
- 为寻找最大边际引出损失函数: m i n 1 2 ∣ ∣ w ∣ ∣ 2 min \;\; \frac{1}{2}||w||^2 \; min