1. SVR模型
SVR应用链接,处理波士顿房价预测问题
在SVM分类模型中,我们的目标函数是让21∣∣w∣∣2最小,同时让各个训练集中的点尽量远离自己类别一边的的支持向量,即yi(w⋅ϕ(xi)+b)≥1。若加入一个松弛变量ξi≥0,则目标函数为:
21∣∣w∣∣22+Ci=1∑mξi(式1)
约束条件为:
yi(w⋅ϕ(xi)+b)≥1−ξi(式2)
现在用于回归模型,优化目标函数可以继续和SVM分类模型保持一致为21∣∣w∣∣22,但是约束条件不可能是让各个训练集中的点尽量远离自己类别一边的的支持向量,因为我们是回归模型,没有类别。对于回归模型,我们的目标是让训练集中的每个点(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模型的损失函数度量为:
err(xi,yi)={0∣yi−w⋅ϕ(xi)−b∣≤ϵ∣yi−w⋅ϕ(xi)−b∣−ϵ∣yi−w⋅ϕ(xi)−b∣>ϵ(式3)
2. SVR模型目标函数的原始形式
定义目标函数如下:
min21∣∣w∣∣22s.t∣yi−w⋅ϕ(xi)−b∣≤ϵ(i=1,2,...m)(式4)
和SVM模型相似,SVR模型也可以对每个样本(xi,yi)加入松弛变量ξi≥0, 但是由于我们这里用的是绝对值,实际上是两个不等式,也就是说两边都需要松弛变量,定义为ξi∨,ξi∧, 则SVR模型的损失函数度量在加入松弛变量之后变为:
min21∣∣w∣∣22+Ci=1∑m(ξi∨+ξi∧)s.t.−ϵ−ξi∨≤yi−w⋅ϕ(xi)−b≤ϵ+ξi∧ξi∨≥0,ξi∧≥0(i=1,2,...,m)(式5)
依然和SVM分类模型相似,用拉格朗日函数将目标优化函数变成无约束的形式,如下:
L(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)=21∣∣w∣∣22+Ci=1∑m(ξi∨+ξi∧)+i=1∑mα∨(−ϵ−ξi∨−yi+w⋅ϕ(xi)+b)+i=1∑mα∧(yi−w⋅ϕ(xi)−b−ϵ−ξi∧)−i=1∑mμ∨ξi∨−i=1∑mμ∧ξi∧(式6)
其中 μ∨≥0,μ∧≥0,αi∨≥0,αi∧≥0,均为拉格朗日乘子。
3. SVR模型的目标函数的对偶形式
根据SVR模型的目标函数的原始形式,我们的目标是:
min(w,b,ξi∨,ξi∧)max(μ∨≥0,μ∧≥0,αi∨≥0,αi∧≥0)L(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)(式7)
和SVM分类模型一样,这个优化目标也满足KKT条件,也就是说,我们可以通过拉格朗日将优化问题转化为等价的对偶问题来求解如下:
max(μ∨≥0,μ∧≥0,αi∨≥0,αi∧≥0)min(w,b,ξi∨,ξi∧)L(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)(式8)
可以先求优化函数对于w,b,ξi∨,ξi∧的极小值, 接着再求拉格朗日乘子α∨,α∧,μ∨μ∧的极大值。
首先我们来求优化函数对于w,b,ξi∨,ξi∧的极小值。
这个可以通过求偏导数求得:
∂w∂L=0⇒w=i=1∑m(αi∧−αi∨)ϕ(xi)(式9)
∂b∂L=0⇒i=1∑m(αi∧−αi∨)=0(式10)
∂ξi∨∂L=0⇒C−α∨−μ∨=0(式11)
∂ξi∧∂L=0⇒C−α∧μ∧=0(式12)
好了,把上面4个式子带入L(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)消去w,b,ξi∨,ξi∧了。
最终得到的对偶形式为:
α∨,α∧max−i=1∑m(ϵ−yi)αi∧+(ϵ+yi)αi∨)−21i=1,j=1∑m(αi∧−αi∨)(αj∧−αj∨)Kijs.t.i=1∑m(αi∧−αi∨)=00<αi∨<C(i=1,2,...m)0<αi∧<C(i=1,2,...m(式13)
取负号求最小值可以得到和SVM分类模型类似的求极小值的目标函数如下:
α∨,α∧min21i=1,j=1∑m(αi∧−αi∨)(αj∧−αj∨)Kij+i=1∑m(ϵ−yi)αi∧+(ϵ+yi)αi∨s.t.i=1∑m(αi∧−αi∨)=00<αi∨<C(i=1,2,...m)0<αi∧<C(i=1,2,...m)(式14)
对于此目标函数,可以用SMO算法来求出对应的α∨,α∧,进而求出我们的回归模型系数w,b。
4.SVR模型系数的稀疏性
在SVM分类模型中,我们的KKT条件的对偶互补条件为:αi∗(yi(w⋅ϕ(xi)+b)−1+ξi∗)=0,而在回归模型中,我们的对偶互补条件类似如下:
αi∨(ϵ+ξi∨+yi−w⋅ϕ(xi)−b)=0(式15)
αi∧(ϵ+ξi∧−yi+w⋅ϕ(xi)+b)=0(式16)
根据松弛变量定义条件,如果∣yi−w⋅ϕ(xi)−b∣<ϵ,我们有ξi∨=0,ξi∧=0,此时ϵ+ξi∨+yi−w⋅ϕ(xi)−b=0,ϵ+ξi∧−yi+w⋅ϕ(xi)+b=0这样要满足对偶互补条件,只有αi∨=0,αi∧=0。定义样本系数系数
βi=αi∧−αi∨(式17)
根据上面w的计算式w=∑i=1m(αi∧−αi∨)ϕ(xi),发现此时βi=0,也就是说w不受这些在误差范围内的点的影响。对于在边界上或者在边界外的点,αi∨=0,αi∧=0,此时βi=0。
推导参考链接
5. SVM 算法小结
SVM算法是一个很优秀的算法,在集成学习和神经网络之类的算法没有表现出优越性能前,SVM基本占据了分类模型的统治地位。目前则是在大数据时代的大样本背景下,SVM由于其在大样本时超级大的计算量,热度有所下降,但是仍然是一个常用的机器学习算法。SVM算法的主要优点有:
- (1)高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
- (2) 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
- (3) 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
- (4)样本量不是海量数据的时候,分类准确率高,泛化能力强。
SVM算法的主要缺点有:
- (1) 如果特征维度远远大于样本数,则SVM表现一般。
- (2) SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
- (3)非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
- (4)SVM对缺失数据敏感。
6.SVR模型应用
使用SVR处理波士顿房价预测问题
链接:https://blog.csdn.net/AIHUBEI/article/details/105105688