支持向量回归机

徐大白
3个月前 阅读 11 点赞 0

本篇就对如何将SVM用于回归模型做一个总结。重点关注SVM分类和SVM回归的相同点与不同点。


SVR损失函数度量

SVM分类模型中,我们的目标函数是让权值的二范数最小,同时让各个训练集中的点尽量远离自己类别一边的的支持向量,即



如果是加入一个松弛变量ξi≥0,则目标函数是



对应的约束条件变成:



但是我们现在是回归模型,优化目标函数可以继续和SVM分类模型保持一致为1/2*||w||2,但是约束条件呢?不可能是让各个训练集中的点尽量远离自己类别一边的的支持向量,因为我们是回归模型,没有类别。对于回归模型,我们的目标是让训练集中的每个点(xi,yi),尽量拟合到一个线性模型yi =w∙ϕ(xi)+b。对于一般的回归模型,我们是用均方差作为损失函数,但是SVR不是这样定义损失函数的。


SVR需要我们定义一个常量ϵ>0,对于某一个点(xi,yi),如果|yi−w∙ϕ(xi)−b|≤ϵ,则完全没有损失;如果|yi−w∙ϕ(xi)−b|>ϵ,则对应的损失为|yi−w∙ϕ(xi)−b|−ϵ,这个均方差损失函数不同,如果是均方差,那么只要yi−w∙ϕ(xi)−b≠0,那么就会有损失。


如下图所示,在蓝色条带里面的点都是没有损失的,但是外面的点的是有损失的,损失大小为红色线的长度。



总结下,SVR的损失函数度量为:



SVR目标函数的原始形式

SVM回归模型的损失函数度量在加入松弛变量之后变为:



和SVM分类模型相似,我们可以用拉格朗日函数将目标优化函数变成无约束的形式。


SVR目标函数的对偶形式

SVR目标函数的原始形式,我们的目标是



和SVM分类模型一样,这个优化目标也满足KKT条件,也就是说,我们可以通过拉格朗日对偶将我们的优化问题转化为等价的对偶问题来求解如下:




我们可以先求优化函数对于w,b,ξi∨,ξi∧的极小值, 接着再求拉格朗日乘子α∨,α∧,μ∨,μ∧的极大值。


首先我们来求优化函数对于w,b,ξi∨,ξi∧的极小值,这个可以通过求偏导数求得:



最终得到的对偶形式为:



对目标函数取负号,求最小值可以得到和SVM分类模型类似的求极小值的目标函数如下:




SVR系数的稀疏性

在SVM分类模型中,我们的KKT条件的对偶互补条件为:



而在回归模型中,我们的对偶互补条件类似如下:



根据松弛变量定义条件,如果|yi−w∙ϕ(xi)−b|<ϵ,我们有ξi∨=0,ξi∧=0,此时



这样要满足对偶互补条件,只有αi∨=0,αi∧=0。我们定义样本系数系数



根据上面w的计算式



我们发现此时βi=0,也就是说w不受这些在误差范围内的点的影响。对于在边界上或者在边界外的点,αi∨≠0,αi∧≠0,此时βi≠0。



SVM 算法小结

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


优点

1) 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。


2) 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。


3) 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。


4) 样本量不是海量数据的时候,分类准确率高,泛化能力强。


不足

1) 如果特征维度远远大于样本数,则SVM表现一般。


2) SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。


3)非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。

 

4)SVM对缺失数据敏感。


| 0
登录后可评论,马上登录吧~
评论 ( 0 )

还没有人评论...

相关推荐