[翻译] 支持向量回归SVR的介绍
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−wixi)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(θ)=21i∑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(θ)=21i∑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(θ)=21i∑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 以获得模型所需的精度。
我们新的目标函数和约束如下:
目标函数:
min12∥w∥2\min \frac{1}{2}\|w\|^{2}min21∥w∥2
约束:
∣yi−wixi∣≤ε\left|y_{i}-w_{i} x_{i}\right| \leq \varepsilon∣yi−wixi∣≤ε
图例:
让我们在数据集上尝试简单的 SVR。下图显示了已经训练过的 SVR 模型在波士顿房价数据上的结果。 红线代表最佳拟合线,黑线代表误差范围 ε,我们将其设置为 5(5,000 美元)。
您可能很快意识到该算法不适用于所有数据点。该算法尽可能地解决了目标函数,但一些点仍然落在margin之外。 因此,我们需要考虑数据点的误差大于ϵ\epsilonϵ的可能性。 类似SVM中的松弛变量,我们可以用来松弛变量做到这一点。
3. 来给我们的模型添加一些松弛
松弛变量的想法很简单:允许任何变量都可以落在margin之外(由ϵ\epsilonϵ指定),我们可以将其与边距的偏差表示为ξ\xiξ。
尽管我们允许这些松弛存在,允许他们在ϵ\epsilonϵ之外,但是我们仍就希望减少他们。因此,我们需要将松弛变量也添加到目标函数中
则目标函数:
min12∥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−wixi∣≤ϵ+∣ξ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的介绍相关推荐
- ❤️解决非线性回归问题的机器学习方法总结:多项式线性模型、广义线性(GAM)模型、回归树模型、支持向量回归(SVR)模型
文章目录 前言 多项式回归模型 概念解释: sklearn实现多项式回归模型: 广义线性可加(GAM)模型 概念解释: pygam实现广义线性可加模型: GAM模型的优点与不足: 回归树模型 概念解释 ...
- 【视频】支持向量机SVM、支持向量回归SVR和R语言网格搜索超参数优化实例
最近我们被客户要求撰写关于SVM的研究报告,包括一些图形和统计输出. 什么是支持向量机 (SVM)? 我们将从简单的理解 SVM 开始. [视频]支持向量机SVM.支持向量回归SVR和R语言网格搜索超 ...
- 基于DDTBOX,使用线性支持向量回归(SVR)从ERP数据中解码连续变量
导读 事件相关电位(ERP)数据的多变量分类分析是预测认知变量的强大工具.然而,分类通常仅限于分类变量,并未充分利用连续数据,如反应时间.反应力或主观评分.另一种方法是支持向量回归(SVR),它使用单 ...
- 使用最大离散重叠小波变换MODWT和支持向量回归 SVR的金融时间序列预测
本例使用的数据链接如下:https://www.histdata.com/download-free-forex-historical-data/?/ascii/tick-data-quotes/AU ...
- 机器学习西瓜书笔记:软间隔和支持向量回归SVR
1.首先由SVM问题(最大间隔超平面模型):所有样本都可以正确分类的最优化问题,引入软间隔SVM(允许分类错误)的最优化问题,即需要添加损失函数(样本不满足约束的程度,或者说分类错误的程度),然后最优 ...
- 机器学习——支持向量回归(SVR)
机器学习--支持向量回归(SVR) educoder平台练习题 如果博客中图片加载失败可点击链接跳转至实训详情 https://www.educoder.net/shixuns/b6yi97f2/ch ...
- 【机器学习系列】之支持向量回归SVR
作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] [机器学习系列]之SVM硬间隔和软间隔 [机器学习系列]之SVM核函数和SMO ...
- 支持向量回归 svr
from sklearn import svm X = [[0, 0], [1, 1]] y = [0, 1]#建立支持向量分类模型 clf = svm.SVC()#拟合训练数据,得到训练模型参数 c ...
- 机器学习之支持向量回归(SVR)——南京审计大学金审学院
第1关:线性可分支持向量机 本关任务:根据本节课所学知识完成本关所设置的选择题. 第1题 B 第2题 B 第3题 C 第4题 B 第5题 D 第6题 AC 第2关:线性支持向量机 本关任务:使用skl ...
最新文章
- 创建 Pool VIP - 每天5分钟玩转 OpenStack(122)
- 153和154.寻找旋转排序数组中的最小值
- html图片滚动红点_HTML中更换或添加网站背景图片的代码怎么写?(示例)
- @service注解_Spring 中 @Component、@Service 等注解如何被解析的
- Java并发工具类Semaphore应用实例
- 安装和配置本地maven(三)
- 编译问题 文件查找失败: ‘vant‘
- 2的32次方减1用python,第二章python入门
- 调查显示:被黑过的公司难以找到投资
- request技巧-utils的功能-cookie对象与字典的转换-URL编码与解码-关掉SSL验证
- 热情不减!iPhone12国行首批供货已售罄
- 如何提取html的文本,如何从html标签之间提取文本?
- android 创建目录/文件/读写文件
- 【玩转win7之简单几步为闪存盘加密】
- 最新PHP全开源京东淘宝唯品会自动抢单系统源码
- 第一天的学习内容----Excel自动化处理
- OPENGL 简单图形绘制
- Excel隔行插入空白行小技巧
- 控件的颜色设置(本景色,文本色,文本背景色)
- Linux:chmod命令
热门文章
- element ui tabs-tab页放到右边、侧边
- ie浏览器主页被毒霸锁定,解决
- Mysql中的varchar类型转换成int类型
- 关于ubuntu18.04部署ROS系统
- 木瓜移动Rap版年终总结, 真的太顶了
- Linux 查看用户操作记录
- conda报错 ERROR REPORT Conda has prepared the above report.
- 【Lovea Chino】Node.js 仙侠传(第一部)
- 炒菜机器人的弊端_机器人炒菜缺点味 “人情味”还得用人
- MIT黑科技:通过手机记录的咳嗽数据检测是否感染新冠病毒