Linear Regression 线性回归

深度学习:

  1. 数据集
  2. 模型选择
  3. 训练(KNN不需要)
  4. 推理(预测)

假设学生用x小时学习深度学习,能够得要y分数:
在这里插入图片描述
那么学习4小时,能够得到多少分?
在这里插入图片描述
用已知数据作为训练集:
在这里插入图片描述
选取线性模型作为模型进行预测,线性模型是最简单的模型:𝑦=𝑥∗𝜔+𝑏,我们需要求:𝜔、𝑏
在这里插入图片描述
在本次案例中,为了简化模型,使𝑦=𝑥∗𝜔:
在这里插入图片描述
最开始𝜔是选取一个随机值,然后通过训练想要找到一个𝜔的取值使得生成的预测函数与真实值的差异尽可能小,即损失尽可能小。

在这里插入图片描述
我们采用损失函数来衡量真实值与预测值之间的差异,目标就是:找到一个𝜔使得损失函数的值最小。
采用真实值与预测值的平方作为损失函数(loss):
假设𝜔=3、4、0…,计算出每个样本的损失,之后求平均损失。目标就是找到一个𝜔使得这个平均损失最小:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

当𝜔=0时,平均误差为0,这是理想状态下最好的取值。是训练的理想目标!

注意:训练损失loss:是针对具体某一个样本的;将整个训练集的损失函数求平均(MSE)是最常用的损失函数cost之一:

在这里插入图片描述
在这里插入图片描述
怎样才能找到最小的损失值呢?
假设损失值和w的关系如下图所示,我们可以采用穷举法将所有w取值的损失值都计算出来,就可以得到损失值的最小值是在w=3时取得的。
在这里插入图片描述

plt.plot()

plt.plot() 是Matplotlib库中用于==绘制线图(折线图)==的主要函数之一。
它的作用是将一组数据点连接起来,以可视化数据的趋势、关系或模式。以下是 plt.plot() 的详细介绍:

plt.plot(x, y, fmt, **kwargs)

x:表示X轴上的数据点,通常是一个列表、数组或一维序列,用于指定数据点的水平位置。
y:表示Y轴上的数据点,通常也是一个列表、数组或一维序列,用于指定数据点的垂直位置。
fmt:是一个可选的格式字符串,用于指定线条的样式、标记和颜色。例如,‘ro-’ 表示红色圆点线条。
**kwargs:是一系列可选参数,用于进一步自定义线条的属性,如线宽、标记大小、标签等。

以下是一些常用参数和用法:

样式参数(fmt): 格式字符串可以包含一个字符来指定颜色,一个字符来指定标记样式,以及一个字符来指定线条样式。例如,‘r-’ 表示红色实线,‘bo–’ 表示蓝色圆点虚线。线条样式(linestyle): 使用linestyle参数可以指定线条的样式,如实线(‘-’)、虚线(‘–’)、点划线(‘-.’)等。标记样式(marker): 使用marker参数可以指定数据点的标记样式,如圆点(‘o’)、方块(‘s’)、星号(‘*’)等。线条颜色(color): 使用color参数可以指定线条的颜色,可以使用颜色名称(如’red’)、缩写(如’r’)或十六进制颜色码(如’#FF5733’)。线宽(linewidth): 使用linewidth参数可以指定线条的宽度,以数字表示。标记大小(markersize): 使用markersize参数可以指定标记的大小,以数字表示。图例标签(label): 使用label参数可以为线条指定标签,用于创建图例。其他属性: 还有许多其他属性可用于自定义线图,如透明度、渐变、线型、阴影等。

plt.plot() 不仅可以绘制简单的线图,还可以用于绘制多条线,添加图例、标签、标题,设置坐标轴范围和刻度等。它是Matplotlib中最常用的绘图函数之一,适用于可视化数据集的趋势和关系。

import matplotlib.pyplot as plt
#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 示例数据x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 18, 16]# 绘制线图,并自定义外观
plt.plot(x,                         # X轴数据y,                         # Y轴数据marker='o',                # 标记样式:圆点linestyle='-',             # 线条样式:实线color='green',              # 线条颜色:蓝色linewidth=2,               # 线宽:2markersize=10,              # 标记大小:8label='数据1'               # 图例标签
)# 添加标签和标题
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('标题')# 添加图例
plt.legend()# 显示网格线
plt.grid(True)# 自定义刻度
plt.xticks([1, 2, 3, 4, 5], ['一', '二', '三', '四', '五'])# 显示图表
plt.show()

参考博客

代码

import numpy as np
import matplotlib.pyplot as plt
#plt是常用的绘制图像的库
#训练集数据
x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]#定义线性模型y=wx
def forward(x):return x * w#定义损失函数:𝑙𝑜𝑠𝑠=(y_predect−𝑦)2=(𝑥∗𝜔−𝑦)2
def loss(x, y):y_pred = forward(x)return (y_pred - y) ** 2# #定义w_list、mse_list来保存w和对应mes loss的取值
w_list = []
mse_list = []#穷举法计算损失值cost
for w in np.arange(0.0, 4.1, 0.1):print("w=", w)l_sum = 0for x_val, y_val in zip(x_data, y_data):#x,y拼接为[x,y]y_pred_val = forward(x_val)#预测loss_val = loss(x_val, y_val)#求损失Lossl_sum += loss_val#Loss求和print('\t', x_val, y_val, y_pred_val, loss_val)print('MSE=', l_sum / 3)#计算msew_list.append(w)mse_list.append(l_sum / 3)#画图
plt.plot(w_list, mse_list)
plt.ylabel('Loss')
plt.xlabel('w')
plt.show()

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

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

