X. Introduction

本文先翻译一下:
http://www.saedsayad.com/support_vector_machine_reg.htm

Support Vector Machine can also be used as a regression method, maintaining all the main features that characterize the algorithm (maximal margin).
支持向量机SVM也可以用作回归方法SVR,保留了SVM算法的所有主要思想(也就是最大化间隔)。

The Support Vector Regression (SVR) uses the same principles as the SVM for classification, with only a few minor differences.
支持向量回归 (SVR) 使用与 SVM 相同的分类原理,只有一点儿细微的差别。

First of all, because output is a real number it becomes very difficult to predict the information at hand, which has infinite possibilities.
首先,由于回归问题的输出是实数,因此很难十分精确的预测,因为这具有无限多的可能性。

In the case of regression, a margin of tolerance (epsilon) is set in approximation to the SVM which would have already requested from the problem.
在回归的情况下,间隔的容差 (epsilon) 设置为其实可以看做一个SVM的求解。(我也不知道该怎么翻译)

But besides this fact, there is also a more complicated reason, the algorithm is more complicated therefore to be taken in consideration.
但除了这个事实之外,还有一个更复杂的原因,算法更复杂。(我也不知道该怎么翻译)

However, the main idea is always the same: to minimize error, individualizing the hyperplane which maximizes the margin, keeping in mind that part of the error is tolerated.
但是,主要思想始终是相同的:最小化错误,找到那个能最大化间隔的超平面,记住部分“错误”是可以容忍的。

以上几句话,就是白说,没什么感觉对吧,我也是。不用纠结了,我换一篇博客看看,这篇还不错,建议直接看原文

An Introduction to Support Vector Regression (SVR)

https://towardsdatascience.com/an-introduction-to-support-vector-regression-svr-a3ebc1672c2

In this article, I will walk through the usefulness of SVR compared to other regression models, do a deep-dive into the math behind the algorithm, and provide an example using the Boston Housing Price dataset.
老哥带你深入了解SVR数学原理,并给一个波士顿房价的例子

1. 简单回归

大部分回归模型,目标是最小化均方误差,用 Ordinary Least Squares(OLS) [线性最小二乘?] 举个例子,这是目标函数:
min⁡∑i=1n(yi−wixi)2\min \sum_{i=1}^{n} (y_i - w_i x_i) ^ 2 mini=1∑n​(yi​−wi​xi​)2


上图是波士顿房价预测的最小二乘结果

Lasso, Ridge, 与 ElasticNet等等都是这个简单等式的拓展而已,就是加一个额外的惩罚项,用来降低复杂度或者降低最终模型的特征数量。无论如何,目标都是降低测试集的错误率。


附:几个正则的公式

Lasso:使用L1-norm正则
J(θ)=12∑im(y(i)−θTx(i))2+λ∑jn∣θj∣J(\theta)=\frac{1}{2} \sum_{i}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}+\lambda \sum_{j}^{n}\left|\theta_{j}\right| J(θ)=21​i∑m​(y(i)−θTx(i))2+λj∑n​∣θj​∣

Ridge:使用L2-norm正则
J(θ)=12∑im(y(i)−θTx(i))2+λ∑jnθj2J(\theta)=\frac{1}{2} \sum_{i}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}+\lambda \sum_{j}^{n} \theta_{j}^{2}J(θ)=21​i∑m​(y(i)−θTx(i))2+λj∑n​θj2​

ElasticNet:结合l1-norm、l2-norm进行正则
J(θ)=12∑im(y(i)−θTx(i))2+λ(ρ∑jn∣θj∣+(1−ρ)∑jnθj2)J(\theta)=\frac{1}{2} \sum_{i}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}+\lambda\left(\rho \sum_{j}^{n}\left|\theta_{j}\right|+(1-\rho) \sum_{j}^{n} \theta_{j}^{2}\right) J(θ)=21​i∑m​(y(i)−θTx(i))2+λ(ρj∑n​∣θj​∣+(1−ρ)j∑n​θj2​)


然而, 如果我们不在乎我们的错误具体有多少,只要它们在可接受的范围内,我们的模型该怎么设置?

以房价为例。 如果我们对预测在一定的金额之内(比如 5,000 美元)的误差不在乎,我们该怎么修改模型呢? 然后,只要误差在该范围内,我们就可以给我们的模型一些灵活的设置来查找预测值。

2. 现在开始说SVR

