支持向量机(SVM)原理小结(3)支持向量回归SVR

  • 1. 支持向量回归(SVR)
  • 1.1 学习算法—对偶形式
  • (1)求 min ⁡ w , b , ξ , ξ ^ L ( w , b , ξ , ξ ^ , α , α ^ , μ , μ ^ ) \min\limits_{w,b,\xi,\hat\xi} L(w, b, \xi, \hat\xi, \alpha, \hat\alpha, \mu, \hat\mu) w,b,ξ,ξ^minL(w,b,ξ,ξ^,α,α^,μ,μ^)
  • (2)求 min ⁡ w , b , ξ , ξ ^ L ( w , b , ξ , ξ ^ , α , α ^ , μ , μ ^ ) \min\limits_{w,b,\xi,\hat\xi}L(w, b, \xi, \hat\xi, \alpha, \hat\alpha, \mu, \hat\mu) w,b,ξ,ξ^minL(w,b,ξ,ξ^,α,α^,μ,μ^) α , α ^ \alpha,\hat\alpha α,α^的极大,即对偶问题
  • 1.2 核函数
  • 1.3 支持向量
  • 2. 模型评价
  • 完整代码地址
  • 参考


SVM系列文章:

支持向量机(SVM)原理小结(1)线性支持向量机支持向量机(SVM)原理小结(2)非线性支持向量机支持向量机(SVM)原理小结(3)支持向量回归SVR

本博客中使用到的完整代码请移步至: 我的github:https://github.com/qingyujean/Magic-NLPer,求赞求星求鼓励~~~


1. 支持向量回归(SVR)

传统回归问题例如线性回归中,一般使用模型python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机的输出与真实值python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_02的差别来计算损失,如均方损失MSE,当python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_03python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_02完全一样时损失才为0。

而SVR假设能容忍$f(x)$和$y$之间最多由python中svr模型回归 网格搜索参数优化 svr回归原理_github_05的偏差,即python中svr模型回归 网格搜索参数优化 svr回归原理_github_06时才计算损失。这相当于以python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机为中心,构建了一个宽度为python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_08间隔带(见下图),如果训练样本落在间隔带内部,则认为预测正确,无损失

python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_09

则SVR问题可形式化为:

python中svr模型回归 网格搜索参数优化 svr回归原理_github_10

对每个样本点python中svr模型回归 网格搜索参数优化 svr回归原理_github_11引入一个松弛变量python中svr模型回归 网格搜索参数优化 svr回归原理_github_12,使得约束变为:python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_13,同时对每个松弛变量支付一个代价python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_14这里的代价python中svr模型回归 网格搜索参数优化 svr回归原理_github_15,其实就是不满足约束的程度:满足约束的即在间隔带内部的,代价为0;勉强满足约束的即点落在间隔带外边附近的,代价比较小,完全背离约束的即落在间隔带外边而且隔的很远,代价最大)。此时就得到如下的约束最优化的原始问题:

python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_16

python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_17

若允许间隔带两侧的松弛程度不同,即进入2个松弛变量python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_18,那么就得到如下的约束最优化的原始问题:

python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_19

1.1 学习算法—对偶形式

首先写出有约束最优化的原始问题拉格朗日无约束优化函数

python中svr模型回归 网格搜索参数优化 svr回归原理_github_20

其中python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_21,称为拉格朗日乘子。

约束最优化的原始问题可以表示为 拉格朗日极小极大问题python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_22

由于python中svr模型回归 网格搜索参数优化 svr回归原理_github_23和约束条件函数为连续可微的凸函数,且满足KKT条件,则原始问题的解与对偶问题的解是等价的,那么可以通过求解对偶问题来求解原始问题。

原始问题的对偶问题拉格朗日极大极小问题python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_24

(1)求python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_25

python中svr模型回归 网格搜索参数优化 svr回归原理_github_23分别对python中svr模型回归 网格搜索参数优化 svr回归原理_github_27,python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_28python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_29求偏导数,并令其等于0。

