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参数 ...
随机推荐
- x64 win64编译环境下ADO链接Access数据库的问题解决
原文链接地址:https://blog.csdn.net/HW140701/article/details/71077579 Win32编译环境下,用ADO数据库连接Access数据库一般都不会报错, ...
- 【状压DP】【CF8C】 Looking for Order
传送门 Description 给你n个点,每次可以从起点到最多两个点然后回到起点.求经过每个点最少一次的最短欧氏距离和是多少 Input 第一行是起点的坐标 第二行是点的个数\(n\) 下面\(n\ ...
- Codeforces 932.E Team Work
E. Team Work time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- jsp 的 4 种基本语法
1.JSP 注释 2.JSP 声明 3.JSP 表达式 4.JSP 脚本 JSP 注释: 注释格式: <%-- 注释内容 --%> 需要注意的是,JSP 的注释不会输出到 HTML 中. ...
- tp 中 where条件,字段和字段的大小比较
$map = array( , 'start_time' => array('lt',$now), 'end_time' => array('gt',$now), , '_string' ...
- tp查询中2个表格中字段,比较大小
$where['_string'] = '`has_number` < `number`';//~~~注意:这里`不能丢了: $coupon_flag = $coupon->where($ ...
- mysql 自动记录数据插入及最后修改时间
总结: `uptime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 原文 应用场景: 1.在数据 ...
- windows如何要查看IIS连接数
1.运行,输入,perfmon.msc 2.在系统监视器,区域点击,添加计数器. 3.在“添加计数器”窗口,“性能对象”选择Web Service,“从列表选择计数器”选中Current Connec ...
- 给上传文件的input控件“美容”
在工作中经常会遇到form表单这种东西.然而表单的其他input控件样式还是很好改变的.但是,唯独input类型是file的文件上传控件可能就没那么好打扮的漂亮. demo: html代码 <b ...
- js 30分钟倒计时
<html> <head> <meta charset="UTF-8"> <title></title> </he ...