机器学习(19)之支持向量回归机「建议收藏」

机器学习(19)之支持向量回归机「建议收藏」微信公众号关键字全网搜索最新排名【机器学习算法】:排名第一【机器学习】:排名第二【Python】:排名第三【算法】:排名第四前言机器学习(15)之支持向量机原理(一)线性支持向量机机器学习(16)之支持向量机原理(二)软间隔最大化机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数在前三篇里面我们讲到了SVM的线性分类和非线性分类,

大家好,又见面了,我是你们的朋友全栈君。

微信公众号

关键字全网搜索最新排名

【机器学习算法】:排名第一

【机器学习】:排名第二

【Python】:排名第三

【算法】:排名第四

前言

机器学习(15)之支持向量机原理(一)线性支持向量机

机器学习(16)之支持向量机原理(二)软间隔最大化

机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数

在前三篇里面我们讲到了SVM的线性分类和非线性分类,以及在分类时用到的算法。这些都关注与SVM的分类问题。实际上SVM也可以用于回归模型,本篇就对如何将SVM用于回归模型做一个总结。重点关注SVM分类和SVM回归的相同点与不同点。

SVR损失函数度量

回顾前面SVM分类模型中,我们的目标函数是让权值的二范数最小,同时让各个训练集中的点尽量远离自己类别一边的的支持向量,即

机器学习(19)之支持向量回归机「建议收藏」

如果是加入一个松弛变量ξi≥0,则目标函数是

机器学习(19)之支持向量回归机「建议收藏」

对应的约束条件变成:

机器学习(19)之支持向量回归机「建议收藏」

但是我们现在是回归模型,优化目标函数可以继续和SVM分类模型保持一致为1/2*||w||2,但是约束条件呢?不可能是让各个训练集中的点尽量远离自己类别一边的的支持向量,因为我们是回归模型,没有类别。对于回归模型,我们的目标是让训练集中的每个点(xi,yi),尽量拟合到一个线性模型yi =w∙ϕ(xi)+b。对于一般的回归模型,我们是用均方差作为损失函数,但是SVR不是这样定义损失函数的。


SVR需要我们定义一个常量ϵ>0,对于某一个点(xi,yi),如果|yi−w∙ϕ(xi)−b|≤ϵ,则完全没有损失;如果|yi−w∙ϕ(xi)−b|>ϵ,则对应的损失为|yi−w∙ϕ(xi)−b|−ϵ这个均方差损失函数不同,如果是均方差,那么只要yi−w∙ϕ(xi)−b≠0,那么就会有损失。


如下图所示,在蓝色条带里面的点都是没有损失的,但是外面的点的是有损失的,损失大小为红色线的长度。

机器学习(19)之支持向量回归机「建议收藏」

总结下,SVR的损失函数度量为:

机器学习(19)之支持向量回归机「建议收藏」


SVR目标函数的原始形式

SVM回归模型的损失函数度量在加入松弛变量之后变为

机器学习(19)之支持向量回归机「建议收藏」

和SVM分类模型相似,我们可以用拉格朗日函数将目标优化函数变成无约束的形式。


SVR目标函数的对偶形式

SVR目标函数的原始形式,我们的目标

机器学习(19)之支持向量回归机「建议收藏」

和SVM分类模型一样,这个优化目标也满足KKT条件,也就是说,我们可以通过拉格朗日对偶将我们的优化问题转化为等价的对偶问题来求解如下

机器学习(19)之支持向量回归机「建议收藏」


我们可以先求优化函数对于w,b,ξi∨,ξi∧的极小值, 接着再求拉格朗日乘子α∨,α∧,μ∨,μ∧的极大值。


首先我们来求优化函数对于w,b,ξi∨,ξi∧的极小值,这个可以通过求偏导数求得:

机器学习(19)之支持向量回归机「建议收藏」

最终得到的对偶形式为:

机器学习(19)之支持向量回归机「建议收藏」

对目标函数取负号,求最小值可以得到和SVM分类模型类似的求极小值的目标函数如下:

机器学习(19)之支持向量回归机「建议收藏」


SVR系数的稀疏性

在SVM分类模型中,我们的KKT条件的对偶互补条件为:

机器学习(19)之支持向量回归机「建议收藏」

而在回归模型中,我们的对偶互补条件类似如下:

机器学习(19)之支持向量回归机「建议收藏」

根据松弛变量定义条件,如果|yi−w∙ϕ(xi)−b|<ϵ,我们有ξi∨=0,ξi∧=0,此时

机器学习(19)之支持向量回归机「建议收藏」

这样要满足对偶互补条件,只有αi∨=0,αi∧=0。我们定义样本系数系数

机器学习(19)之支持向量回归机「建议收藏」

根据上面w的计算式

机器学习(19)之支持向量回归机「建议收藏」

我们发现此时βi=0,也就是说w不受这些在误差范围内的点的影响。对于在边界上或者在边界外的点,αi∨≠0,αi∧≠0,此时βi≠0。

