当前位置: 首页 > news >正文

【自学笔记】支持向量机(4)——支持向量回归SVR

引入

  SVM解决了分类问题,而用类似方法解决回归问题的模型称为支持向量回归。目标是得到一个模型,使输出的 f ( x ⃗ ) f(\vec{x}) f(x ) y y y尽可能接近。

  传统的回归模型直接计算 f ( x ⃗ ) f(\vec{x}) f(x ) y y y的差距作为损失,当两者完全相等时损失为0;而SVR加入了支持向量,使得模型能够容忍 ε \varepsilon ε的偏差,即在距离 f ( x ) f(x) f(x)不超过 ε \varepsilon ε的样本被认为预测正确,损失为0。
网图

建立数学模型

  根据上述,类似SVM,我们可以写出SVR的损失函数和问题转化:

m i n w ⃗ , b 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 + C ∑ i = 1 m ℓ ε ( f ( x ⃗ i ) − y i ) min_{\vec{w}, b}\ \frac{1}{2}||\vec{w}||^{2}+C\sum_{i=1}^{m}\ell _{\varepsilon}(f(\vec{x}_{i})-y_{i}) minw ,b 21∣∣w 2+Ci=1mε(f(x i)yi)
其中 ℓ ε ( z ) = { 0 , i f ∣ z ∣ ≥ ε ; ∣ z ∣ − ε , o t h e r w i s e . \ell _{\varepsilon}(z)=\begin{cases}0,\ if \ |z| \ge \varepsilon; \\|z|-\varepsilon, \ otherwise.\end{cases} ε(z)={0, if zε;zε, otherwise.称为 ε − \varepsilon- ε不敏感损失函数( ε \varepsilon ε-insensitive loss)

  接下来就是经典的拉格朗日法处理二次规划问题。引入松弛变量 ξ i \xi_{i} ξi ξ ^ i \hat{\xi}_{i} ξ^i

m i n w ⃗ , b 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 + C ∑ i = 1 m ( ξ i + ξ ^ i ) min_{\vec{w}, b}\ \frac{1}{2}||\vec{w}||^{2}+C\sum_{i=1}^{m}(\xi_{i}+\hat{\xi}_{i}) minw ,b 21∣∣w 2+Ci=1m(ξi+ξ^i)
s . t . { f ( x ⃗ i ) − y i ≤ ε + ξ i ; y i − f ( x ⃗ i ) ≤ ε + ξ i ; ξ i ≥ 0 , ξ ^ i ≥ 0 , i = 1 , 2 , . . . , m . s.t.\ \begin{cases}f(\vec{x}_{i})-y_{i} \le \varepsilon+\xi_{i}; \\ y_{i}-f(\vec{x}_{i}) \le \varepsilon+\xi_{i};\\\xi_{i} \ge 0, \hat{\xi}_{i} \ge 0,\ \ i=1,2,..., m.\end{cases} s.t.  f(x i)yiε+ξi;yif(x i)ε+ξi;ξi0,ξ^i0,  i=1,2,...,m.

  这里使用双松弛变量,可以更好地处理边界误差,因为误差不一定是对称的。
  接下来引入拉格朗日乘子得到拉格朗日函数:

μ i ≥ 0 , μ ^ i ≥ 0 , α i ≥ 0 , α ^ i ≥ 0 \mu_{i} \ge 0,\hat{\mu}_{i} \ge 0,\alpha_{i} \ge 0, \hat{\alpha}_{i} \ge 0 μi0,μ^i0,αi0,α^i0
L ( w ⃗ , b , α , α ^ , ξ , ξ ^ , μ , μ ^ ) L(\vec{w},b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu}) L(w ,b,α,α^,ξ,ξ^,μ,μ^)
= 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 + C ∑ i = 1 m ( ξ i + ξ ^ i ) − ∑ i = 1 m μ i ξ i − ∑ i = 1 m μ ^ i ξ ^ i =\frac{1}{2}||\vec{w}||^{2}+C\sum_{i=1}^{m}(\xi_{i}+\hat{\xi}_{i})-\sum_{i=1}^{m}\mu_{i}\xi_{i}-\sum_{i=1}^{m}\hat{\mu}_{i}\hat{\xi}_{i} =21∣∣w 2+Ci=1m(ξi+ξ^i)i=1mμiξii=1mμ^iξ^i
+ ∑ i = 1 m α i ( f ( x ⃗ i ) − y i − ε − ξ i ) + ∑ i = 1 m α i ( y i − f ( x ⃗ i ) − ε − ξ ^ i ) +\sum_{i=1}^{m}\alpha_{i}(f(\vec{x}_{i})-y_{i}-\varepsilon-\xi_{i})+\sum_{i=1}^{m}\alpha_{i}(y_{i}-f(\vec{x}_{i})-\varepsilon-\hat{\xi}_{i}) +i=1mαi(f(x i)yiεξi)+i=1mαi(yif(x i)εξ^i)

  令 L L L w ⃗ , b , ξ i , ξ ^ i \vec{w},b,\xi_{i},\hat{\xi}_{i} w ,b,ξi,ξ^i偏导为0得:

w ⃗ = ∑ i = 1 m ( α ^ i − α i ) x ⃗ i \vec{w}=\sum_{i=1}^{m}(\hat{\alpha}_{i}-\alpha_{i})\vec{x}_{i} w =i=1m(α^iαi)x i
0 = ∑ i = 1 m ( α ^ i − α i ) 0=\sum_{i=1}^{m}(\hat{\alpha}_{i}-\alpha_{i}) 0=i=1m(α^iαi)
C = α i + μ i = α ^ i + μ ^ i C=\alpha_{i}+\mu_{i}=\hat{\alpha}_{i}+\hat{\mu}_{i} C=αi+μi=α^i+μ^i

  代回得到对偶问题:

m a x α , α ^ ∑ i = 1 m y i ( α ^ i − α i ) − ε ( α ^ i + α i ) max_{\alpha, \hat{\alpha}}\sum_{i=1}^{m}y_{i}(\hat{\alpha}_{i}-\alpha_{i})-\varepsilon(\hat{\alpha}_{i}+\alpha_{i}) maxα,α^i=1myi(α^iαi)ε(α^i+αi)
− 1 2 ∑ i = 1 m ∑ j = 1 m ( α ^ i − α i ) ( α ^ j − α j ) x ⃗ i T x ⃗ j \ \ \ \ \ \ \ \ \ \ \ \ \ \ -\frac{1}{2}\sum_{i=1}{m}\sum_{j=1}^{m}(\hat{\alpha}_{i}-\alpha_{i})(\hat{\alpha}_{j}-\alpha_{j})\vec{x}_{i}^{T}\vec{x}_{j}               21i=1mj=1m(α^iαi)(α^jαj)x iTx j
s . t . ∑ i = 1 m ( α ^ i − α i ) = 0 , s.t. \sum_{i=1}^{m}(\hat{\alpha}_{i}-\alpha_{i})=0, s.t.i=1m(α^iαi)=0,
0 ≤ α i , α ^ i ≤ C . \ \ \ \ \ \ 0 \le \alpha_{i}, \hat{\alpha}_{i} \le C.       0αi,α^iC.

KKT条件:
{ α i ( f ( x ⃗ i ) − y i − ε − ξ i ) = 0 , α ^ i ( y i − f ( x ⃗ i ) − ε − ξ ^ i ) = 0 , α i α ^ i = 0 , ξ i ξ ^ i = 0 , ( C − α i ) ξ i = 0 , ( C − α ^ i ) ξ ^ i = 0. \begin{cases} \alpha_{i}(f(\vec{x}_{i})-y_{i}-\varepsilon -\xi_{i})=0, \\\hat{\alpha} _{i}(y_{i}-f(\vec{x}_{i})-\varepsilon -\hat{\xi} _{i})=0, \\\alpha_{i}\hat{\alpha}_{i}=0, \\\xi_{i}\hat{\xi}_{i}=0, \\(C-\alpha_{i})\xi_{i}=0, \\(C-\hat{\alpha} _{i})\hat{\xi} _{i}=0. \end{cases} αi(f(x i)yiεξi)=0,α^i(yif(x i)εξ^i)=0,αiα^i=0,ξiξ^i=0,(Cαi)ξi=0,(Cα^i)ξ^i=0.

  有 α i \alpha_{i} αi f ( x ⃗ i ) − y i − ε − ξ i f(\vec{x}_{i})-y_{i}-\varepsilon -\xi_{i} f(x i)yiεξi不能同时非零; α ^ i \hat{\alpha} _{i} α^i y i − f ( x ⃗ i ) − ε − ξ ^ i y_{i}-f(\vec{x}_{i})-\varepsilon -\hat{\xi} _{i} yif(x i)εξ^i不能同时非零。

  而 f ( x ⃗ i ) − y i − ε − ξ i f(\vec{x}_{i})-y_{i}-\varepsilon -\xi_{i} f(x i)yiεξi y i − f ( x ⃗ i ) − ε − ξ ^ i y_{i}-f(\vec{x}_{i})-\varepsilon -\hat{\xi} _{i} yif(x i)εξ^i不可能同时为0(支持向量的意义)。所以 α i \alpha_{i} αi α ^ i \hat{\alpha}_{i} α^i至少有一个为 0 0 0

  代回后解得:

f ( x ) = ∑ i = 1 m ( α ^ i − α i ) x ⃗ i T x ⃗ + b f(x)=\sum_{i=1}^{m}(\hat{\alpha}_{i}-\alpha_{i})\vec{x}_{i}^{T}\vec{x}+b f(x)=i=1m(α^iαi)x iTx +b

  其中,一定存在 i i i,使得 0 < α i < C 0<\alpha_{i}<C 0<αi<C从而使 ξ i = 0 \xi_{i}=0 ξi=0,进而推出 b b b

b = y i + ε − ∑ j = 1 m ( α ^ j − α j ) x ⃗ j T x ⃗ i b=y_{i}+\varepsilon-\sum_{j=1}^{m}(\hat{\alpha}_{j}-\alpha_{j})\vec{x}_{j}^{T}\vec{x}_{i} b=yi+εj=1m(α^jαj)x jTx i

  加上特征映射与核函数,有:

f ( x ) = ∑ i = 1 m ( α ^ i − α i ) κ ( x ⃗ i , x ⃗ ) + b f(x)=\sum_{i=1}^{m}(\hat{\alpha}_{i}-\alpha_{i})\kappa(\vec{x}_{i},\vec{x})+b f(x)=i=1m(α^iαi)κ(x i,x )+b

相关文章:

  • 国内可用ChatGPT-4中文镜像网站整理汇总【持续更新】
  • 三.python入门语法2
  • OSPF相关基础介绍及基础配置,网络工程师必修
  • redis Redis-Cluster常用命令与Redis性能监控
  • SSH防止暴力破解
  • 2024东湖高新下半年水测公示名单啦
  • 把命令的语气改成聊天的方式
  • 部署Activiti Modeler全流程(工作流引擎Activiti设计插件)
  • 软件测试CNAS实验室认证|检测报告三级审核,每一级审核什么?
  • tensorflow底层架构
  • 恢复丢失的数据:恢复数据库网络解决方案
  • 水平分库分表的方法策略
  • Android开发小贴士
  • 高级java每日一道面试题-2024年9月26日-运维篇[分布式篇]-如何保证每个服务器的时间都是同步的?
  • 【网络安全】网络基础第一阶段——第三节:网络协议基础---- VLAN、Trunk与三层交换技术
  • 「面试题」如何实现一个圣杯布局?
  • 【刷算法】求1+2+3+...+n
  • 0x05 Python数据分析,Anaconda八斩刀
  • bootstrap创建登录注册页面
  • CentOS 7 防火墙操作
  • hadoop集群管理系统搭建规划说明
  • JavaScript设计模式系列一:工厂模式
  • Logstash 参考指南(目录)
  • Nacos系列:Nacos的Java SDK使用
  • RxJS: 简单入门
  • vuex 笔记整理
  • 反思总结然后整装待发
  • 复习Javascript专题(四):js中的深浅拷贝
  • 如何利用MongoDB打造TOP榜小程序
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 阿里云服务器如何修改远程端口?
  • ​Java并发新构件之Exchanger
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (ZT)一个美国文科博士的YardLife
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (一)appium-desktop定位元素原理
  • (原創) 未来三学期想要修的课 (日記)
  • (转)http协议
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net FrameWork简介,数组,枚举
  • .net对接阿里云CSB服务
  • .Net多线程Threading相关详解
  • .NET学习教程二——.net基础定义+VS常用设置
  • .NET中的Exception处理(C#)
  • :class的用法及应用
  • @RequestBody与@RequestParam
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell