支持向量回归预测怎么做_机器学习之2——支持向量机(SVM)与支持向量回归(SVR)...

给定训练样本集

,
,分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开,但能将训练样本分开的划分超平面可能有很多,我们需要找到分类最“可靠”的一条。

1407e29c73f1ad643322ddc75e8f2bb2.png

直观上,应该找位于训练样本“正中间”的一条,如上图粗线所示,因为该划分超平面对训练样本局部扰动的“容忍”性最好,即划分超平面所产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。

超平面划分标准

在样本空间中,划分超平面可通过的线性方程:

,其中
为超平面划分线的法向量,决定了超平面的方向,
为位移项,决定超平面与原点之间的距离,显然,划分超平面可被法向量
和位移
确定,将其即为
,样本空间任意点
到超平面
的距离为:

假设超平面

能将训练样本正确分类,即对于
,若
,则
;若
,则

这里将样本与划分线之间的最小间隔定为1。

这里为什么将间距定为1呢?因为便于计算,原始间隔为未知数

,如果存在某划分线
可以成功将训练样本正确分类,那么总会存在缩放变换
使得上式成立,即左右两边同时除以间隔距离

距离超平面最近的这几个训练样本点使得上式成立,它们被称为“支持向量”。两个异类支持向量到超平面的距离之和为:

,被称为“间隔”。

3c282f425f659ed190fbf34f955b8b5e.png

想找到具有“最大间隔”(maximum margin)的划分超平面,也就是要找到能满足上式中约束的参数

,使得
最大,即:

,

对偶问题

那么我们知道支持向量机的基本型之后,该如何求解得到最优的

呢?,上式其实是一种凸二次规划问题,可以利用拉格朗日乘子法得到其“对偶问题”,对上式每条约束添加拉格朗日乘子
,可以改写为:

的偏导为零可得到:

再将其带入拉格朗日乘子式中可以得到:

求解出

后,求出
即可得到模型:

从对偶的问题可以解出

是拉格朗日乘子,对应着训练样本
,注意到不等式约束,上述过程满足KKT条件:

对任意训练样本

,总有
或者
。若
,则该样本不会出现,不会对
有任何影响。若
,则必有
,所对应的样本点位于最大间隔边界上,是一个支持向量。

这展现了支持向量机一个重要的性质:大部分训练样本在训练完成后不需要保留,最终模型仅仅与支持向量有关。

SMO(Sequential Minimal Optimization)

基本思想:固定

之外的所有参数,然后求
上的极值,由于存在约束
,若固定
之外的其他变量,则
可由其他变量导出,于是,SMO每次选择两个变量
,并固定其他参数,这样参数初始化后,SMO不断执行如下两个步骤直到收敛:
  • 选取一对需更新的变量
  • 固定
    以外的参数,求解并获得更新后的

注意到只需选取的

中有一个不满足KKT条件,目标韩数就会在迭代后增大。直观上看,KKT条件违背的程度越大,则变量更新后可能导致的目标函数值增幅越大,于是,SMO先选取违背KKT条件程度最大的变量,第二个变量应选择一个使目标函数值增长最快的变量。SMO的启发式:使选取的两变量所对应的样本之间的间隔最大。一种直观解释是,这样的两个变量有很大的差别,与对两个相似的变量进行更新对比,对它们进行更新后会带给目标函数值更大的变化。

SMO算法之所以高效,恰恰由于在固定其他参数后,仅优化两个参数的过程能做到非常高效,具体来说,仅考虑

时,上式的约束可重新写成:

,其中
是使
成立的常数,用
,消去变量
可得到关于
的单变量二次规划问题,仅有约束
,这次的二次规划问题具有闭式解。

注意到对于任意支持向量

都有
,即:

,
为所有支持向量下标集。然后使用所有支持向量求解的平均值:

核函数

前面所描述的都是基于在平面上训练样本是线性可分的,那么如果训练数据在该平面上不可分怎么办?

可以将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分,如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分

为x映射到高维后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为:
,其中
是模型参数,则有:

其对偶问题:

求解上式需要计算

,这是样本
映射到特征空间之后的内积。由于特征空间维数可能很高,甚至可能是无穷维,因此直接计算是困难的,可以设想一个函数:

