回归(Regression)
回归(Regression)
生活中的很多事物之间是相互影响的,如商品的质量跟用户的满意度密切相关。而回归分析是要分析两个事物间的因果关系,即哪一个是自变量和因变量,以及自变量和因变量之间的关系;回归有着较多的实际应用场景,如分析天气和空气中跟物质含量跟PM2.5浓度的关系,在分析出这一关系后,即可以用来预测未来某一时刻的PM2.5;如在无人车中,分析无人车红外线感测值、各个方向的视觉图等与方向盘角度之间的关系;
回归案例分析
分析神奇宝贝自身各个属性(也称作特征)跟进化后CP(Combat Power)值之间的关系;神奇宝贝是一个对象,我们可用通过这个对象的各个属性来对其进行描述。神奇宝贝的各种属性有:进化前的CP值、物种、生命值、体重、高度;
图1-1 神奇宝贝CP值预测
模型选择
我们需要用一个函数来表示神奇宝贝各个属性和进化后CP值的关系,但函数有千千万万,该如何选择?可以选择一个的线性函数来尝试,由于不知道那些属性跟最终的变量有真正关系,因此可以先只用一个可能有关系的变量进行尝试;最后的函数形式如(1)所示
数据收集
在确定模型的结构后,需要确定模型的参数w,b;而模型参数是要从数据集中来拟合出来。由于模型的结构为(1),因此模型的输入为进化前的CP值,输出为进化后的CP值,数据集。为了方便直观查看变量间的关系,往往需要对数据进行可视化
图1-2 进化前后CP值数据集
函数评估
我们最终的目的是要求解出(1)中的参数w,b;但w,b的取值是无限的,而哪一个取值才是最好的呢?损失函数(Loss Function)可以用来评估w,b取值的好坏。我们希望的是w,b能够使输出的跟
尽可能的相近,因此损失函数可以定义为
参数优化
在确定好损失函数后,我们希望的是w,b能够使L(w,b)最小化,表明实际输出值和最接近。最佳的w,b用w*,b*来表示即
我们可以枚举所有的(w,b)来确定(w*,b*),只是这样太过麻烦甚至无法实现。因此需要有其他方法。当然也可以通过解线性方程来进行求解,而另外一种更加通用的解法就是梯度下降(Gradient Descent)。使用梯度下降的前提是L(w,b)为连续可微的!
w,b参数的更新形式为(4),
w,b的更新就是减去对应的偏导数;其中为学习率,控制着w,b的收敛速度;
泛化测试(Generalization Testing)
虽然在训练集上的,误差值已经优化的最小;但是,我们更关心的是训练出来后整个模型的泛化能力,即在测试集上对模型的预测误差进行测试;有时候我们的模型在训练集上已经训练到最好,但在测试集上却表现的很糟糕,这种现象称作“过拟合”。
模型迭代
在模型选择时,我们只是考虑最为简单的线性模型。因此,可以增加整个模型的复杂程度,例如可能增加二次式使模型可以表示曲线
在确定新的模型结构后,就可进行参数优化、泛化测试;虽然增加模型的复杂度,能够使模型在训练集上的误差减少,但是却可能会增加“过拟合”的情况。因此,复杂的模型并不总是带来更好的结果。
技巧使用
数据增加
我们在单独考虑进化前的CP值跟进化后CP值之间的关系,并且在只有10个数据集的情况下进行模型设计。因此需要数据集的数量,并进行可视化,如图1-3所示
图1-3 数据集可视化
显然,在增加数据后,整个数据的分布就完全不是一条直线能够去拟合的。如果你对数据足够敏感的话,会发现神奇宝贝的物种对整个数据分布其很大影响,如图1-4所示;
图1-4 物种对数据集分布影响
正则化(Regularization)
如果我们不是神奇宝贝的专家,那么依旧可行的方法是将所有你能够想到的属性都加到模型中,去设计出一个非常复杂的模型。通常,复杂的模型容易出现过拟合。当出现过拟合时,该怎么办?
对Loss Function进行调整,之前设定的损失函数为(2),现在我们增加多个属性,并对(2)进行调整
其中,前一项表示实际值和训练集之间的误差,而加入后一项的目的在于使wi尽可能小;使wi尽可能小是为了使得整个损失函数的平滑性更好。平滑性指的是当函数的输入发生变化时,对函数输出的变化尽可能小;因此,平滑性可以使得当训练集中存在噪音时,这些噪音数据对整个模型的影响会比较小。
图1-5 正则化对训练和测试的影响
从图1-5我们发现,当的值越大,训练误差也就增加,这是因为当
值越大,
对整个损失函数的值影响越大;当
的值越大,测试误差是先减少后增加,我们希望模型的平滑性可以适当增加,但不用过于平滑。因为,直线是最平滑的,但是最平滑的直线却什么都表示不了。
增加正则化是使损失函数的平滑性更好,因此后一项不需要写成,因为增加b并不会改变函数的平滑性,只是使函数上下移动而已。
参考资料
回归(Regression)的更多相关文章
- 浅谈回归Regression(一)
一.什么是回归? 孩子的身高是否与父母有关? 实际上,父母和孩子的身高是受到回归效应影响的.在时间纵轴上受影响.具有随机性的事物,无不遵循这一规律. 只要数据足够大,人类的身高或者智商,都有趋于平均值 ...
- 利用Caffe做回归(regression)
Caffe应该是目前深度学习领域应用最广泛的几大框架之一了,尤其是视觉领域.绝大多数用Caffe的人,应该用的都是基于分类的网络,但有的时候也许会有基于回归的视觉应用的需要,查了一下Caffe官网,还 ...
- 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: ...
- 回归(regression)、梯度下降(gradient descent)
本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇 ...
- 回归regression
X-Y存在某种映射关系,回归:确定出关系模型.
- 回归(regression)与分类(classification)的区别
术语监督学习,意指给出一个算法,需要部分数据集已经有正确的答案. " 分类和回归的区别在于输出变量的类型. 定量输出称为回归,或者说是连续变量预测:定性输出称为分类,或者说是离散变量预测. ...
- Machine Learning in Action -- 回归
机器学习问题分为分类和回归问题 回归问题,就是预测连续型数值,而不像分类问题,是预测离散的类别 至于这类问题为何称为回归regression,应该就是约定俗成,你也解释不通 比如为何logistic ...
- 【Todo】【转载】Spark学习 & 机器学习(实战部分)-监督学习、分类与回归
理论原理部分可以看这一篇:http://www.cnblogs.com/charlesblc/p/6109551.html 这里是实战部分.参考了 http://www.cnblogs.com/shi ...
- 【IUML】回归和梯度下降
回归(Regression) 在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如local ...
- 从损失函数优化角度:讨论“线性回归(linear regression)”与”线性分类(linear classification)“的联系与区别
1. 主要观点 线性模型是线性回归和线性分类的基础 线性回归和线性分类模型的差异主要在于损失函数形式上,我们可以将其看做是线性模型在多维空间中“不同方向”和“不同位置”的两种表现形式 损失函数是一种优 ...
随机推荐
- python对离散数据进行编码
机器学习中会遇到一些离散型数据,无法带入模型进行训练,所以要对其进行编码,常用的编码方式有两种: 1.特征不具备大小意义的直接独热编码(one-hot encoding) 2.特征有大小意义的采用映射 ...
- Future.get(并发之从任务中产生返回值)
import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java ...
- Linux 路由 策略路由
Linux 路由 策略路由 目录 Linux 路由 策略路由 一.路由表 编辑路由表配置文件:/etc/iproute2/rt_tables添加删除修改路由表 二.IP策略 查看IP策略 添加IP策略 ...
- TurtleBot3使用课程-第三节b(北京智能佳)
目录 1.使用TurtleBot3机械手运行SLAM 2 1.1 roscore运行 2 1.2 准备行动 3 1.3 运行SLAM节点 3 1.4 运行turtlebot3_teleop_key节点 ...
- JButton的常用方法
JButton 实现了普通的三态外加选中.禁用状态,有很多方法可以设置,不要自己去写鼠标监听器.setBorderPainted(boolean b) //是否画边框,如果用自定义图片做按钮背景 ...
- 软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结
本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...
- 使用SharePoint App-Only获得访问权限
目前在开发SharePoint Online的过程中,主要使用通过Azure AD的方式获得应用的访问权限,但是SharePoint App-Only的方式依旧被保留了.使用这种方式进行CSOM开发比 ...
- laravel5.4 接入qq第三方登录
第一步:先composer安装需要用到的依赖,命令行如下 composer require socialiteproviders/qq 第二步:在config/app.php 中的 providers ...
- 基于腾讯云存储网关 CSG 实现视频在线转码分发
一.背景 随着越来越多的传统业务云化和云端业务发展,数据上云和云端数据处理领域的需求爆发式增长.腾讯云存储网关CSG提供一键部署开箱即用的便捷模式,深度结合COS对象存储生态,为用户提供方便快捷的数据 ...
- TCP/IP五层模型-应用层-DNS协议
1.定义:域名解析协议,把域名解析成对应的IP地址. 2.分类:①迭代解析:DNS所在服务器若没有可以响应的结果,会向客户机提供其他能够解析查询请求的DNS服务器地址,当客户机发送查询请求时,DNS ...