支持向量机(SVM)
支持向量机SVM介绍
什么是支持向量机
所谓"支持向量"是指那些在间隔区域边缘的训练样本点,”机“是指算法。
就是要找到具有最大间隔的间隔面,实际上解决的是一个最优分类器设计的问题。
所以决定超平面(超平面方程)所在位置的关键,就在于位处于样本集边缘的部分样本数据。
问题分析:
- 目的:找到一个最优的分类器,换言之,找到一个超平面,使得分类间隔最大
- 优化的目标函数:分类间隔。需要使得分类间隔最大
- 优化的对象:分类超平面(决策平面)。通过调整分类超平面的位置,使得间隔最大,实现优化目标
支持向量机的相关概念
超平面
超平面(Hyperplane)是n维欧氏空间中余维度等于1的线性子空间,二维空间中即为一条直线,三维空间中即为一个二维平面。
换成更容易理解的话就是:一个n维的空间,它的超平面就是一个n-1维的空间。
间隔
间隔实际上就是从支持向量对应的点到分类超平面的垂直距离的二倍,即有:W = 2d
优化问题
要找到支持向量(即虚线对应的超平面上的样本点),要求支持向量到分类决策面的距离d 最大,即能够满足最优分类器的要求(面向线性可分的记录)。
找到一组变量ω,γ 使得间隔W = 2d
最大。
核函数与松弛变量
线性不可分的情况
线性不可分的情况不能再直接使用之前求出的线性可分的超平面,而是考虑把样本映射到一个更高维的空间中,希望在这个高维空间中线性可分,即可使用之前线性可分的思路,构造一个分类超平面。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JXgxoRzl-1626877649260)(D:\QianFeng\博客\机器学习\阿里云课堂\机器学习算法详解\image-线性不可分映射.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2lhqr3dy-1626877649264)(D:\QianFeng\博客\机器学习\阿里云课堂\机器学习算法详解\imag-线性不可分映射2.png)]
(理论上)如果原始空间是有限维,即属性数有限,一定存在一个高维特种空间使样本线性可分。
核函数
支持向量机通过某非线性变化Φ(x),将输入空间映射到高维特征空间。如果支持向量机的求解只用到内积运算,而在低维输出空间又存在某种函数K(x,x’),他恰好等于在高维空间中这个内积,即K(x,x') = <Φ(x).Φ(x')>
,则无需再计算复杂的非线性变换,而由函数K(x,x’) 直接得到非线性变化的内积,简化计算。函数K(x,x')
称为核函数
核函数的分类和选择
常见的核函数类型
- Linear Kernel:线性内核
- Polynomial Kernel:多项式内核
- Gaussian radial basis Kernel(RBF):高斯径向基核
- Sigmoid Kernel
选择核函数:
- 无明确可行的指导原则
- 通过先验知识选择核函数
- 使用交叉验证法,尝试不同核函数,选择误差最小的
- 混合核函数法,将不同核函数混合起来使用
- 最常用的是RBF,其次是线性核
异常点造成的线性不可分
线性不可分的样本经过映射到高维空间后,找到分类超平面的几率大大增加。仍然又可能有一些情况很难处理,比如样本数据的结构本身不是非线性的,但是由于噪声带来一些偏离正常位置较远的点(异常点 Ourlier) 有可能对模型造成很大的影响。(异常点对分类超平面造成影响)
松弛变量(对影响分类超平面的异常点的处理方式)
因为需要考虑异常点,约束条件要适当放宽。
SVM多分类
SVM是为二分类问题设计的,但可以通过构造合适的多分类器实现多分类问题:
-
直接法:直接修改目标函数,将多分类面的参数求解合并到一个最优化问题中。
-
间接法:通过有效的组合多个二分类SVM分类器,从而实现多分类。
-
一对多法:将样本分为某类样本和其他类别的样本,进行训练得到K个SVM,将未知样本归进具有最大分类函数值的那类
- 优点:训练K个SVM,数量少,分类速度快
- 缺点:每次训练全部样本,且负样本数量远远大于正样本,增加新类别则需要重新训练所有模型
-
一对一法:任意两个样本都设计一个SVM,需要
k(k-1)/2
个分类器,当对一个未知样本进行分类时,取所有分类器中得票最多那一类。- 优点:不需要训练所有模型,只需关注新增模型即可
- 缺点:模型个数太多,训练、预测时间都比较长。
-
当对一个未知样本进行分类时,取所有分类器中得票最多那一类。
- 优点:不需要训练所有模型,只需关注新增模型即可
- 缺点:模型个数太多,训练、预测时间都比较长。