文章目录
1 线性可分支持向量机
1.1 概述
1.1.1 支持向量机分类器是什么
找到一个超平面把样本分成多份,但是对于一个数据集来说,让训练误差为0的决策边界可以有无数条。但这些决策边界在测试集上不一定会表现良好。
我们可以把决策边界B向两边平移,直到碰到离这条决策边界最近的方块和圆圈后停下,形成两个新的超平面,分别是b12和b11,并且我们将原始的决策边界移动到 b12和b11的中间,确保到B到b12和b11的距离相等。在b12和b11中间的距离,叫做 这条决策边界的边际(margin),通常记作d 。
支持向量机,就是通过找出边际最大的决策边界,来对数据进行分类的分类器
1.12 算法推导
2 线性支持向量机
不一定分类完全正确的超平面就是最好的,有时候我们可以接受一定的错误。
软间隔和硬间隔:
当两组数据是完全线性可分,我们可以找出一个决策边界使得训练集上的分类误差为0,这两种数据就被称为
是存在”硬间隔“的。当两组数据几乎是完全线性可分的,但决策边界在训练集上存在较小的训练误差,这两种
数据就被称为是存在”软间隔“。
软间隔让决策边界能够忍受一小部分训练误差。这个时候,我们的决策边界就不是单纯地寻求最大边际了,因为对于软间隔地数据来说,边际越大被分错的样本也就会越多,因此我们需要找出一个”最大边际“与”被分错的样本数量“之间的平衡
我们的目标函数变为:
2.2 重要参数C
C越大,如C趋向于正无穷时,此时为了取得最小值,₰i只能取0,此时过渡带最窄,因此C越大,过度带越窄;反之亦然。
C为松弛系数的惩罚项系数。如果C值设定比较大,那SVC可能会选择边际较小的,能够更好地分类所有训
练点的决策边界,不过模型的训练时间也会更长。如果C的设定值较小,那SVC会尽量最大化边界,决策功能会更简单,但代价是训练的准确度。换句话说,C在SVM中的影响就像正则化参数对逻辑回归的。在sklearn中C默认为1,当数据有很多噪声时,此时可以缩小C
3 非线性支持向量机
对于某些无法线性分割的数据,我们可以增加数据维度,如相当于给每个样本新增了z维度,此时我们就可以用平面把这些数据分割开来。
3.1 核函数
3.2 sklearn中关于核函数的参数
svc(kernel = ‘linear’)