回归(Regression )

模型定义

Regression 就是找到一个函数 functionfunction ,通过输入特征 x,输出一个数值 Scalar。

模型应用

  • 股市预测(Stock market forecast)

    • 输入:过去10年股票的变动、新闻咨询、公司并购咨询等
    • 输出:预测股市明天的平均值
  • 自动驾驶(Self-driving Car)
    • 输入:无人车上的各个sensor的数据,例如路况、测出的车距等
    • 输出:方向盘的角度
  • 商品推荐(Recommendation)
    • 输入:商品A的特性,商品B的特性
    • 输出:购买商品B的可能性
  • Pokemon精灵攻击力预测(Combat Power of a pokemon):
    • 输入:进化前的CP值、物种(Bulbasaur)、血量(HP)、重量(Weight)、高度(Height)
    • 输出:进化后的CP值

模型实现

后面的例子以视频流量预测来探讨,即知道过去几个月的视频观看流量数据,来预测今天的流量数据的准确度。

第一步:Function with Unknown Parameters(构造初始模型)

先做一个最初步的线性模型猜测,假设我们写成这个样子:

  • y是我们準备要预测的东西,即预测今天的流量人数
  • x是这个频道,前一天总共观看的人数,
  • b跟w是未知的参数,它是準备要透过资料去找出来的,我们还不知道w跟b应该是多少,我们只是隐约的猜测

那现在总之,我们就随便猜说, y=b+w*x ,而b跟w是未知的,这个带有未知的参数,这个Parameter中文通常翻译成参数,这个带有UnknownParameterFunction 我们就叫做Model,所以我们常常听到有人说,模型 Model,Model这个东西在机器学习裡面,就是一个带有,未知的Parameter的Function,

第二部:Define Loss from Training Data(定义损失函数)

​ 第二个步骤,我们要定义一个东西叫做Loss,Loss它也是一个Function,那这个Function它的输入,是我们Model里面的参数,我们的Model叫做, y=b+w*x,而b跟w是未知的,是我们准备要找出来的,所谓的这个Loss,它是一个Function,这个Function的输入,就是b跟w,所以L它是一个Function,它的输入是Parameter,是model里面的Parameter,那这个Loss 这个Function,这个Function输出的值代表说,现在如果我们把这一组未知的参数,设定某一个数值的时候,这笔数值好还是不好

这里我们把通过模型预测出来的结果叫y1,而实际的结果为y2,那么其中的误差就是e = |y1-y2|:

我们就把每一天的误差,通通加起来,加起来然后取得平均,这个大N代表我们的训验资料的个数,就是所有训练资料的个数,我们算出一个L,L是每一笔训练资料的误差,这个大L就是我们的Loss.

测的值跟实际的值之间的差距,其实有不同的计算方法,在我们刚才的例子裡面,我们是算y1跟y2之间绝对值的差距,这一种计算差距的方法,得到的这个大L,得到的Loss叫 mean absolute error,缩写是MAE,如果你今天的e是用相减y平方算出来的,这个叫mean square error,又叫MSE,那MSE跟MAE,他们其实有非常微妙的差别.我们就是选择MAE,作为我们计算这个误差的方式,把所有的误差加起来,就得到Loss,如果y1和y2它都是机率,都是机率分佈的话,在这个时候,你可能会选择Cross-entropy,我们这边就是选择了MAE,那这个是机器学习的第二步.

Error Surface(损失值可视化)

​ 在这个等高线图上面,越偏红色系,代表计算出来的Loss越大,就代表这一组w跟b越差,如果越偏蓝色系,就代表Loss越小,就代表这一组w跟b越好

第三步:Optimization

要做的事情就是,找一个w跟b,把未知的参数,找一个数值出来,看代那一个数值进去,可以让我们的大L,让我们的Loss的值最小,那个就是我们要找的w跟b,那这个可以让loss最小的w跟b,我们就叫做 w* 跟 b* 代表说他们是最好的一组w跟b,可以让loss的值最小.

首先在这里引入一个概念 学习率 :移动的步长,如图中η

  • 步骤1:随机选取一个 w0
  • 步骤2:计算微分,也就是当前的斜率,根据斜率来判定移动的方向
    • 大于0向右移动(增加w)
    • 小于0向左移动(减少w)
  • 步骤3:根据学习率移动
  • 重复步骤2和步骤3,直到找到最低点

整理以后:

梯度下降推演最优模型的过程:

  • 每一条线围成的圈就是等高线,代表损失函数的值,颜色约深的区域代表的损失函数越小
  • 红色的箭头代表等高线的法线方向

过拟合

定义

我们的数据在训练集上可能很好的表现,但是在遇到新的数据后,表现就没有那么出色了,这种现象叫过拟合。

过拟合与欠拟合对比

原因

1.训练集的数据太少

2.训练集和新数据的特征分布不一致

3.训练集中存在噪音。噪音大到模型过分记住了噪音的特征,反而忽略了真实的输入输出间的关系。

4.权值学习迭代次数足够多,拟合了训练数据中的噪音和训练样例中没有代表性的特征。

解决方案

1.丢弃一些不能帮助我们正确预测的特征。

可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙,比如PCA

2.正则化。

保留所有特征,但是减少参数的大小。

带正则化的损失函数:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

步骤优化