核技巧

在特征空间的内积等于它们在原始样本空间中通过函数
计算的结果。

原式可写为:

求解后得到:

常用核函数

  • 线性核:
  • 多项式核:
    为多项式的次数。
  • 高斯核:
    为高斯核的带宽
  • 拉普拉斯核:
  • Sigmoid核:
    为双曲正切函数,

软间隔与正则化

我们一直假定训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开,在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分,即便恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合造成的。

缓解支持向量机过拟合问题的一个办法是:允许支持向量机在一些样本上出错。引入软间隔:

6cffe0afff799b4940be8693d4cb2ec0.png
软间隔允许一些样本间隔小于1

前面所述的,即所有样本都必须划分正确,称为“硬间隔”。软间隔允许某些样本不满足约束:

在最大化间隔的同时,不满足约束的样本应尽可能的少,于是,优化目标可以写为:

,
是01损失函数。

无穷大时,则会迫使所有样本均满足约束
,当
取有限值时,则允许一些样本不满足约束。

在最小化上式优化目标时

但是

函数数学性质不好,非凸,不易直接求解,需要用其他函数来代替
,称为“替代损失”。它们通常是凸函数具有较好的数学性质:
  • hinge损失:
  • 指数损失:
  • 对率损失:

若采用hinge损失,则变成:

引入松弛变量

,可重写:

每个样本对应一个松弛变量,用以表征该样本不满足约束的程度,通过拉格朗日乘子法:

偏导为零得到:

类似,对软间隔支持向量机,KKT要求:

对于任意样本

,总有
。若
,则该样本不会对
产生影响,
,则必有
,该样本是支持向量。由上式中
可知,若
,进而有
,该样本恰在最大间隔边界上,若
,则有
,此时若
则该样本落在最大间隔内部,若
则该样本被分类错误。

软间隔支持向量机的最终模型仅与支持向量有关,即通过hinge损失函数仍保持稀疏性。

SVM优缺点

优点:

  • 可以使用核函数向高维空间进行映射
  • 核函数可解决非线性的分类
  • 分类思想简单,将样本与决策面间隔最大化
  • 分类效果较好

缺点:

  • 对大规模数据训练比较困难
  • 无法直接支持多分类,可使用间接方法如OvO,OvR等。

回归问题中的SVM(SVR)

在回归问题中,最常用的误差函数为最小平方和误差函数,那么带有正则化的最小平方和误差函数的形式如下:

我们将二次误差函数替换成

-不敏感误差函数。

最小化正则化误差函数:

,C为正则化系数

引入松弛变量,注意,在回归问题中,每个数据点

需要两个松弛变量
,其中
对应于
管道上方),而
对应于
数据点(
管道下方)。
管道如下图:

6d652048f8fea79cc682c8d83787f756.png
SVM回归中的回归曲线以及误差不敏感管道

对于

管道上方的点,
,位于管道下方的点,
,而对于管道内部的点,
。引入松弛变量(不为0)使得数据点能够位于管道之外,对应条件为

重新更新SVR的误差函数:

为了最小化误差函数,引入拉格朗日乘子法,对式子进行有约束的优化:

通过对拉格朗日函数关于

求导数为0:

代入原式中,可以得到新的式子:

这里引入了核函数,

我们可以得到相应的KKT条件:

从KKT条件可以看出来,系数

非零情况下,
,即数据点要么位于管道上边界上(
),要么在边界以上,类似的
非零表示,
,即数据点位于下边界上或者下边界的下方。在管道内部的点都有

注意到上面关于

求导为0得出的式子,并结合
对于新的输入变量,可以使用下式得到

公式(1)中的b的值很好求,因为在KKT条件中,

(因为
),因此必有
,即
,那么可以得到:

(这种变换参考了w令导数为0后得出的式子)

另一种用于回归的SVM方法,不固定不敏感区域

的宽度,而是固定位于管道外部的数据点的比例
,最大化公式:

可以证明至多有

个数据点落在不敏感管道外部,至少有
个数据点是支持向量位于管道上或管道外部
的值一般通过交叉验证来确定

参考书籍:

《机器学习》—周志华

《Pattern Recognition And Machine Learning》——Christopher M. Bishop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值