python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_30

python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_31

代入得

python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_32

python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_33

(2)求python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_34python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_35的极大,即对偶问题

python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_36

等价于(利用等式python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_37python中svr模型回归 网格搜索参数优化 svr回归原理_github_38消去python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_39python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_40,并将求max转化为求min):

python中svr模型回归 网格搜索参数优化 svr回归原理_github_41

上式即为 对偶最优化问题

对偶最优化问题对python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_35的解设为python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_43,那么原始问题最优化问题的解python中svr模型回归 网格搜索参数优化 svr回归原理_github_44也可求出。

即求得

python中svr模型回归 网格搜索参数优化 svr回归原理_github_45

任选一个python中svr模型回归 网格搜索参数优化 svr回归原理_github_46的分量python中svr模型回归 网格搜索参数优化 svr回归原理_github_47满足python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_48用来求python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_49(因为python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_50,而python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_51,所以python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_52):

python中svr模型回归 网格搜索参数优化 svr回归原理_github_53

则最后的SVR模型可表示为:

python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_54

分类决策函数可以写成

python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_55

对偶算法中,python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_03只依赖于输入python中svr模型回归 网格搜索参数优化 svr回归原理_github_57 和 训练样本python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_58的内积,而上式称为 线性支持向量回归的对偶形式

1.2 核函数

考虑非线性映射python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_59核函数python中svr模型回归 网格搜索参数优化 svr回归原理_github_60,则容易得到非线性支持向量回归的对偶形式

python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_61

其中python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_62核函数

1.3 支持向量

注意对偶问题中python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_63的求解式:python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_64,只有python中svr模型回归 网格搜索参数优化 svr回归原理_github_65才对求解python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_63有影响(保证了解的 稀疏性,最终模型仅与支持向量有关),所以满足python中svr模型回归 网格搜索参数优化 svr回归原理_github_65的样本python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_58 就称为 支持向量

由KKT互补条件知,python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_69,当python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_70时,则一定有python中svr模型回归 网格搜索参数优化 svr回归原理_github_71,即python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_72,同理,如要python中svr模型回归 网格搜索参数优化 svr回归原理_支持向量机_73,则一定有python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_74,即python中svr模型回归 网格搜索参数优化 svr回归原理_github_75。换言之,如若要python中svr模型回归 网格搜索参数优化 svr回归原理_线性回归_76python中svr模型回归 网格搜索参数优化 svr回归原理_github_77不为0,当且仅当即实例python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_58一定 不在python中svr模型回归 网格搜索参数优化 svr回归原理_github_79间隔带内部

此外,因为实例点一定在python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_80间隔带的某一侧,所以python中svr模型回归 网格搜索参数优化 svr回归原理_github_71python中svr模型回归 网格搜索参数优化 svr回归原理_机器学习_74不可能同时成立,所以python中svr模型回归 网格搜索参数优化 svr回归原理_github_83中至少必有一个为0。

2. 模型评价

SVM系列至此就介绍完了,这里对该模型做一个评价总结。评价内容摘自刘建平老师的支持向量机原理(五)线性支持回归

SVM算法是一个很优秀的算法,在集成学习和神经网络之类的算法没有表现出优越性能前,SVM基本占据了分类模型的统治地位。目前则是在大数据时代的大样本背景下,SVM由于其在大样本时超级大的计算量,热度有所下降,但是仍然是一个常用的机器学习算法。

优点

  • 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
  • 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
  • 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
  • 样本量不是海量数据的时候,分类准确率高,泛化能力强。

缺点

  • 如果特征维度远远大于样本数,则SVM表现一般。
  • SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
  • 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
  • SVM对缺失数据敏感。

完整代码地址

完整代码请移步至: 我的github:https://github.com/qingyujean/Magic-NLPer,求赞求星求鼓励~~~

最后:如果本文中出现任何错误,请您一定要帮忙指正,感激~

参考

[1] 西瓜书-机器学习  周志华
[2] 支持向量机原理(五)线性支持回归  刘建平