SVR给了我们这个灵活的设置来定义模型中多大的误差是可接受的,同时我们将得到一条曲线(或者说是一条高维超平面)去拟合数据

与 OLS 相比,SVR 的目标函数是最小化系数——更具体地说,是系数向量的 l2 范数——而不是平方误差。 关于为啥目标函数是这个,可以回看SVM的资料

相反,误差项约束中处理,我们将绝对误差设置为小于或等于指定的边距,称为最大误差,ϵ\epsilonϵ(epsilon)。

我们可以调整 epsilon 以获得模型所需的精度。

我们新的目标函数和约束如下:

目标函数:
min⁡12∥w∥2\min \frac{1}{2}\|w\|^{2}min21​∥w∥2

约束:
∣yi−wixi∣≤ε\left|y_{i}-w_{i} x_{i}\right| \leq \varepsilon∣yi​−wi​xi​∣≤ε

图例:

让我们在数据集上尝试简单的 SVR。下图显示了已经训练过的 SVR 模型在波士顿房价数据上的结果。 红线代表最佳拟合线,黑线代表误差范围 ε,我们将其设置为 5(5,000 美元)。

您可能很快意识到该算法不适用于所有数据点。该算法尽可能地解决了目标函数,但一些点仍然落在margin之外。 因此,我们需要考虑数据点的误差大于ϵ\epsilonϵ的可能性。 类似SVM中的松弛变量,我们可以用来松弛变量做到这一点。

3. 来给我们的模型添加一些松弛

松弛变量的想法很简单:允许任何变量都可以落在margin之外(由ϵ\epsilonϵ指定),我们可以将其与边距的偏差表示为ξ\xiξ。

尽管我们允许这些松弛存在,允许他们在ϵ\epsilonϵ之外,但是我们仍就希望减少他们。因此,我们需要将松弛变量也添加到目标函数中

则目标函数:
min⁡12∥w∥2+C∑i=1n∣ξi∣\min \frac{1}{2} \| w \|^2 + C\sum_{i=1}^n | \xi_i | min21​∥w∥2+Ci=1∑n​∣ξi​∣

约束:
∣yi−wixi∣≤ϵ+∣ξi∣|y_i - w_i x_i | \le \epsilon + |\xi_i| ∣yi​−wi​xi​∣≤ϵ+∣ξi​∣

松弛SVR的图例

我们现在有一个额外的超参数 C,我们可以对其进行调整。 随着 C 的增加,我们对 ε 之外的点的容忍度也会增加。 当 C 接近 0 时,容差接近 0,等式坍缩为简化的(尽管有时不可行)的。

让我们设置 C=1.0 并重新训练上面的模型。 结果绘制如下:


ϵ=5,C=1.0\epsilon=5, C=1.0ϵ=5,C=1.0时,SVR的结果图

4. 找到 C 的最佳值

上述 soft 模型似乎更适合数据。我们可以更进一步,在参数 C 上进行网格搜索以获得更好的解决方案。让我们定义一个评分指标% within Epsilon

该指标衡量我们的测试集中有多少数据点落在我们的误差范围内。

我们还可以查看平均绝对误差 (MAE) 如何随 C 变化。

下面是网格搜索结果的图,x 轴上为 C 值,% within Epsilon值在左,MAE 值在右。

正如我们所看到的,MAE 通常随着 C 的增加而减小。 但是,指标% within Epsilon我们需要寻找最大值。 由于我们这个模型的最初目标是在我们的误差范围内(5,000 美元)最大化预测,我们希望找到% within Epsilon最大时的 C 值。 因此,C=6.13。

让我们用最终的超参数 ϵ\epsilonϵ=5, C=6.13 构建最后一个模型。


ϵ\epsilonϵ=5, C=6.13 时波士顿房价的 SVR 预测图

上图显示,正如预期的那样,该模型再次有了提升。

结论

SVR 是一种强大的算法,它允许我们选择对错误的容忍度,(通过修改ϵ\epsilonϵ 以及 松弛)。

本文的代码在这里:
https://github.com/DrRyanHuang/SVR

