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

news2024/9/22 15:50:50

目录

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.coloradmin.cn/o/1404698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年数据中心交换机市场预测新鲜出炉,我们做了这些顺应趋势的事儿……

Dell’Oro Group发布的最新报告显示,2023年数据中心交换机市场与年初预测基本一致,200/400Gbps数据中心交换机的销售额几乎翻番。另外,AI(人工智能)与ML(机器学习)的发展势必推动服务器、存储、…

MATLAB字符串编辑常用代码

1.字符串赋值 % 字符串赋值 sabcdefg 2.字符串属性和操作 (1)获取字符串长度 sabcdefg;% 字符串赋值 length(a) % 获取字符串长度 (2)连接字符串 % 连接两个字符串,每个字符串最右边的空格被裁切 s1a s2b s3strcat(s1,s2) 3.字符串比较 % strcmp 比较两个字符串是…

STL---Priotity_queue+仿函数的介绍

一、优先级队列的介绍和使用 (1)介绍 翻译: (1) 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。 (2) 此上下文类似于堆&a…

VMware workstation平台下配置Fedora-Server-39-1.5虚拟机网络

VMware workstation平台下配置Fedora-Server-39-1.5虚拟机网络 Fedora包含的软件以自由及开放源码许可来发布,并旨在成为该技术领域的领先者。Fedora在专注创新、抢先集成新技术、与上游Linux社区紧密工作方面拥有良好名声。该文档适用于在VMware workstation平台下…

还在为iOS和iPadOS存储不足闷闷不乐?这里有优化空间的详细步骤

储存空间似乎是iPhone和iPad用户最大的抱怨之一,这要归功于应用程序占用了越来越多的储存空间,媒体变得比以往任何时候都更渴望储存。以下是解决方法。 本指南中的屏幕截图来自iPhone,但提示也适用于iPad。必要时将提及设备之间的差异。 如何检查iPhone和iPad上的储存空间…

一个好用的服务器控制面板

简介 它是一个免费开源的管理面板工具,可以帮助你集中管理多个服务器和网站。Ajenti 支持 Linux、BSD、Mac OS X和Windows 等多个操作系统,并且可以通过一个直观的 Web 界面来完成各种系统管理任务。 相比于其他管理面板,Ajenti有以下几个优…

【星海随笔】unix 启动问题记录.

启动Ubuntu操作系统时,直接进入GRUB状态。 调试时候,曾显示 no bootable device no known filesystem detected 注意: 目前 GRUB 分成 GRUB legacy 和 GRUB 2。版本号是 0.9x 以及之前的版本都称为 GRUB Legacy ,从 1.x 开始的就称…

【用积分求抛物线与直线围成的面积】

文章目录 一、Problem Discription二、Sample Input and Sample Output三、数学分析与推导计算1. 根据抛物线顶点坐标 P 1 ( x 1 , y 1 ) P_1(x_1, y_1) P1​(x1​,y1​)以及另一个点的坐标 P 2 ( x 2 , y 2 ) P_2(x_2, y_2) P2​(x2​,y2​),求出抛物线方程2. 根据…

单片机中MCU跑RTOS相比裸机的优势

经常有读者问关于RTOS的问题,比如:我现在要不要学习RTOS? 学习RTOS有什么好处? 我的项目要不要跑RTOS? 问这些问题,其实归根结底还是对RTOS理解的不够,项目开发的经验还不足等。针对这部分朋友…

PyTorch 内 LibTorch/TorchScript 的使用

PyTorch 内 LibTorch/TorchScript 的使用 1. .pt .pth .bin .onnx 格式1.1 模型的保存与加载到底在做什么?1.2 为什么要约定格式?1.3 格式汇总1.3.1 .pt .pth 格式1.3.2 .bin 格式1.3.3 直接保存完整模型1.3.4 .onnx 格式1.3.5 jit.trace1.3.6 jit.scrip…

品牌价值的累积与倍增:指数函数的含义及其在企业运营中的应用

品牌的价值日益凸显。品牌价值的累积与倍增不仅是企业追求的目标,也是市场竞争的重要标志。指数函数作为一种数学模型,对于描述品牌价值的增长具有重要意义。本文将深入探讨指数函数的含义及其在企业运营中的应用,并分析如何通过持续创新、品…

Unity 抽象工厂模式(实例详解)

文章目录 简介实例1实例2 简介 抽象工厂模式是一种创建型设计模式,它提供了一种方式来封装一组相关或相互依赖对象的创建过程,而无需指定具体类。这种模式常用于系统中有多组相关产品族,且客户端需要使用不同产品族中的对象时。 在Unity中&a…

canvas绘制旋转的椭圆花

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

Java 设计者模式以及与Spring关系(四) 代理模式

目录 简介: 23设计者模式以及重点模式 代理模式(Proxy Pattern) 静态代理示例 spring中应用 动态代理 1.基于JDK的动态代理 target.getClass().getInterfaces()作用 内名内部类写法(更简洁,但不推荐) 2.基于CGLIB实现 spring中应用 …

第137期 Oracle的数据生命周期管理(20240123)

数据库管理137期 2024-01-23 第137期 Oracle的数据生命周期管理(20240123)1 ILM2 Heat Map3 ADO4 优点5 对比总结 第137期 Oracle的数据生命周期管理(20240123) 作者:胖头鱼的鱼缸(尹海文) Orac…

图灵日记之java奇妙历险记--异常包装类泛型

目录 异常概念与体系结构异常的分类异常的处理防御式编程异常的抛出异常的捕获异常声明throwstry-catch捕获并处理 自定义异常类 包装类基本数据类型及其对应包装类装箱和拆箱 泛型泛型使用类型推导 裸类型说明 泛型的编译机制泛型的上界语法 异常概念与体系结构 在java中,将程…

《SPSS统计学基础与实证研究应用精解》视频讲解:SPSS数据排序

《SPSS统计学基础与实证研究应用精解》4.6 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解4.6节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。本书旨在手把手教会使…

智能机器人与旋量代数(9)

Chapt 3. 螺旋运动与旋量代数 3.1 螺旋运动 螺旋运动是关于一条空间直线的一个旋转运动,并伴随沿此直线的一个平移。是一种刚体绕空间轴 s s s旋转 θ \theta θ角,再沿该轴平移距离 d d d的复合运动,类似螺母沿螺纹做进给运动的情形。 一…

x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具

目录 简介首次用户快速实验指南基本功能性能特点竞品进一步探索 简介 dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。 支持 JSON,YAML,TOML&…

SQL提示与索引终章

✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL-进阶篇 📜 感谢大家的关注! ❤️ 可以关注黑马IT,进行学习 目录 🚀SQL提示 🚀覆盖索引 🚀前缀索引 &…