相关文章

Anbernic RG35XXX 固件刷入

才买的安博尼克,没几天发现无法开机,且按键失灵;后来发现是因为自带的存储卡坏掉的原因,于是决定自己买存储卡刷个系统。 参考地址: Anbernic RG35XX Starter Guide – Retro Game Corps Anbernic RG35XX does not …

助力数据出境安全 | 时代新威出席第二届粤港澳数据合作会议

12月19日,第二届粤港澳数据合作会议在广州南沙成功举办。会议以“数智力量汇聚南沙,打造粤港澳数据高水平合作平台,赋能大湾区数字经济高质量发展”为主题,汇聚了政府主管部门领导、粤港澳相关主管机构代表、中国工程院院士和众多…

Apollo开放平台概览 :自动驾驶的未来趋势

🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 粉丝福利活动 ✅参与方式:通过连接报名观看课程,即可免费获取精美周边 ⛳️活动链接&#xf…

Wpf 使用 Prism 实战开发Day08

备忘录页面设计 1.效果图 一.布局设计跟第7章节一样&#xff0c;只是内容方面发生变化&#xff0c;其他样式都一样。直接把代码粘出来了 MemoView.xaml 页面代码 <UserControl x:Class"MyToDo.Views.MemoView"xmlns"http://schemas.microsoft.com/winfx/2…

各位大佬看看这是不是macos的一个bug啊

请各位大佬看看是不是一个bug啊&#xff0c; 打开mac自带的命令行&#xff0c;先输入man less&#xff0c;显示没问题&#xff0c;再输入man more&#xff0c;发现出现的是less的说明&#xff0c;这里出了问题。 第一张图是man less&#xff0c;第二张图是man more。 我的系统…

JSON网络令牌JWT

1.什么是身份验证 日常生活中的身份验证的场景: 比如进入公司的大楼时&#xff0c;需要携带工牌&#xff1b;打卡上班时&#xff0c;需要指纹识别&#xff1b;打开工作电脑时&#xff0c;需要输入密码。 2. 什么是 JSON 网络令牌&#xff1f; JSON Web Token (JWT) 是一个开…

大数据 - Doris系列《一》- Doris简介

目录 &#x1f436;1.1 Doris 概述 &#x1f436;1.2 OLAP和OLTP&#xff08;面试&#xff09; 1. 应用场景 &#x1f959;联机事务处理OLTP(On-Line Transaction Processing) &#x1f959;联机分析处理OLAP(On-Line Analytical Processing) 2. OLAP和OLTP比较--“用户行…

Unity SRP 管线【第五讲:自定义烘培光照】

文章目录 一、自定义烘培光照1. 烘培光照贴图2. 获取光照贴图3. 获取物体在光照贴图上的UV坐标4. 采样光照贴图 二、自定义光照探针三、 Light Probe Proxy Volumes&#xff08;LPPV&#xff09;四、Meta Pass五、 自发光烘培 一、自定义烘培光照 细节内容详见catlikecoding.c…

2024年防止内卷和被潜规则,RocketMQ消息中间件实战派上下册上线啦|架构随笔录

