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

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

时间2025-08-02 15:39:43分类IT科技浏览5242
导读:有任何的书写错误、排版错误、概念错误等,希望大家包含指正。...

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

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

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

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

支持向量回归

支持向量回归(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
微擎框架和自己开发哪个好(微擎框架破解版v2.7.14去授权一键安装纯净商业版(微擎纯净框架,无任何限制)-电脑学习网) 电脑上如何观看电视直播(怎么在电脑上观看电视节目_电视直播软件推荐介绍)