首页IT科技支持向量机做回归代码(【机器学习】支持向量回归)

支持向量机做回归代码(【机器学习】支持向量回归)

时间2025-06-20 17:01:25分类IT科技浏览4312
导读:有任何的书写错误、排版错误、概念错误等,希望大家包含指正。...

有任何的书写错误            、排版错误                     、概念错误等               ,希望大家包含指正               。

在阅读本篇之前建议先学习:

【机器学习】支持向量机【上】硬间隔

【机器学习】支持向量机【下】软间隔与核函数

支持向量回归

支持向量回归(support vector regression                   ,SVR)是指      ,将支持向量机的思想推广到回归问题中                   。与传统回归模型类似           ,支持向量回归以

w

w

w

b

b

b
为待确定的模型参数                    ,希望模型输出

f

(

x

)

f(x)

f(x)
与真实输出

y

y

y
之间的差值对应的损失尽可能小;不过         ,在传统回归模型中       ,当且仅当

f

(

x

)

f(x)

f(x)

y

y

y
完全相同时                     ,损失才为零            ,与此不同   ,支持向量回归假设我们容忍

f

(

x

)

f(x)

f(x)

y

y

y
之间最多有

ϵ

\epsilon

ϵ
的偏差                     ,即仅当

f

(

x

)

f(x)

f(x)

y

y

y
之间的差别绝对值大于

ϵ

\epsilon

ϵ
时才计算损失      。如图

1

1

1
所示               ,这相当于以

f

(

x

)

f(x)

f(x)
为中心,构建了一个上边界和下边界分别为

f

(

x

)

+

ϵ

f(x) +\epsilon

f(x)+ϵ

f

(

x

)

ϵ

f(x)-\epsilon

f(x)ϵ
的“管道               ”                  ,

ϵ

\epsilon

ϵ
为人为固定值且

ϵ

>

\epsilon>0

ϵ>0
                  ,若训练样本落入此管道内   ,则认为被预测正确           。

图 1    支持向量回归示意图

注意观察和理解图

1

1

1 与参考 [3] 中图

1

1

1
的区别                    。 本图中样本用同样的圆形表示               ,而它图中分别用

+

+

+

-

表示正       、负两种样本                   ,这体现了回归问题与分类问题的本质区别; 本图中横轴表示样本特征      ,纵轴表示样本对应的预测值           ,描述的样本是一维的                    ,而它图中横         、纵坐标分别表示不同的特征         ,描述的样本是二维的         。

支持向量回归也大致可以分为       ,硬间隔 SVR                    、软间隔 SVR 和核函数 SVR       。

硬间隔 SVR 适合样本全部落在管道内;软间隔 SVR 适合少量样本落在管道外;核函数 SVR 适合非线性分布的样本                     。

重点讲解软间隔 SVR                     ,另外两个相对简单            。

软间隔支持向量回归

对于软间隔支持向量回归而言            ,我们不要求样本分布得非常贴近一条线   ,允许少量样本出现偏差                     ,即噪声               ,而大部分点可以落在管道内   。与软间隔支持向量机类似,软间隔支持向量回归也引入松弛变量                     。每个样本

(

x

i

,

y

i

)

(x_i,y_i)

(xi,yi) 对应两个松弛变量

ξ

^

i

\hat\xi_i

ξi

ξ

i

\xi_i

ξi
                  ,分别表示向上松弛量和向下松弛量               。当样本

(

x

i

,

y

i

)

(x_i,y_i)

(xi,yi)
位于上边界上方(above)                  ,那么该样本将贡献损失   ,即

y

i

(

f

(

x

i

)

+

ϵ

)

y_i - \big(f(x_i)+\epsilon\big)

yi(f(xi)+ϵ)
               ,超出上边界的(纵轴方向)距离也就是

ξ

^

i

\hat \xi_i

ξi
                  ,故对于落在上边界上方的样本有

y

i

(

f

(

x

i

)

+

ϵ

)

=

ξ

^

i

y_i - \big( f(x_i) + \epsilon \big)=\hat \xi_i

yi(f(xi)+ϵ)=ξi
      ,而且直观上           ,此时不可能存在向下的松弛                    ,所以

ξ

i

=

\xi_i=0

ξi=0
;类似地         ,对于落在下边界下方的样本有

(

f

(

x

i

)

+

ϵ

)

y

i

=

ξ

i

\big( f(x_i) + \epsilon \big) - y_i=\xi_i

(f(xi)+ϵ)yi=ξi

ξ

^

i

=

\hat \xi_i = 0

ξi=0
;对于落在管道内的样本       ,显然不存在向上或向下的松弛                     ,所以

ξ

^

i

=

ξ

i

=

\hat \xi_i = \xi_i = 0

