博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习[李宏毅]-笔记2-Regression:Case Study
阅读量:2121 次
发布时间:2019-04-30

本文共 2268 字,大约阅读时间需要 7 分钟。

目录

回归(Regression)的应用场景

在这里插入图片描述

  1. 股票预测:输入股市的历史数据,输出明天股市的预测值;
  2. 无人驾驶:输入图片,输出方向盘的角度;
  3. 产品推荐:输入使用者和商品,输出该使用者购买该商品的可能性;
    在这里插入图片描述
  4. 预测宝可梦(pokemon)进化后的CP(Combat Power)值;
    • xcp:进化前的CP值;
    • xs:属于哪一种物种;
    • xhp:生命值;
    • xw:重量;
    • xh:高度;

Step1:Model-确定模型

在这里插入图片描述

  • y = b + w x c p y = b + wx_{cp} y=b+wxcp
    • y y y为进化后的CP值
    • b , w b,w b,w为参数,可以为任意值
    • x c p x_{cp} xcp为进化前的CP值

Step2:Goodness of Function-评估模型的好坏

在这里插入图片描述

  • x c p n x_{cp}^n xcpn表示第n只宝可梦进化前的CP值, y ^ n \hat y^n y^n表示第n只宝可梦进化后实际的CP值, y n y^n yn表示根据方程预测出的宝可梦进化后的CP值。

在这里插入图片描述

  • 损失函数(Loss Function):采用最小二乘法,评估方程的好坏;

在这里插入图片描述

  • 越偏红色,代表方程越不好;越偏蓝色,代表方程越好,误差越小;

Step3:Best Function-选出最佳模型

在这里插入图片描述

  • arg是变元argument的缩写;

1).Gradient Descent-梯度下降

在这里插入图片描述

  • 前提:需要损失函数Loss Function是可微分的;
  • 上图以仅有一个参数的损失函数 L ( w ) L(w) L(w)为例,说明如何寻找 w w w使函数值最小;
  • 随机选择一个初始值 w 0 w^0 w0,计算该点的微分值,如果为负数,则需要增加 w 1 w^1 w1的值;否则,减少 w 1 w^1 w1的值;故 η \eta η前面为负号;
  • 每个step的大小取决于两点:现在所处位置的微分值;常数项 η \eta η,称为learning rate;
  • 经过多次迭代后,可得到局部最优解(local optimal),即微分值为零的点;线性函数得到局部最优解就是全局最优解(global optimal),非线性函数的局部最优解可能不等同于全局最优解;

在这里插入图片描述

  • 损失函数有两个参数的情况;
  • 上图中,最下面一行的下标写错了, w 2 w^2 w2 b 2 b^2 b2应该是根据点 ( w 1 , b 1 ) (w^1,b^1) (w1,b1)的微分值得到的;

在这里插入图片描述

在这里插入图片描述

  • 梯度下降的过程如上图所示;
  • 在线性回归中,损失函数是凸函数(convex),局部最优解即为全局最优解;

在这里插入图片描述

  • 求导得到偏微分

在这里插入图片描述

在这里插入图片描述

  • 用一组数据训练(training data),再用另一组数据做测试数据(testing data);
  • 测试数据中得到的average error可能会比训练数据得到的average error更大一点;

在这里插入图片描述

  • 尝试更加复杂的模型,增加一个二次项,如上图所示,可以看到得到的训练数据和测试数据的average error都更小,说明模型更好;
  • 图中,右上角为训练数据,右下角为测试数据;

在这里插入图片描述

  • 同理,考虑三次方的情况,可以看到训练数据和测试数据的average error都更小了一点;

在这里插入图片描述

在这里插入图片描述

  • 考虑四次方的时候,可以看到训练数据得到的average error为14.9,比之前的更小,但测试数据的average error变大了,变为28.8
  • 考虑五次方的时候,得到的结果更加糟糕;

在这里插入图片描述

在这里插入图片描述

  • 比较不同模型的结果;
  • 因为高次方包含低次方的结果(将前面的系数设为零即可),所以在训练数据中的得到的average error随着次数的增大越来越小;
  • 在训练数据中得到比较好的结果,在测试数据中得到不好的结果,这种现象叫做过拟合(overfitting);

在这里插入图片描述

在这里插入图片描述

  • 当宝可梦数量达到60只的时候,显然不是上述的函数关系,进化后的CP值与宝可梦的物种有关;
  • 将不同的物种用不同的颜色表示,如上图,所以需要重新设计模型

2).根据不同物种重新设计模型

在这里插入图片描述

在这里插入图片描述

  • 同一个模型的不同写法,第二种是写成线性函数;

在这里插入图片描述

  • 采用上述模型,得到的结果如图所示;
  • 有些地方不是拟合得很好,上述模型可以进一步优化吗?

在这里插入图片描述

  • 修改模型,并将宝可梦的hp值考虑进去;
  • 根据得到的结果,训练数据的average error为1.9,测试数据的average error为102.3,过拟合了;

在这里插入图片描述

在这里插入图片描述

  • y = b + ∑ w i x i y=b+\sum w_ix_i y=b+wixi,考虑不同物种情况下,将模型写成线性函数的形式;
  • 正则化(regularization),增加一项 λ ∑ ( w i ) 2 \lambda\sum (w_i)^2 λ(wi)2(惩罚项), λ \lambda λ是一个常数;
  • w i w_i wi越小,表示函数越平滑,对输入值x不敏感;
  • λ \lambda λ越大,表示 λ ∑ ( w i ) 2 \lambda\sum (w_i)^2 λ(wi)2在损失函数中的影响力越大,找到的函数越平滑;
  • 在训练数据中, λ \lambda λ越大,越倾向于考虑w的值,减少考虑training error的值,得到的error越大;
  • 在测试数据中, λ \lambda λ越大,得到的error先减小,后增大;我们喜欢平滑的函数,这样对输入值不敏感,但是又不能太平滑(例如,最平滑的情况就是一条水平线);所以需要调整 λ \lambda λ,来得到比较理想的函数,图中 λ = 100 \lambda=100 λ=100时比较理想;

转载地址:http://hqyrf.baihongyu.com/

你可能感兴趣的文章
《kubernetes权威指南·第四版》第二章:kubernetes安装配置指南
查看>>
Leetcode C++《热题 Hot 100-49》399.除法求值
查看>>
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
[Kick Start 2020] Round A 1.Allocation
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>