2个input的四个线性模型是合并到一个线性模型中

如果希望模型更强大表现更好(更多参数,更多input)

加入正则化
学习参考:https://datawhalechina.github.io/leeml-notes/#/chapter3/chapter3

回归(Regression )相关推荐

  1. 【李宏毅机器学习】02:回归Regression

    李宏毅机器学习02:回归Regression 文章目录 李宏毅机器学习02:回归Regression 一.回归(Regression)的定义 1.Regression: Output a scalar ...

  2. 回归- Regression

    回归- Regression ------------------------------------------ 回归- Regression 线性回归Linear regression 模型表示M ...

  3. 机器学习之回归(Regression)再理解

    文章目录 一 前言引入 1. 回归定义及应用场景 2. 解决步骤 3. 过拟合和解决方法 二 回归问题再理解 1. 问题提出 2. 问题解决 三 结束语 一 前言引入 1. 回归定义及应用场景    ...

  4. 回归(regression)与分类(classification)的区别

    回归与分类的不同 1.回归问题的应用场景 2.分类问题的应用场景 3.如何选择模型 回归与分类的不同 1.回归问题的应用场景 回归问题通常是用来预测一个值,如预测房价.未来的天气情况等等,例如一个产品 ...

  5. 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

    前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公 ...

  6. 李宏毅机器学习 之 回归Regression(二)

    目录 1.回归的定义 2.回归的例子 3.建模步骤 1)模型假设,选择模型框架(线性模型) 2)模型评估,如何判断众多模型的好坏(损失函数) 3)模型优化,如何筛选最优的模型(梯度下降) 4.步骤优化 ...

  7. 李宏毅机器学习课程--回归(Regression)

    近期在学习李宏毅老师的机器学习视频(https://www.bilibili.com/video/av10590361/?p=4),下面写一下自己的心得体会. 李老师用的是精灵宝可梦做的比喻,假设进化 ...

  8. 机器学习之数学基础(四)~Lasso Regression回归, L1、L2 Regularization正则化, 回归问题中的损失函数

    目录 1. Lasso回归 1.1 概念 1.2 正则化 1.3 Lasso回归模型 1.4 为什么Lasso Regression可以做降维? 1.5 参数求解 (1)坐标轴下降法 (2)最小角回归 ...

  9. 水稻微生物组时间序列分析4-随机森林回归

    写在前面 哪些菌可以作为生育时间的biomarkers? 回归分析 读取文件 随机森林回归 交叉验证 feature重要性 美化feature贡献度柱状图 图4.2. 绘制时间序列热图 猜你喜欢 写在 ...

  10. Keras【Deep Learning With Python】LSTM 循环神经网络解决Regressor回归问题

    文章目录 1 前言 2 RNN 的弊端 3 LSTM 4 代码实现 5 重要部份讲解 6 输出: 1 前言 和前几篇文章一样,依旧是分为讲解和代码实现. 2 RNN 的弊端 之前我们说过, RNN 是 ...

最新文章

  1. 编译器设计-符号表-中间代码生成
  2. Ajax实现DataGrid/DataList动态ToolTip
  3. linux之sed命令n,N,d,D,p,P,h,H,g,G,x解析
  4. Python全栈开发之路 【第六篇】:Python基础之常用模块
  5. 分享超全的 Linux 渗透测试命令速查表
  6. 【简洁代码】1053 住房空置率 (20分)_22行代码AC
  7. SAP WebIDE一个和Destination相关的问题 - OData下拉菜单里的Destination从哪里来的
  8. lazada铺货模式的选品_lazada小白的运营难点→铺货与精细化运营的优劣势详解
  9. c#重写了窗体的OnKeyDown事件,但是不执行
  10. 【HDU - 1326】Box of Bricks(模拟水题)
  11. Win7系统打开摄像头提示“请检查装置连接状况”怎么办
  12. 不能在计算机网络上共享的打印机驱动程序,打印机已经共享,可是当别的电脑安装共享的打印机驱动程序时提示 windows 没法连接到打印机。拒绝访问??...
  13. 网易手游《幻书启世录》将于2022年2月14日停止运营
  14. JVM(4):Jvm调优-命令篇
  15. 易灵思FPGA--PLL资源
  16. 荐书 | 22本颠覆我们认知的思维方式(上)
  17. 在闲鱼实习是一种什么样的体验
  18. CycleGan脱衣服(男人)
  19. 【ICML2021】 9篇RL论文作者汪昭然:构建“元宇宙”和理论基础,让深度强化学习从虚拟走进现实...
  20. 如何善用家中闲置的带宽资源赚钱(2020版)

热门文章

  1. QT使用QMovie播放Gif动画
  2. 布尔运算 : ^(异或运算XOR)、(与运算AND)、|(或运算OR)、 、~(非门NOT)
  3. qq公众平台出错了609_中仑供应链业务线:一站式快消品订货平台
  4. Python的pandas简单操作
  5. 事实上已经有一些职业正在被人工智能所取代
  6. lq到底是什么意思_LQ是什么意思..?!谁知道..!?
  7. 走进Java接口测试之简单快速的Mock Server Moco
  8. 写一个WFP驱动,拦截网络
  9. 多维数组VS多维空间
  10. 《Migrating to Cloud-Native Application Architectures》学习笔记之Chapter 3. Migration Cookbook...