ξi=ξi=0
            ,同时这些样本不贡献损失。不难总结   ,每个样本带来的损失可以统一表示为

ξ

^

i

+

ξ

i

\hat \xi_i + \xi_i

ξi+ξi
                     ,因此全部样本贡献的损失为

i

=

1

n

ξ

^

i

+

ξ

i

\sum_{i=1}^n \hat \xi_i + \xi_i

i=1nξi+ξi
                  。

观察图

1

1

1 发现               ,上           、下边界的欧式距离可以表示为

2

ϵ

/

w

2

+

1

2\epsilon/\sqrt{\Vert w \Vert^2 + 1}

2ϵ/w2+1
,当

w

\Vert w\Vert

w
越小时                  ,划分超平面倾斜程度越小                  ,上下边界的欧式距离越大   ,当

w

=

||w||=0

w=0
时距离取到最大值

2

ϵ

2\epsilon

2ϵ
                  。直观上               ,距离越大                   ,划分超平面越倾斜程度越小      ,管道覆盖面越大           ,所能容纳的样本越多                    ,管道外的样本越少         ,带来的损失也可能减少   。这与支持向量机中“最大间隔                   ”的思想一致               。

当然       ,严谨来说                     ,“划分超平面越倾斜程度越小容纳的样本越多      ”的说法是不准确的            ,比如图

2

2

2 所示情况                   。对于同样的六个样本点   ,倾斜程度大的管道(左)反而损失值为零      。

图 2    大倾斜程度管道(左)和小倾斜程度管道(右)

基于上面的松弛思想和最大间隔思想                     ,目标函数为

1

2

w

2

+

C

i

=

1

n

(

ξ

^

i

+

ξ

i

)

\frac{1}{2} \Vert w\Vert^2 + C\sum_{i=1}^n (\hat \xi_i + \xi_i)

21w2+Ci=1n(ξi+ξi)
其中               ,

C

>

C>0

C>0
称为惩罚(超)参数,一般根据应用问题人为决定                  ,

C

C

C
值越大对管道外样本的惩罚越大           。

定义原始问题

min

w

,

b

,

ξ

^

i

,

ξ

i

1

2

w

2

+

C

i

=

1

n

(

ξ

^

i

+

ξ

i

)

\min_{w,b,\hat \xi_i,\xi_i}\frac{1}{2} \Vert w\Vert^2 + C\sum_{i=1}^n (\hat \xi_i + \xi_i) \\

w,b,ξi,ξimin21w2+Ci=1n(ξi+ξi)

s

.

t

.

y

i

f

(

x

i

)

ϵ

+

ξ

^

i

f

(

x

i

)

y

i

ϵ

+

ξ

i

ξ

^

i

,

ξ

i

,

i

=

1

,

2

,

,

n

\begin{matrix} s.t. & y_i - f(x_i)\le \epsilon + \hat \xi_i\\ & f(x_i) - y_i \le \epsilon + \xi_i \\ & \hat \xi_i\ge 0,\space\space\space\space\xi_i\ge 0,\space\space\space\space i = 1,2,\dots,n \end{matrix}

s.t.yif(xi)ϵ+ξif(xi)yiϵ+ξiξi0,ξi0,i=1,2,,n

构建广义拉格朗日函数

L

(

w

,

b

,

α

^

,

α

,

ξ

^

i

,

ξ

i

,

μ

^

i

,

μ

i

)

=

1

2

w

2

+

C

i

=

1

n

(

ξ

^

i

+

ξ

i

)

i

=

1

n

μ

^

i

ξ

^

i

i

=

1

n

μ

i

ξ

i

+

i

=

1

n

α

^

i

(

y

i

f

(

x

i

)

ϵ

ξ

^

i

)

+

i

=

1

n

α

i

(

f

(

x

i

)

y

i

ϵ

ξ

i

)

\begin{aligned} &L(w, b,\hat \alpha,\alpha,\hat \xi_i,\xi_i,\hat \mu_i, \mu_i) \\ &= \frac{1}{2} ||w||^2 + C\sum_{i=1}^n (\hat \xi_i + \xi_i) - \sum_{i=1}^n\hat \mu_i\hat \xi_i - \sum_{i=1}^n\mu_i\xi_i +\sum_{i=1}^n\hat \alpha_i (y_i - f(x_i)-\epsilon-\hat \xi_i) + \sum_{i=1}^n \alpha_i(f(x_i)-y_i-\epsilon - \xi_i) \end{aligned}

L(w,b,α,α,ξi,ξi,μi,μi)=21w2+Ci=1n(ξi+ξi)i=1nμiξii=1nμiξi+i=1nαi(y

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
网站反链优化指南(如何通过添加高质量反链来提升网站排名)