【小白学机器学习3】关于最简单的线性回归,和用最小二次法评估线性回归效果, 最速下降法求函数的最小值

目录

1 什么是回归分析

1.1 什么是线性回归

1.2非线性回归

2 数据和判断方法

2.1 原始数据

2.2 判断方法:最小二乘法

3 关于线性回归的实测

3.1 用直线模拟

3.2 怎么判断哪个线性模拟拟合更好呢?

3.2.1 判断标准

3.2.2 最小二乘法

3.2.3 高维度数据

3.3 用python来算下?(暂缺,用plot画图?)

4 关于误差和 E(θ)=1/2*(f(xi)-yi)^2 这个函数本身

4.0 注意新手错误

4.1  E(θ)这个函数本身

4.2 E(θ) 是否有最小值?

4.3 但是如何获得这个最小值呢?

4.3.1 方法1,直接求导数

4.3.2 如果找到E(θ)的最小值,就能找到对应的参数

5 用最速下降方法找到一个函数的最小值

5.1 最速下降法

5.2 假设 f(x) 如下,且从图像上看是有最小值的

5.3 最速下降方法的详细计算过程

5.3.0 最速下降方法公式

5.3.2 先分析函数f(x) 和其导函数 f(x)'       

5.3.3 最速下降方法的迭代过程

5.3.4 可以看到2个结论


1 什么是回归分析

  • 从时序数据来看,从过去数据去分析,生成1个模拟曲线。
  • 然后用这个模拟曲线去,用新的 x  去预测新的数据

1.1 什么是线性回归

  • 线性,就是指直线
  • 从线性代数的角度来看,就是这些向量是否线性相关,如果线性无关就是共线。
  • 线性回归,就是回归分析的模拟曲线是直线


1.2非线性回归

  • 如果用曲线模拟,也就是用非一次函数/非直线去模拟
  • 这样就是非线性回归了把
  • 等会儿试试

2 数据和判断方法

2.1 原始数据

  • 构造的原始数据
  • 故意构造了一个类二维曲线数据,这样用直线去模拟就一定有较大的误差
  • ROUND(0.5*C10^1.8+0.5*C10+2,0)

2.2 判断方法:最小二乘法

  • 均方误差  MSE=1/n*(f(xi)-yi)^2
  • 误差和:E(θ)1/2*(f(xi)-yi)^2 ,类似MSE

3 关于线性回归的实测

3.1 用直线模拟

做了3个线性模拟

  • f(x)=1+2x
  • f(x)=1+3x
  • f(x)=1+2.8x

3.2 怎么判断哪个线性模拟拟合更好呢?

3.2.1 判断标准

  • E(θ)=1/2*(f(xi)-yi)^2
  • 判断标准就是用 E(θ),哪个E(θ)更小,哪个的拟合效果更好。
  • 配合图形上曲线的对比,也可以看到这个结论

3.2.2 最小二乘法

  • 用E(θ)的大小可以判断不同的拟合曲线的优劣
  • 理论上E(θ)趋近于0,就可以找出拟合最好的曲线

3.2.3 高维度数据

实际上即使不是二维数据,不能用图形化的形式直观的看到。

仍然还是可以用E(θ)=1/2*(f(xi)-yi)^2来判断,比较,模拟曲线的拟合程度

  • 上帝视角的 y=ROUND(0.5*C10^1.8+0.5*C10+2,0)
  • f(x)=1+2x ,  E(θ)=352
  • f(x)=1+3x,   E(θ)=60.5
  • f(x)=1+2.8x,E(θ)=48.4
  • 从图形看,f(x)=1+2.8x , E(θ)=48.4 ,这个直线模拟的效果也确实相对更好

3.3 用python来算下?(暂缺,用plot画图?)

4 关于误差和 E(θ)=1/2*(f(xi)-yi)^2 这个函数本身

4.0 注意新手错误

  • 要分析得是 E(θ) 是否有最小值,从而找到误差最小得模拟曲线--以及模拟曲线的参数。
  • 而不是分析f(x) 这个模拟函数是否有最小值!!

4.1  E(θ)这个函数本身

  • 一般来说是多元函数曲线
  • 这样很可能就有最小值

4.2 E(θ) 是否有最小值?

  • 首先说明
  • 如果E(θ)=1/2*(f(xi)-yi)^2 这个函数本身 是直线,哪是无法找到最小值的
  • 如果E(θ)是一个开头向下,向上凹的曲线,也是没有最小值的
  • 只有E(θ)是一个开头向上,向下凹的曲线,即使有多个波段,也应该是有最小值的

例子:如果E(θ)=1/2*(f(xi)-yi)^2 这个函数本身 是直线,哪是无法找到最小值的

4.3 但是如何获得这个最小值呢?

  • 方法1,直接求导数
  • 方法2,用最速下降法来逐步达到最小值

4.3.1 方法1,直接求导数

  • 知道函数形式后,求导函数
  • 但是后面的函数可能很复杂,导函数不好求

4.3.2 如果找到E(θ)的最小值,就能找到对应的参数

  • 后面说明怎么求这样E(θ)函数的最小值
  • 只有E(θ)是一个开头向上,向下凹的曲线,即使有多个波段,也应该是有最小值的

  • 求E(θ)的最小值的目的,就是为了判断这个模拟曲线的拟合程度最好
  • 而前提是,曲线足够通用,
  • 比如  E(θ)=θ0+θ1x+θ2x^2+....
  • 函数是通用形式,哪剩下的就是去用  求E(θ)的最小值得过程,去找到合适得 参数(θ0,θ1,θ2...)

5 用最速下降方法找到一个函数的最小值

