更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html
支持向量回归
传统回归模型如线性回归,对于样本(x,y)(x,y) 是直接基于模型,通过预测值f(xi)yf(xi)y 和真实值yy 之间的差别计算损失,并且当f(xi)y=yf(xi)y=y 时损失才为零。
支持向量回归(support vector regression, SVR)则可以容忍f(xi)yf(xi)y 和yy 之间有最多ϵϵ 的偏差,即当|f(xi)y−y|>ϵ|f(xi)y−y|>ϵ 的时候才计算损失,这相当于以f(xi)yf(xi)y 为中心,构建了一个宽度为2ϵ2ϵ 的间隔带,如果样本落入间隔带,则他的分类就是正确的。
一、支持向量回归学习目标
- 支持向量机和支持向量回归的优化问题
- 支持向量回归目标函数的对偶形式
- 支持向量回归模型系数的稀疏性
- 核支持向量回归
- 支持向量机的优缺点
二、支持向量回归详解
2.1 支持向量机目标函数优化问题回顾
线性可分SVM目标函数优化问题为
线性SVM由于在目标函数中加入了松弛因子ξi>0ξi>0 ,目标函数优化问题为
2.2 支持向量回归损失度量函数
支持向量回归由于有一个间隔带,因此它的损失度量函数为
2.3 支持向量回归目标函数优化问题
由于SVR的间隔带是自己引入的,所以SVR的目标函数变为
如果和线性SVM一样引入松弛因子,但是由于我们的误差度量中的|f(xi)−yi|≤ϵ|f(xi)−yi|≤ϵ 是绝对值小于,因此这个不等式其实是两个不等式,则SVR需要引入两个松弛因子ξiξi 和ξi^ξi^ ,则SVR的优化问题将变成
对SVR的优化问题引入拉格朗日乘子μi≥0,μi^≥0,αi≥0,αi^≥0μi≥0,μi^≥0,αi≥0,αi^≥0 ,通过拉格朗日乘子法即可得到拉格朗日函数
2.4 支持向量回归目标函数对偶形式
通过拉格朗日即可得到支持向量回归目标函数的原始形式
可以发现支持向量回归的目标函数的原始形式也满足KTT条件,即可以通过拉格朗日对偶将我们的问题转化为等价的对偶问题,即
首先求优化函数对让w,b,ξi,ξi^w,b,ξi,ξi^ 的极小值,再求拉格朗日乘子μi,μi^,αi,αi^μi,μi^,αi,αi^ 的极大值,即先得到拉格朗日函数L(w,b,α,α^,ξ,ξ^,μ,μ^)L(w,b,α,α^,ξ,ξ^,μ,μ^) 分别对w,b,ξi,ξi^w,b,ξi,ξi^ 求偏导为0可得
将拉格朗日函数对w,b,ξi,ξi^w,b,ξi,ξi^ 的偏导代入拉格朗日函数,即可得SVR的对偶问题
对于上述SVR的目标函数的对偶形式取对数,即可变成最小化目标函数的优化问题,即
对于这个目标函数,依然可以使用SMO算法求出对应的αi,αi^αi,αi^ ,进而求出回归模型的w,bw,b 。
2.5 支持向量回归模型系数的稀疏性
在对支持向量回归的目标函数优化的时候,我们假设该目标函数满足KKT条件,该KKT条件为
从上式可以看出,只有当f(xi)−yi−ϵ−ξi=0f(xi)−yi−ϵ−ξi=0 的时候αiαi 才可以为非0解,并且只有当yi−f(xi)−ϵ−ξi^=0yi−f(xi)−ϵ−ξi^=0 的时候αi^αi^ 才可以为非0解。
首先根据松弛变量的定义,如果|f(xi)−yi−ϵ−ξi|<ϵ|f(xi)−yi−ϵ−ξi|<ϵ ,则样本点落在间隔带中,则ξi=0,ξi^=0ξi=0,ξi^=0 ,既可以得到f(xi)−yi−ϵ−ξi≠0,yi−f(xi)−ϵ−ξi^≠0f(xi)−yi−ϵ−ξi≠0,yi−f(xi)−ϵ−ξi^≠0 ,则可以得到αi=0,αi^=0αi=0,αi^=0 ,则αi^−αi=0αi^−αi=0 。
即只有样本点(xi,yi)(xi,yi) 不落入间隔带中才能使得相应的αiαi 和αi^αi^ 为非0解,并且由于样本点既不能同时在分隔超平面的两边,即f(xi)−yi−ϵ−ξi=0f(xi)−yi−ϵ−ξi=0 和yi−f(xi)−ϵ−ξi^=0yi−f(xi)−ϵ−ξi^=0 不能同时存在,即αiαi 和αi^αi^ 至少有一个为0并且不能同时为0,则αi^−αi≠0αi^−αi≠0 。
假设αiαi 已经通过SMO算法得到,则可以得到w=∑mi=1(αi^−αi)xiw=∑i=1m(αi^−αi)xi ,即可得SVR的分离超平面为
从上式可以看出当样本点落在间隔带,由于αi^−αi=0αi^−αi=0 ,即w=0w=0 ,则ww 不受这些间隔带内点的影响,对于间隔带外的样本点,则会对ww 造成影响,即这些点为SVR的支持向量。并且由于SVR的支持向量仅仅是训练样本的一部分,所以SVR的解ww 具有稀疏性。
SVR对于bb 的求解类似于SVM,由于能得到多个bb 值,所以最后对bb 取平均值。
2.6 核支持向量回归
上一节得到了SVR的分离超平面为
如果我们使用和SVM一样的核技巧,即对SVR训练数据做一个样本映射,即另ϕ(x)ϕ(x) 表示xx 映射后的特征向量。则分离超平面可以变为
其中k(x,xi)k(x,xi) 为核函数。
三、小结
SVR除了可以支持回归问题外,其他方面和SVM差不多,由于SVR也算作是SVM的一个分支,此处不多说什么,参考SVM即可。