十七、SVR 回归问题的SVM
SVM和决策树一样,可以将模型直接应用到回归问题中;在SVM的分类模型(SVC)中,目标函数和限制条件如下:
在简单的线性回归当中,我们最小化一个正则化的误差函数:
为了得到稀疏解,__二次误差函数__被替换为一个 __ε-不敏感误差函数__(ε-insensitive error function)。
如果预测值hθ(x(i)) 与实际值y(i)之间的差小于ε, 这个误差函数给出的误差为0,ε-不敏感误差函数可以写为如下形式:
解释: 如果 |真实值-预测值| 的误差在一个区域内(ε) ,则认为没有误差。即当前预测损失值为0;
在不敏感区域之外,会有一个与误差相关的线性代价:
红色图像 是ε-不敏感误差函数,斜率=正负1;
绿色图像 是最小二乘法损失函数,即误差的平方和函数;
于是我们最小化正则化的误差函数,写为一般形式:
与SVM中的软间隔一样,通过引入松弛变量的方式,我们可以重新表达最优化问题。
对于每个数据点xi ,我们现在需要两个松弛变量ζi≥0 和ζ^i≥0 ,其中:
ζi>0 对应于 yi > hθ(x(i)) + ε 的数据点;
ζ^i>0 对应于 yi < hθ(x(i)) - ε 的数据点;
目标点位于hθ(x(i)) - ε ≤ yi ≤ hθ(x(i)) + ε 管道内的条件是 ,只要松弛变量不为0即可。
对应的条件变为了:
这样,SVR回归的误差函数就可以写成:
通过几何意义来帮助理解上述概念:
1、预测值 hθ(x(i))是红色的线,粉红色的区域是由__不敏感误差ε__构成的缓冲区。我们认为当预测值蓝点落在__不敏感误差ε__构成的粉色缓冲区时,没有损失。
2、__松弛变量ζ__是预测值到缓冲区域上边界的距离,__松弛变量ζ^__是预测值到缓冲区域下边界的距离。
3、我们希望预测值落在缓冲区内部(即上面说的管道),这样损失为0。
4、如果__不敏感误差ε=0__,那么缓冲区就只有 hθ(x(i))这条红线了,ε=0表示不允许预测存在错误的缓冲区。
加入松弛因子ξ>0,从而我们的目标函数和限制条件变成:
构造拉格朗日函数:
原始函数:
转化为对偶函数:
首先来求优化函数对于w、b、ξ的极小值,通过求导可得:
将w、b、ξ的值带入函数L中,就可以将L转换为只包含β的函数,从而我们可以得到最终的优化目标函数为下面的式子:
__PS:__对于β的求解照样可以使用SMO算法来求解;