SVM 算法小结

这个系列终于写完了,按惯例SVM 算法做一个总结。SVM算法是一个很优秀的算法,在集成学习和神经网络之类的算法没有表现出优越性能前,SVM基本占据了分类模型的统治地位。目前则是在大数据时代的大样本背景下,SVM由于其在大样本时超级大的计算量,热度有所下降,但是仍然是一个常用的机器学习算法

优点

 1) 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。


 2) 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。


 3) 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。


 4) 样本量不是海量数据的时候,分类准确率高,泛化能力强。

不足

    1)  如果特征维度远远大于样本数,则SVM表现一般。

    2) SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。

  3)非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。

   4)SVM对缺失数据敏感。

欢迎分享给他人让更多的人受益

机器学习(19)之支持向量回归机「建议收藏」

参考:

  1. 周志华《机器学习》

  2. Neural Networks and Deep Learning by By Michael Nielsen

  3. 博客园

    http://www.cnblogs.com/pinard/p/6113120.html

  4. Deep Learning, book by Ian Goodfellow, Yoshua Bengio, and Aaron Courville

  5. UFLDL Tutorial

机器学习(19)之支持向量回归机「建议收藏」

加我微信:guodongwe1991,备注姓名-单位-研究方向(加入微信机器学习交流1群)

招募 志愿者

广告、商业合作

请加QQ:357062955@qq.com

机器学习(19)之支持向量回归机「建议收藏」

喜欢,别忘关注~

帮助你在AI领域更好的发展,期待与你相遇!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144810.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux的iptables和firewall的区别

    linux的iptables和firewall的区别

    2021年10月19日
    60
  • 大数据建模流程之数据处理[通俗易懂]

    大数据建模流程之数据处理[通俗易懂]原文链接数据是建模的基础,也是研究事物发展规律的材料。数据本身的可信度和处理的方式将直接决定模型的天花板在何处。一个太过杂乱的数据,无论用多么精炼的模型都无法解决数据的本质问题,也就造成了模型的效果不理想的效果。这也是我们目前所要攻克的壁垒。但是,目前我们市场对的数据或者科研的数据并不是完全杂乱无章的,基本都是有规律可循的,因此,用模型算法去进行科学的分析,可以主观情绪对决策的影响。所以数据是非常重要的一部分。那么,接下来我们就详细说一下数据的处理与分析。一.数据的基本特征当看到数据的时候,首要做的并

    2022年6月8日
    44
  • IntelliJ IDEA创建Servlet最新方法 Idea版本2020.2.2以及IntelliJ IDEA创建Servlet 404问题(超详细)

    IntelliJ IDEA创建Servlet最新方法 Idea版本2020.2.2以及IntelliJ IDEA创建Servlet 404问题(超详细)第一次用IntelliJIDEA写java代码,之前都是用eclipse,但eclipse太老了。下面为兄弟们奉上IntelliJIDEA创建Servlet方法,写这个的目的也是因为在网上找了很多资料但都过时了,所以把我走过的坑和弯路直接告诉兄弟们,为大家节省点宝贵的时间。说一下现在创建Servlet或者是web和之前的主要区别,之前是直接创建,现在是先要创建java项目然后通过添加支持框架变成Servlet或者web项目下面这些截图最好都看完,因为有的地方有坑,都在后面的截图里。我用

    2022年6月17日
    56
  • 爱美眉aimeimei.pw整站下载、2G图片、上万数据

    爱美眉aimeimei.pw整站下载、2G图片、上万数据官网:http://www.aimeimei.pw美眉aimeimei.pw整站源码安装方法:1.把文件上传到你的站点的根目录,然后运行http://你的域名/install/index.php安装,根据提示填写好相关信息,点“下一步”…即可完成安装。注:若提示无法安装,页面出现DIY字样。请进入install文件夹,将install_lock.txt文件删掉。把index

    2025年11月15日
    4
  • 前端 — HTML

    前端 — HTML1.HTML结构1.1HTML文件基本结构<html><head><title>第一个html程序</title></head><body>helloworld!</body></html>html标签是整个html文件的根标签(最顶层标签)head标签中写页面的属性.body标签中写的是页面上显示的

    2022年5月5日
    39
  • python标识符在命名时有哪些规则_php标识符的命名规则

    python标识符在命名时有哪些规则_php标识符的命名规则在Python中,一切都是对象,包括常量数据类型,如整数数据类型(1,2,3…),字符串数据类型(“ABC”)。想要使用这些对象,就要使用它的对象引用。赋值操作符,实际上是使得对象引用对内存中存放数据的对象进行引用。那什么是标识符?标识符是对对象引用起的一个名字。有效的Python标识符规则:1.长度任意长;2.标识符不能与关键字同名;3.在2.x版本的Python中,标识符以ASCII的字母…

    2025年9月23日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号