svm和svr区别--摘自其它博客
学习笔记:SVM柔性边界的补充和SVR(支持向量回归)
上一个笔记对于SVM不能完美分类的情况,之前并没有搞得很透彻。在学习SVR的时候,我又重新思考了一下关于SVM对于不能完美分类的情况,搞清楚SVM不可完美分类的情况之后,也就更容易理解SVR的美妙了。
SVM柔性边界
所谓柔性边界,就是会允许分类问题的不完美,能够包容一部分分类出现误差的情况,因为现实中往往会存在一些特例,或者我们不可能考虑到所有的影响因素,导致虽然满足了我们研究条件,但是依然输出不同于我们预测的情况。
SVM柔性边界的表达式:
与完美可分情况的SVM表达式:
相比,我们发现如下以下区别[1]:
我们通过下图来说明柔性边界到底想要达到什么目的:
可以看到,支持向量机真正确定的并不是一个超平面,而是沿着这个超平面的带状区间(在二维中,更高维就更抽象了,我也不知道长什么样,你们脑补吧)。而这个带状区间的宽度,在完美可分的情况下,就是两倍的几何距离,柔性边界呢就是把这个距离放大了,本来这个带状区域中没有训练样本,现在我允许可以有一些训练样本了,不等式中的1就是缩放后的带状区间的边界,现在训练样本满足的公式可以比这个边界小了,自然就是允许一部分训练样本点在带状区域里面了。
接下来我们通过来看拉格朗日乘子式来分析为什么这个方法是合理的,天才的,并来理解各个参数变量和KKT条件。
我们对拉格朗日乘子式中各个变量求偏导:
至此关于SVM柔性边界的一些补充讨论就完成了,接下来说一下支持向量回归(SVR)
支持向量回归(SVR)
由支持向回归就是一种回归方法,就像最小二乘法,岭回归,梯度下降法一样,是一种方法,就像支持向量机也是一种方法,所以它们都不叫做模型,而是叫做支持向量机和支持向量回归。
支持向量回归是在我们做拟合时,采用了支持向量的思想,和拉格朗日乘子式的方式,来对数据进行回归分析的。相对于经济学领域常用的最小二乘法而言,它有诸多好处:
- 最小二乘法只能用于线性回归,对于非线性模型则不再适用;而支持向量回归并没有这个限制
- 最小二乘法对于具有多重共线性的变量之间的回归效果很差;而支持向量回归并不需要担心多重共线性问题
- 支持向量回归对虽然不会在过程中直接排除异常点,但会是的由异常点引起的偏误更小。
所以,支持向量回归十分值得学习。下面上公式:
问题转化:
其实上式就是表示出了回归函数和实际训练点之间的函数距离,对于式中定义的cost function,表述意义是允许模型由一定误差,误差范围内的点都认为是模型上的点,而只有那些在误差范围外,边界上的点才是确定模型的支持向量。由于存在SVM中类似柔性边界的考虑,于是引入松弛变量,得到支持向量回归如下:
转化成SVM求解问题
这里出现了两个不等式,因为我们没有分类结果{-1,1}来用乘积表示正负距离了,只能用绝对值,拆开绝对值符号之后,就会有两个不等式的约束条件。
以上便构成了支持向量回归的KKT条件,从条件中不难看出,我们选出的支持向量都是在认为符合回归情况范围之内的,和尽可能少的一部分超过边界的点,这样就排除了一部分的训练样本中的奇异点。
然后带入求解得到[2]:
求得回归方程:
回归方程中出现的K(xi,x)就是核(kernel)了,会有一些总结的比较好用的kernel,当然你的回归形式如果自己比较清楚,也可以换成你的回归方程。kernel可以使无限维特征向量的计算极大的简化,无论是线性还是非线性的问题满足一定条件就可以找到相应的kernel。不过这里并不会介绍kernel,因为kernel也是一个内容丰富的知识点,并且我也还没学习。
一直没写怎么求得最终结果,求解过程涉及到的都是启发式的算法,基本这些问题也是结合计算机使用的。这里提供一个r包的链接e1071,需要用到的可以去看看帮助。
支持向量机暂时写完了,我想其实这个过程中收获最大的是自己,逼着自己把各个条件推了一遍,写的过程中又发现本来以为理解其实并没理解的地方,又再思考了,以后会坚持写学习笔记的。
[1]:由于简书里不好编辑公式,所以这里我现在word上编辑好,再通过插入图片的方式以方便表达。 ↩
[2]:我在中间引用自己在word上编辑的内容时,可能公式中对应的符号有所变化,我相信这并不会给大家带来什么困扰:) ↩
svm和svr区别--摘自其它博客的更多相关文章
- laravel的启动过程---摘自网络博客个人学习之用
如果没有使用过类似Yii之类的框架,直接去看laravel,会有点一脸迷糊的感觉,起码我是这样的.laravel的启动过程,也是laravel的核心,对这个过程有一个了解,有助于得心应手的使用框架,希 ...
- oracle 常用博客网址
使用oradebug修改数据库scn – 提供专业ORACLE技术咨询和支持@Phone13429648788 - 惜分飞 Solaris上使用DTrace进行动态跟踪 老熊的三分地-Oracle及数 ...
- Bootstrap 实战之响应式个人博客 (一)
一.示例 1.主页 2.博客详情页 3.在线地址 在线地址:入口 Addition:这里使用github-page将自己的静态项目免费部署到线上. 如果你只是做一些简单的静态项目做展示,付出这么大的时 ...
- 想学习找不到好的博客?看这里>>
想学习找不到好的博客?看这里>> (ps:内容 + 作者) 基础数论知识整理--gyh 进阶数论知识整理--又是gyh 关于SPFA--lyj(终于不是gyh) 证明二次探测定理-Line ...
- 博客营销(Blog Marketing)
一.什么是博客营销 博客营销(Blog Marketing)的概念可以说并没有严格的定义,简单来说,就是利用博客这种网络应用形式开展网络营销.要说明什么是博客营销,首先要从什么是博客说起. 博客(Bl ...
- 【nodejs笔记4】搭建多人博客<内含http请求的get post方法区别>
功能分析 博客具有四个功能:注册 登录 登出 发表文章 界面设计 未登录: [主页 注册页 登录页] [主页] 主页 左侧 HOME ...
- Qt控制台和带窗口的区别_mickelfeng_新浪博客
Qt控制台和带窗口的区别_mickelfeng_新浪博客 t控制台和带窗口的区别 (2012-04-30 10:50:53) 标签: 杂谈 分类: C/C ...
- 【转】挟天子以令诸侯博客关于TCP/IP模型与OSI模型的区别
挟天子以令诸侯 博客园 首页 新随笔 联系 订阅 管理 随笔 - 21 文章 - 0 评论 - 9 TCP/IP四层模型与OSI参考模型 TCP/IP四层模型: 1.链路层(数据链路层/网络接 ...
- docker mysql 数据持久化到本地、设置不区别表名大小写-清风柳絮-51CTO博客
原文:docker mysql 数据持久化到本地.设置不区别表名大小写-清风柳絮-51CTO博客 Docker MySQL 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可 1.加上-v参数 ...
随机推荐
- [BZOJ4553][HEOI2016]序列 CDQ分治
4553: [Tjoi2016&Heoi2016]序列 Time Limit: 20 Sec Memory Limit: 128 MB Description 佳媛姐姐过生日的时候,她的小伙 ...
- Strategy Pattern ava设计模式之策略模式
简介 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改.这种类型的设计模式属于行为型模式.简单理解就是一组算法,可以互换,再简单点策略就是封装算法. 意图 定义一 ...
- 函数式编程(1)-高阶变成(2)-filter
filter Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的时,filter()把传入的函数依次作用于每个元素,然 ...
- win平台搭建Lnmp环境
win10上面安装的phpStudy这些天有时候打不开网页 502,请求一直loading,就算是代码问题我也扶不住,安装个Redis,mongodb都超级麻烦,并且好多都模拟Linux做的东西,最终 ...
- 《JavaScript高级程序设计(第三版)》-3
相等操作符 相等和不相等 在转换不同的数据类型时,相等和不想等操作符遵循下面基本规则: 如果有一个操作符数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1: 如果 ...
- laravel 5.1 单元测试 Cannot modify header information 错误
运行phpunit的时候加上参数 --stderr ./vendor/bin/phpunit --stderr
- php输出控制函数存在的意义
因为http协议的限制(前几行必须是协议信息,然后一个空行,然后才是用户需要的内容), 需要保证header信息在其他内容之前发送,否则浏览器无法解析服务器返回的内容.
- 手脱PE Pack v1.0
1.PEID查壳 PE Pack v1.0 2.载入OD,一上来就这架势,先F8走着 > / je ; //入口点 -\E9 C49D0000 jmp Pepack_1.0040D000 004 ...
- C++ string功能补充(类型互转,分割,合并,瘦身)
int StringUtil::intFromString(string data) { //NOTE atoi是非标准C函数 return atoi(data.c_str()); } string ...
- Eclipse 重构功能的使用与重构快捷键
重构是什么? 在代码写好之后改进它的设计. 重构分类:物理结构.类层次结构.类内部结构. 名称 快捷键 直译 作用范围 描述 Rename Alt + Shift + R 可以对任意变量.类. ...