2023已经过去啦&#xff0c;作为技术小伙伴一定要做好2024年的规划&#xff0c;只有这样才能够避免内卷和潜规则。 2024年即将是一个重新开始的一年&#xff0c;但是你要说互联网不倦&#xff0c;那是不可能的&#xff0c;就连某大厂都开始走下坡路啦&#xff0c;里面卷的是不…

很实用的ChatGPT网站—在线编程模块增补篇

很实用的ChatGPT网站&#xff08;http://chat-zh.com/&#xff09;——增补篇 今天介绍一个好兄弟开发的ChatGPT网站&#xff0c;网址[http://chat-zh.com/]。这个网站功能模块很多&#xff0c;包含生活、学习、医疗、法律、经济等很多方面。今天跟大家分享一下&#xff0c;新…

Cesium自定义电子围栏特效材质

1.new Cesium.Viewer中添加 requestWebgl1: true, 2. 编写材质&#xff0c;主要分三步 &#xff08;1&#xff09;定义MaterialProperty &#xff08;2&#xff09;设置材质 &#xff08;3&#xff09;添加材质 //定义材质对象及变量 function DynamicWallMaterialPropert…

linux centos 添加临时ip

### 1.添加ip ip addr add IP/mask dev 网络设备 例&#xff1a;ip addr add 172.104.210.247/24 dev ens5f1 ### 2.启动网卡 ip link set up 网络设备 例&#xff1a;ip link set up ens3f0 ### 3.设置默认路由 ip route add default via GATEWAY 例&#xff1a;ip route add …

C# 反射 入门到详解

1.什么是反射 首先看一张流程图 反射最最要的关注的地方 就在metadata 元数据 元数据&#xff1a;描述DLL/EXE文件中有什么内容 点击生成之后&#xff0c;就会在文件中生成DLL/EXE文件 点击打开文件夹 在bin/Debug 文件下就会生成该文件 exe/dll文件的区别&#xff1a;…

NSSCTF websign

开启环境&#xff1a; 提示我们看源码&#xff0c;那就看。 但是我们发现右键被禁用了&#xff0c; ctrlU也被禁用了。 直接在url前加view-source:得到页面源码取出flag

银河麒麟V10sp3操作系统设备初始化(设置主机名、挂载数据盘、设置网卡bond模式)

本篇记录安装好银河麒麟V10sp3操作系统后对服务器做一些初始化配置 1、设置主机名 2、挂载数据盘 3、设置网卡bond模式 登录 打开终端 开始配置 1、设置主机名 hostnamectl set-hostname Kylin # Kylin为主机名2、挂载数据盘 先用fdisk命令查看磁盘信息 fdisk -l格式化数…

【MySQL·8.0·源码】MySQL 的查询处理

Query processing MySQL 的 Query 处理可以分为 Parse、Prepare(Resolve/Transform)、Optimize 和 Execute 几个阶段 Parse 词法扫描器将 SQL 语句字符串分解为 tokens&#xff0c;语法分析器将 tokens 组装成语法树的子树结构&#xff0c;并 Reduce 为基本查询结构&#xff0…

【SpringBoot】Java MVC 集成 Swagger 生成 API 文档

使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。官网: https://swagger.io/ Knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。 <dependency><groupId>com.github.xiaoymin</groupI…

ImportError: DLL load failed while importing imaging: 找不到指定的模块

24.1 ImportError: DLL load failed while importing imaging: 找不到指定的模块 参考&#xff1a;https://zhuanlan.zhihu.com/p/662305030?utm_id0 说明&#xff1a;Pillow 与pillow都可以&#xff0c;不区分首字母大小写 第一步&#xff1a;查看是否有pillow 1&#xff09;…

Java实现阿里云OSS文件上传

1、OSS介绍 阿里云对象存储OSS&#xff08;Object Storage Service&#xff09;是一款云存储服务&#xff0c;通常用于图片、音视频、日志等海量文件的存储&#xff0c;并且数据以对象&#xff08;Object&#xff09;的形式存储在OSS的存储空间&#xff08;Bucket &#xff09…

攀登者1 - 华为OD统一考试

OD统一考试 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 攀登者喜欢寻找各种地图&#xff0c;并且尝试攀登到最高的山峰。 地图表示为一维数组&#xff0c;数组的索引代表水平位置&#xff0c;数组的元素代表相对海拔高度。其中数组元素0代表地面。…