支持向量机SVM在回归问题中的应用:支持向量回归SVR(python代码实现)

本文摘录自 支持向量回归SVR - 数模百科

你玩过放风筝吗?放风筝可有讲究哦,如果你能熟练地控制着那根风筝线,风筝就能在蓝天上自由自在地飞。想象一下,风筝就是你心中追求的那个答案,而风筝线的长短、指向,就像是指引你找到答案的线索。

比如说,你在玩一个猜谜游戏,游戏里给你的提示就像是掌握在手里的风筝线,你得根据这些线索去猜风筝在天空中的具体位置。可是,风筝受风的影响,会不停地在空中变换位置。你的任务就是要依靠手上的这些线索,尽量猜出风筝现在可能在哪儿。

支持向量回归(SVR)就好比是个放风筝的行家里手。首先,他会在脑海中构想出一条完美的理想风筝线,这根线能够让风筝牢牢地定位在一个最佳点上。然后,他允许风筝在这个理想位置周围的一小块区域内自由飘荡,只要风筝不飘出这个区域,他都能接受。他更关注的是那些偏离了这个自由飘荡区域太远的风筝,因为它们脱离了正常的预期范围。

就像一个专注的放风筝人,他会一遍又一遍地调整风筝线的拉力和角度,努力让风筝尽量飞回他心中设想的那个点上。这种不断调整,寻找最合适位置的过程,就是支持向量回归的主旨所在。

再举个例子。

你还记得咱们小时候玩的“猜数字”游戏吗?我就随便心里想一个1到10之间的数,然后你来猜。咱们玩的时候,如果你猜的数字不对,我会提示你是猜大了还是猜小了,你根据提示再接着猜,直到猜中为止。

但如果我们把规则改一改,就有点意思了。你还是猜我心里的数字,可这次我不再告诉你猜大了还是小了,我只会告诉你你猜的和我心里数的差了多少。比如说,假设我心里想的是数字3,你如果猜了个5,我就跟你说:“差了2”。你猜的越接近,我就认为你猜得越好。

这个改头换面的新游戏,其实和一个数学上的东西挺像,那就是支持向量回归,简称SVR。你可以把SVR想象成一个特别会玩儿“猜数字”游戏的高手。它不靠我告诉你猜大了还是小了,而是通过观察你和正确答案的差距,来不断调整自己的猜测。它的目的就是要把这个差距弄得尽可能小,这个过程就叫做“最优化”。

所以呢,即便我们没直接把正确答案告诉SVR,它也能通过自己聪明的方法,一步步逼近真正的答案,最后猜出一个相当准确的数来。这就是SVR这个数学工具的聪明之处。

定义与详解

定义

支持向量回归(Support Vector Regression,SVR)是支持向量机(SVM)在回归问题上的应用。SVR用于预测一个连续的输出变量,相比于分类任务的SVM,其主要区别在于构造的不再是一个最大间隔的超平面,而是构造一个与目标函数值间隔在一定范围内(ε-insensitive)的最小超平面。

与SVM一样,SVR也可以通过引入核函数来解决非线性问题。通过核技巧,SVR能将原始特征空间映射为更高维的特征空间,以便找到在更高维空间中的线性回归模型。

直观理解,SVR的目标是找到一个函数 f(x_i),尽可能接近所有样本点,但忽略掉位于ε-tube(由训练误差 ε 定义)之内的预测误差。其数学定义涉及到解决以下优化问题:

SVR的优化问题可以表示为:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值