【小白学机器学习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.mzph.cn/news/640843.shtml

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

相关文章

【征服redis16】收官-redis缓存一致性问题解决方案

今天我们来写redis最后一篇:redis作为缓存时如何与数据库实现数据一致的问题。 最近看redis看得有点麻了,这篇就简单描述吧 目录 1.什么是缓存与数据库一致性问题 1.1 缓存一致性的概念 1.2 缓存不一致的场景 2.缓存不一致的解决思路 1.什么是缓存…

HarmonyOS 通过Web组件嵌套网络应用

我们今天来说说 在程序中嵌套一个网址地址 HarmonyOS中是通过一个简单的WEB组件来实现 网络应用就是相当于网址地址 通过链接将应用嵌入到手机当中 WEB组件需要两个参数 一个是 src 地址 要嵌套的网址 另一个是 控制器 我们可以先编写代码如下 import webview from "o…

力扣hot100 环形链表 快慢指针 计步器

Problem: 141. 环形链表 文章目录 思路💖 快慢指针法💖 计步器法 思路 👨‍🏫 参考题解 💖 快慢指针法 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) /*** Definition for singly-linked list…

【QT+QGIS跨平台编译】之五:【curl+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、curl介绍二、curl下载三、文件分析四、pro文件五、编译实践 一、curl介绍 curl(CommandLine Uniform Resource Locator)主要功能就是用不同的协议连接和沟通不同的服务器,相当封装了的socket。 libcurl支持http, https, ftp, g…

大模型实战营Day5笔记

大模型部署背景 大模型部署是指将训练好的模型在特定的软硬件环境中启动的过程,使模型能够接收输入并返回预测结果。大模型的内存开销巨大,7B模型仅权重需要14G内存。另外大模型是自回归生成,需要缓存Attention的 k/v。 LMDeploy 简…

超简单的OCR模块:cnocr

前言 毫无疑问的是,关于人工智能方向,python真的十分方便和有效。 这里呢,我将介绍python众多OCR模块中一个比较出色的模块:cnocr 模块介绍 cnocr是一个基于PyTorch的开源OCR库,它提供了一系列功能强大的中文OCR模型和…

小型园区组网实例

目录 拓扑需求IP规划路由配置交换机配置NAT配置ACL配置DHCP配置配置过程:配置结果: OSPF配置链路聚合配置配置过程: 网络测试 拓扑 需求 企业网络信息服务平台需实现功能:企业网站服务器、FTP服务器、DNS服务器。企业ip分配地址段…

阿里巴巴开源联邦学习框架FederatedScope

5月5日,阿里巴巴达摩院发布新型联邦学习框架FederatedScope,声称可以在不共享训练数据的情况下开发机器学习算法,从而保护隐私。,其源代码现已在Apache 2.0许可下发布在GitHub上。 介绍 该平台被描述为一个全面的联邦学习框架&a…

html 3D 倒计时爆炸特效

下面是代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>HTML5 Canvas 3D 倒计时爆炸特效DEMO演示</title><link rel"stylesheet" href"css/style.css" media"screen&q…

Ubuntu用gparted重新分配空间

ubuntu系统使用过程中安装系统时预先留的空间不够使用怎么办&#xff1f; 这么办&#xff01; 首先 使用df -h 查看当前空间使用情况 已经分配的空间重新规划 &#xff1f; 先将已分配的空间中的多余空间分离出来&#xff1b; 假设我想将挂载点/home下的一部分空间分给挂载…

BL120PM PLC网关,实现PLC协议转Modbus协议

随着物联网技术的迅猛发展&#xff0c;人们深刻认识到在智能化生产和生活中&#xff0c;实时、可靠、安全的数据传输至关重要。在此背景下&#xff0c;高性能的物联网数据传输解决方案——协议转换网关应运而生&#xff0c;广泛应用于工业自动化和数字化工厂应用环境中。 钡铼…

在linux部署Prometheus+Grafana+Exporter监控系统性能

Prometheus、Grafana和Report组件是什么&#xff1f; Prometheus、Grafana和Exporter是常用于系统监控和指标收集的组合。 Prometheus是一种开源的系统监控和警报工具。它可以收集各种指标数据&#xff0c;并提供强大的查询语言和灵活的警报规则&#xff0c;用于实时监控系统…

Prometheus配置Grafana监控大屏(Docker)

拉取镜像 docker pull grafana/grafana挂载目录 mkdir /data/prometheus/grafana -p chmod 777 /data/prometheus/grafana临时启动 docker run -d -p 3000:3000 --name grafana grafana/grafana从容器拷贝配置文件至对应目录 docker exec -it grafana cat /etc/grafana/gra…

Linux之安装配置CentOS7+换源

目录 一. 安装CentOS7 二. 配置CentOS7 三. 查看、设置IP地址 3.1 查看IP地址 3.2 设置IP地址 四. 使用Xshell连接Linux客户端 4.1 Xshell的下载 4.2 Xshell的使用 五. 换软件源 一. 安装CentOS7 博主是在虚拟机中进行安装的&#xff0c;大家也可以在虚拟机中跟着尝试一…

已解决Error:AttributeError: module ‘numpy‘ has no attribute ‘int‘.

文章目录 引言报错分析解决方案1&#xff1a;降低NumPy版本解决方案2&#xff1a;更改NumPy源码 结尾 引言 在Python编程中&#xff0c;NumPy是一个不可或缺的库&#xff0c;尤其在处理大规模数值计算时。但即使是这个强大的工具&#xff0c;也可能在使用过程中遇到问题。其中…

ZigBee学习(一)

文章目录 一、ZigBee介绍二、IEEE 802.15.42.1 物理层2.2 MAC层2.3 如何实现网络和设备寻址2.4 能量管理 三、ZigBee网络拓扑结构四、ZigBee配置参数 一、ZigBee介绍 ZigBee是一种基于IEEE 802.15.4标准的高级通信协议&#xff0c;它被设计用于低速率、低功耗和短距离无线通信&…

《移动通信原理与应用》——QPSK调制解调仿真

目录 一、QPSK调制与解调流程图&#xff1a; 二、仿真运行结果&#xff1a; 三、MATLAB仿真代码&#xff1a; 一、QPSK调制与解调流程图&#xff1a; QPSK调制流程图&#xff1a; QPSK解调流程图&#xff1a; 二、仿真运行结果&#xff1a; 1、Figure1:为发送端比特流情…

探索设计模式的魅力:一次设计,多次利用,深入理解原型模式的设计艺术

原型模式是一种设计模式&#xff0c;属于创建型模式的一种&#xff0c;它用于创建重复的对象&#xff0c;同时又能保持性能。在原型模式中&#xff0c;通过复制现有对象的原型来创建新对象&#xff0c;而不是通过实例化类来创建对象。这样做可以避免耗费过多的资源开销&#xf…

python-自动篇-办公-用Excel画画

文章目录 代码所遇问题ModuleNotFoundError: No module named xlsxwriterFileNotFoundError: [Errno 2] No such file or directory: 111.jpg 效果附件图片excel 代码 # coding: utf-8from PIL import Image from xlsxwriter.workbook import Workbookclass ExcelPicture(obje…

使用双异步后,如何保证数据一致性?

目录 一、前情提要二、通过Future获取异步返回值1、FutureTask 是基于 AbstractQueuedSynchronizer实现的2、FutureTask执行流程3、get()方法执行流程 三、FutureTask源码具体分析1、FutureTask源码2、将异步方法的返回值改为Future<Integer>&#xff0c;将返回值放到new…