[翻译] 支持向量回归SVR的介绍相关推荐

  1. ❤️解决非线性回归问题的机器学习方法总结:多项式线性模型、广义线性(GAM)模型、回归树模型、支持向量回归(SVR)模型

    文章目录 前言 多项式回归模型 概念解释: sklearn实现多项式回归模型: 广义线性可加(GAM)模型 概念解释: pygam实现广义线性可加模型: GAM模型的优点与不足: 回归树模型 概念解释 ...

  2. 【视频】支持向量机SVM、支持向量回归SVR和R语言网格搜索超参数优化实例

    最近我们被客户要求撰写关于SVM的研究报告,包括一些图形和统计输出. 什么是支持向量机 (SVM)? 我们将从简单的理解 SVM 开始. [视频]支持向量机SVM.支持向量回归SVR和R语言网格搜索超 ...

  3. 基于DDTBOX,使用线性支持向量回归(SVR)从ERP数据中解码连续变量

    导读 事件相关电位(ERP)数据的多变量分类分析是预测认知变量的强大工具.然而,分类通常仅限于分类变量,并未充分利用连续数据,如反应时间.反应力或主观评分.另一种方法是支持向量回归(SVR),它使用单 ...

  4. 使用最大离散重叠小波变换MODWT和支持向量回归 SVR的金融时间序列预测

    本例使用的数据链接如下:https://www.histdata.com/download-free-forex-historical-data/?/ascii/tick-data-quotes/AU ...

  5. 机器学习西瓜书笔记:软间隔和支持向量回归SVR

    1.首先由SVM问题(最大间隔超平面模型):所有样本都可以正确分类的最优化问题,引入软间隔SVM(允许分类错误)的最优化问题,即需要添加损失函数(样本不满足约束的程度,或者说分类错误的程度),然后最优 ...

  6. 机器学习——支持向量回归(SVR)

    机器学习--支持向量回归(SVR) educoder平台练习题 如果博客中图片加载失败可点击链接跳转至实训详情 https://www.educoder.net/shixuns/b6yi97f2/ch ...

  7. 【机器学习系列】之支持向量回归SVR

    作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] [机器学习系列]之SVM硬间隔和软间隔 [机器学习系列]之SVM核函数和SMO ...

  8. 支持向量回归 svr

    from sklearn import svm X = [[0, 0], [1, 1]] y = [0, 1]#建立支持向量分类模型 clf = svm.SVC()#拟合训练数据,得到训练模型参数 c ...

  9. 机器学习之支持向量回归(SVR)——南京审计大学金审学院

    第1关:线性可分支持向量机 本关任务:根据本节课所学知识完成本关所设置的选择题. 第1题 B 第2题 B 第3题 C 第4题 B 第5题 D 第6题 AC 第2关:线性支持向量机 本关任务:使用skl ...

最新文章

  1. 创建 Pool VIP - 每天5分钟玩转 OpenStack(122)
  2. 153和154.寻找旋转排序数组中的最小值
  3. html图片滚动红点_HTML中更换或添加网站背景图片的代码怎么写?(示例)
  4. @service注解_Spring 中 @Component、@Service 等注解如何被解析的
  5. Java并发工具类Semaphore应用实例
  6. 安装和配置本地maven(三)
  7. 编译问题 文件查找失败: ‘vant‘
  8. 2的32次方减1用python,第二章python入门
  9. 调查显示:被黑过的公司难以找到投资
  10. request技巧-utils的功能-cookie对象与字典的转换-URL编码与解码-关掉SSL验证
  11. 热情不减!iPhone12国行首批供货已售罄
  12. 如何提取html的文本,如何从html标签之间提取文本?
  13. android 创建目录/文件/读写文件
  14. 【玩转win7之简单几步为闪存盘加密】
  15. 最新PHP全开源京东淘宝唯品会自动抢单系统源码
  16. 第一天的学习内容----Excel自动化处理
  17. OPENGL 简单图形绘制
  18. Excel隔行插入空白行小技巧
  19. 控件的颜色设置(本景色,文本色,文本背景色)
  20. Linux:chmod命令

热门文章

  1. element ui tabs-tab页放到右边、侧边
  2. ie浏览器主页被毒霸锁定,解决
  3. Mysql中的varchar类型转换成int类型
  4. 关于ubuntu18.04部署ROS系统
  5. 木瓜移动Rap版年终总结, 真的太顶了
  6. Linux 查看用户操作记录
  7. conda报错 ERROR REPORT Conda has prepared the above report.
  8. 【Lovea Chino】Node.js 仙侠传(第一部)
  9. 炒菜机器人的弊端_机器人炒菜缺点味 “人情味”还得用人
  10. MIT黑科技:通过手机记录的咳嗽数据检测是否感染新冠病毒