5.1 最速下降法

  • 最速下降方法:x=x-rate*f(x)'
  • 用学习率找到 f(x)取最小值时的x
  • 学习率一般要取小点,比如0.1,0.01 等等
  1. 学习率太大可能无法收敛
  2. 学习率太小收敛速度会慢

5.2 假设 f(x) 如下,且从图像上看是有最小值的

5.3 最速下降方法的详细计算过程

5.3.0 最速下降方法公式

  • 最速下降方法:x=x-rate*f(x)'                    
  • 用学习率找到 f(x)取最小值时的x                    

5.3.2 先分析函数f(x) 和其导函数 f(x)'       

  • x=1时取最小值    
  • 函数      f(x)=x^2-2x+1
  • 导函数   f(x)'=2x-2   (那么x=1时,f(x)'=0就是f(x)取到最小值)


5.3.3 最速下降方法的迭代过程(不断迭代取新的x)

  • 比如取 x=0为初始,rate=0.1
  • 第1轮:new x= x-rate*f(x)' =0-0.1*(2*0-2)=0-0.1*(-2)=0.2,新增了0.2
  • 第2轮:new x= x-rate*f(x)' =0.2-0.1*(2*0.2-2)=0.2-0.1*(-1.6)=0.2+0.16=0.36,新增了0.16
  • 第2轮:new x= x-rate*f(x)' =0.36-0.1*(2*0.36-2)=0.36-0.1*(-1.28)=0.36+0.128=0.488,新增了0.128

5.3.4 可以看到几个结论

  • 1)通过x=x-rate*f(x)' 公式迭代算出来的新的x, 每次增加的幅度再减小:0.2→0.16→0.128
  • 2)只有增加值逐渐减小,这样计算多次后,x会收敛。
  • 3)收敛在x=1与x的初始值无关,
  • 可以看到无论x的初始值取多少,比如初始x=0 或者x=5,经过这个算法,计算20次后,都趋近了x=1这个值。
  • 4)EXCEL里计算的数列是符合的,x=0时,这1行新x数据0.2    0.36    0.488    0.5904    0.67232    0.737856

5.3.5如果学习率rate=1 取值过大,导致永远无法收敛。见下图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/423175.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Consul使用详解

简介 Consul是一个由HashiCorp公司开发的开源软件,其发展历程可以概括为以下几个阶段: 初期阶段(2014-2015年):Consul最初发布于2014年5月,这个版本是基于Go语言开发的,并提供了诸如服务发现、…

旅游项目day14

其他模块数据初始化 搜索实现 请求一样,但是参数不一样,根据type划分。 后台需要提供一个搜索接口。 请求分发器: 全部搜索 目的地搜索 精确搜索、无高亮展示 攻略搜索 全文搜索、高亮显示、分页 游记搜搜 用户搜索 丝袜哥

01 Redis的特性

1.1 NoSQL NoSQL(“non-relational”, “Not Only SQL”),泛指非关系型的数据库。 键值存储数据库 : 就像 Map 一样的 key-value 对。如Redis文档数据库 : NoSQL 与关系型数据的结合,最像关系…

MYSQL之索引语法与使用

索引分类 分类 含义 特点 关键字 主键索引 针对表中主键创建的索引 默认自动创建,只能有一个 PRIMARY 唯一索引 …

【漏洞复现】CloudPanel makefile接口远程命令执行漏洞(CVE-2023-35885)

文章目录 前言声明一、CloudPanel 简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 CloudPanel 是一个基于 Web 的控制面板或管理界面,旨在简化云托管环境的管理。它提供了一个集中式平台,用于管理云基础架构的各个方面,包括 &a…

JVM实战篇:GC调优

目录 一.GC调优的核心指标 1.1吞吐量(Throughput) 1.2延迟(Latency) 1.3内存使用量 二.GC调优的方法 2.1监控工具 Jstat工具 VisualVm插件 Prometheus Grafana 2.2诊断原因 GC日志 GC Viewer GCeasy 2.3常见的GC模…

QT开发低功耗蓝牙BLE连接ECB02模块进行数据收发

时间记录:2024/1/22 一、注意点 (1)pro文件中引入bluetooth模块 (2)安卓端运行时需要同步打开定位功能才能扫描到蓝牙设备 (3)mingw套件不能在Windows上运行,需要使用MSVC套件编译…

Leetcode56. 合并区间

文章目录 题目原题链接思路代码 题目 以数组intervals表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: …

yolov5 opencv dnn部署自己的模型

yolov5 opencv dnn部署自己的模型 github开源代码地址使用github源码结合自己导出的onnx模型推理自己的视频推理条件c部署c 推理结果 github开源代码地址 yolov5官网还提供的dnn、tensorrt推理链接本人使用的opencv c github代码,代码作者非本人,也是上面作者推荐的…

开始学习vue2基础篇(初体验)

一、什么是VUE(官网 :https://cn.vuejs.org/) 官方给出的概念 :Vue (读音 /vju ː/ ,类似于 view) 是一套用 于构建用户界面的前端框架 渐进式的 JavaScript 框架 二、VUE的特点 易用 :基础只需HTML、CSS、…

4_机械臂运动学基础向量空间

在了解机械臂正解推导的过程中,几个问题一直困扰着我: 1、为什么3*3矩阵可以描述姿态?矩阵更进一步的意义是什么?姿态是否有其他的描述方式,如果有是什么? 2、机械臂法兰中心相对于基座的坐标,6…

PgSQL - 17新特性 - 块级别增量备份

PgSQL - 17新特性 - 块级别增量备份 PgSQL可通过pg_basebackup进行全量备份。在构建复制关系时,创建备机时需要通过pg_basebackup全量拉取一个备份,形成一个mirror。但很多场景下,我们往往不需要进行全量备份/恢复,数据量特别大的…