十二、支持向量机SVM

1 优化目标

1.1 回顾

在logistics回归中,我们的预测输出模型是:
在这里插入图片描述
我们希望我们的模型具有以下性能:
在这里插入图片描述
则测试集中某一样本的代价函数是:
在这里插入图片描述
如果求总的代价函数,则应该在式子前面加一个Σ求和。
我们令z = θTx,则当y = 1时的代价函数图像为:
在这里插入图片描述

1.2 代价函数

构建支持向量机,我们需要把代价函数做一个改变,如下图粉色折线,在z = 1 (-1) 处分段。
在这里插入图片描述
左侧曲线记为cost1(z),右侧曲线记为cost0(z)。
带有正则化项的logistics回归的总体代价函数是:
在这里插入图片描述
上式可以看做如下形式:
在这里插入图片描述
则我们定义支持向量机的代价函数为:
在这里插入图片描述
可以看做如下形式
在这里插入图片描述

2 惩罚因子/松弛因子C

与logistics回归不同,在SVM中,我们以 θTx=1(或-1) 作为分类为正反例的阈值,而不以0为阈值,这个差值称为安全距离或安全因子。
在这里插入图片描述
如果我们取较大的C值,例如100000,那么我们在最小化代价函数时,就不得不令cost0(z)或cost1(z)等于0,这样,问题就变成了带约束条件的最优化问题:
在这里插入图片描述
使用支持向量机做分类时会有迭代出图中的黑色直线来分类,这条黑色直线距离两类样本的最小距离都比较大,分类边界距离样本的距离称为支持向量机的间距,这可以增强鲁棒性,当常数C取值非常非常大时,SVM就变成了最大间距分类器
但是最大间距分类器对异常点(噪声)很敏感,如果我们对以下数据集使用最大间距分类器进行分类,那么我们会得到这条粉色的线而不是黑色的线。通过合理设置C的大小,可以得到理想的黑色直线。在这里插入图片描述
所以C的作用与正则化项的λ有着类似的作用,通过调整C的大小,可以对线性不可分的样本进行很好的分类,即

  • 当C趋于无穷大时,这个问题也就是不允许出现分类误差的样本存在,那这就是一个hard-margin SVM问题
  • 当C趋于0时,我们不再关注分类是否正确,只要求间隔越大越好,那么我们将无法得到有意义的解且算法不会收敛

3 核函数

引入核函数的目的是高效的学习复杂非线性函数,将线性不可分问题转换为线性可分的问题
在这里插入图片描述

如果始空间是有限维的,即属性数有限,那么一定存在一个高维特征空间使样本可分
核函数和支持向量机其实是一个比较深奥的问题,单靠这一小节并不能很好说明白,大家可以先继续看这一小节,想深入了解核函数的话可以看我单独做的关于核函数的blog,网址如下:

3.1 什么是核函数

我们以只含有两个特征的分类问题为例,人为的选定三个点l(1), l(2), l(3)
在这里插入图片描述
对于一个给定的实例x,我们定义三个特征为:
在这里插入图片描述
相似度函数similarity(x, l(i))称为核函数,这里我们的相似度函数是高斯函数,所以我们的核函数由称为高斯核。核函数还有其他的表示形式。
将高斯核函数展开(我们忽略了x0项,因为x0表示截距,令其恒等于1):在这里插入图片描述
从上式可以看出,如果x和l(1)很接近的话,f1的值会很接近于1,反之f1的值会很接近于0,绘制一个含有两个变量的高斯核函数的图像:
在这里插入图片描述
通过核函数,我们得到了3个新的特征变量,f1, f2, f3,相当于把原先x的特征映射到了f1, f2, f3所在的特征空间。此例中x本身是二维向量,那么这里我们将其映射到了三维特征空间,同理,我们也可以将x降维映射。
在这里插入图片描述

3.2 如何选择标定点

对于有m个样本的训练集,将每一个样本点设为标定点:在这里插入图片描述
每一个样本点可以计算他和所有标定点的相似度,分别记为f1, f2,…, fm
在这里插入图片描述
因此,我们就有了特征向量f,有时我们会加上常数截距f0
在这里插入图片描述
对于一个给定的训练样本(x(i), y(i)),我们将其映射到f所在的特征空间,
在这里插入图片描述
将f0(i), f1(i), …, fm(i)合为一个特征向量f = [f0(i), f1(i), …, fm(i)]T,则我们得到了用于描述训练样本的新特征向量。
PS:有m+1个特征是因为有m个训 练样本
则我们的代价函数就变成了了:
在这里插入图片描述

3.3 如何选择支持向量机中的参数

3.3.1 松弛因子C

  • 当C趋于无穷大时,这个问题也就是不允许出现分类误差的样本存在。与取小的λ的值的效果是一样,我们将会得到低偏差、高方差的模型,可能出现过拟合。
  • 当C趋于0时,我们不再关注分类是否正确,只要求间隔越大越好。取大的λ的值的效果是一样,我们将会得到高偏差、低方差的模型,可能出现欠拟合。

3.3.2 高斯函数中的σ2

  • σ值比较大,则高斯核比较平滑,此时会出现高偏差和低方差,因为此时的模型受输入x的影响小,变化缓慢。
  • σ值比较大,则高斯核函数有较大斜率,此时会出现低偏差和高方差

4 使用SVM

代价函数的优化求解步骤可以使用现成的函数库直接实现,我们要做的是:

  1. 选择参数C
  2. 选择核函数(若使用高斯核,还需要选择σ)

其他的核函数:线性核函数(又称为无核),高斯核,多项式核,字符串核函数,卡方核函数,直方相交核函数

  1. 若n相较于m很大,则使用logistics回归或者SVM,而不使用核函数
  2. 若n很小,m适中,则使用高斯卷积核的SVM
  3. 若n很小,m很大,则增加特征数量,然后使用logistics回归或者SVM,而不用核函数。

5 多分类

一种方法是使用one vs all法,即有k个类别要分,则使用k次SVM,与logistics回归中解决多分类的方法一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值