线性回归模型训练-训练温度传感器数据预测模型

news/2025/2/7 9:37:13/文章来源:https://www.cnblogs.com/flyingsir/p/18702061

基础实验:训练温度传感器数据预测模型

任务描述:LM35是科创作品制作中常用的温度传感器(1)已知电压值,

如何得出实际温度值?(2)输出电压(Sensor)和真实温度(Temperature)有什么关

系?
请借助大模型生成这两列数据的关系图

/目录

 

 学习:可以通过机器学习,训练传感器数据预测模型吗?应用:可以使用训练好的模型,

对新输入的数据作推理,实现已知电压(Sensor)值,就能获得其对应真实温度吗?

 

回归任务是预测连续值的任务。
例如,根据房屋面积、房屋年龄等特征预测房屋价格;根据学生的平时成绩、

学习时间等特征预测学生的期末分数;根据上一年的产量、天气和农场员工数等属性来预测下一年玉米农场的产量。
回归任务可以被分为线性回归和非线性回归两种。线性回归是假设输入特征和目标变量之间存在线性关系的回归任务,

而非线性回归是假设输入特征和目标变量之间存在非线性关系的回归任务。

 

回归任务是一种预测任务,其目标是根据输入的特征预测一个连续的数值输出。例如,预测房价、温度、销售额等都是典型的回归任务。线性回归是回归任务中的一种具体方法,它假设输入特征与输出目标之间存在线性关系,并通过建立线性模型来进行预测。以下是回归任务与线性回归的详细区别:

1. 概念

  • 回归任务:泛指所有用于预测连续数值输出的任务。它不局限于任何特定的模型,只要目标是预测一个连续的数值,都可以称为回归任务
  • 线性回归:是一种具体的回归模型,假设输入特征与输出目标之间存在线性关系。它通过建立一个线性方程来预测目标值

2. 模型形式

  • 回归任务:可以使用多种模型,包括线性回归、非线性回归、决策树回归、支持向量机回归等
  • 线性回归:模型形式为 y=β0+β1x1+β2x2++βnxn+ϵ,其中 y 是预测值,xi 是输入特征,βi 是模型参数,ϵ 是误差项

3. 假设条件

  • 回归任务:不同的回归模型有不同的假设条件。例如,线性回归假设特征与目标之间存在线性关系,而非线性回归则可以处理更复杂的关系
  • 线性回归:假设输入特征与输出目标之间存在线性关系,并且误差项服从独立同分布的正态分布

4. 应用场景

  • 回归任务:适用于所有需要预测连续数值的场景,如房价预测、温度预测、销售量预测等
  • 线性回归:适用于数据之间存在明显线性关系的场景,例如根据房屋面积和位置预测房价

5. 模型复杂度

  • 回归任务:可以根据任务的复杂性选择不同的模型。例如,对于简单的线性关系可以使用线性回归,对于复杂的非线性关系可以使用多项式回归或神经网络
  • 线性回归:模型相对简单,计算效率高,但只能处理线性关系,对非线性关系的拟合效果较差

6. 损失函数

  • 回归任务:常用的损失函数包括均方误差(MSE)、平均绝对误差(MAE)等
  • 线性回归:通常使用均方误差(MSE)作为损失函数,通过最小化预测值与真实值之间的平方差来优化模型参数

总结

回归任务是一个泛化的概念,涵盖了所有用于预测连续数值的任务,而线性回归是回归任务中的一种具体方法,它假设特征与目标之间存在线性关系。线性回归是回归任务中最简单、最基础的模型,但它并不能解决所有回归问题。对于更复杂的非线性关系,可能需要使用其他回归模型

 

回归(Regression)的含义及由来

  1. 回归的含义
    • 从统计学角度:回归是一种统计方法,用于研究一个或多个自变量(特征)与因变量(目标)之间的关系。其目的是通过建立一个数学模型,根据自变量的值来预测因变量的值。例如,预测房价(因变量)与房屋面积、位置、房间数量等特征(自变量)之间的关系。
    • 从机器学习角度:回归任务是机器学习中的一个核心任务,目标是预测一个连续的数值输出。与分类任务(预测离散的类别)不同,回归任务的输出是连续的,如预测温度、房价、销售额等。
  2. 回归名称的由来
    • 历史背景:回归一词最早由英国生物学家和统计学家弗朗西斯·高尔顿(Francis Galton)在19世纪末提出。他在研究父母身高与子女身高之间的关系时发现,子女的身高趋向于回归到人群的平均身高,即“回归到中庸”(regression to the mean)。他将这种现象称为“回归”。
    • 数学背景:在高尔顿的研究中,他通过建立数学模型来描述这种“回归”现象,即子女的身高与父母身高之间的关系。这种模型后来被发展为线性回归模型,成为回归分析的基础

线性关系(Linear Relationship)的含义及理解

  1. 线性关系的定义
    • 数学定义:线性关系是指两个变量之间的关系可以用一条直线来表示。如果变量 y 与变量 x 之间存在线性关系,可以表示为 y=ax+b,其中 a 是斜率,表示 x 每变化一个单位时 y 的变化量;b 是截距,表示当 x=0 时 y 的值
    • 几何意义:在二维平面上,线性关系表示为一条直线。如果在三维空间中,线性关系可以表示为一个平面
  2. 如何理解线性
    • 简单直观的理解:线性关系意味着变量之间的变化是均匀的、成比例的。例如,如果 y 与 x 成线性关系,当 x 增加1个单位时,y 会增加一个固定的量(斜率 a)。这种关系可以用一条直线来描述
    • 多变量情况:在多变量的情况下,线性关系可以表示为 y=a1x1+a2x2++anxn+b,其中 x1,x2,,xn 是自变量,a1,a2,,an 是对应的系数,b 是截距。这种关系可以用一个超平面来表示
    • 与非线性关系的对比:非线性关系则意味着变量之间的变化不是均匀的、成比例的。例如,y=x2 或 y=ex 都是非线性关系,因为它们的变化率不是固定的

总结

  • 回归:是一种统计和机器学习方法,用于研究变量之间的关系并预测连续的数值输出。名称来源于高尔顿对“回归到中庸”现象的研究。
  • 线性关系:是一种简单的、均匀变化的关系,可以用一条直线或超平面来表示。它是最基本的数学关系之一,也是线性回归模型的基础

 

 

 

 

基础实验:训练温度传感器数据预测模型
在准备训练前,先完成数据集划分,即将数据集拆分为训练集和验证集,训练集用于训练模型,验证集用于评估模型的性能
此步骤可以手动完成,也可以用代码完成:借助XEdu的数据处理库BaseDT,指定csv文件路径以及划分比例,将特征数据集划分为训练集(makesensor_train.csv)和验证集(make sensor val.csv)。

 

步骤1:数据准备(选做)

实验需要用到的数据集在data下面的make_sensor.csv中。这些数据是LM35传感器的测量结果(DFRobot的LM35传感器和行空板),可以将它下载下来看一下具体数据。

 

步骤2:借助BaseDT划分数据集

在准备训练前,先完成数据集划分,即将数据集拆分为训练集和验证集,训练集用于训练模型,验证集用于评估模型的性能。此步骤可以手动完成,也可以用代码完成:借助XEdu的数据处理库BaseDT,指定csv文件路径以及划分比例,将特征数据集划分为训练集(make_sensor_train.csv)和验证集(make_sensor_val.csv)。

# 更新库文件
!pip install --upgrade BaseDT 
from BaseDT.dataset import split_tab_dataset
# 指定待拆分的csv数据集
path = "data/make_sensor.csv"
# 指定特征数据列、标签列、训练集比重
tx,ty,val_x,val_y = split_tab_dataset(path,data_column=range(0,1),label_column=1,train_val_ratio=0.8)

  

 

步骤3:加载模型

首先我们需要导入必要的库文件并构建线性回归模型。LinearRegression用于线性回归,它可以帮助我们建立和分析线性模型,从而预测变量之间的关系。

步骤4:训练模型

将数据集载入模型,进行模型训练,并将模型保存至指定路径。

# 导入库文件,选择回归模块
from BaseML import Regression as reg
# 构建线性回归模型
model = reg(algorithm = 'LinearRegression')
# 从data/sensor_train.csv路径载入数据集
model.load_tab_data('data/make_sensor_train.csv')
# 训练模型
model.train()
# 将模型保存至checkpoints/sensor.pkl
model.save('checkpoints/sensor.pkl')

  

 

 

步骤4:验证模型

模型训练完成,但是该模型效果如何?R的平方值可以评价回归模型的准确度。因此,我们可以根据以下的代码进行模型验证。

model.load('checkpoints/sensor.pkl')
data='data/make_sensor_val.csv'
# 读取验证集进行验证并计算R平方值
r2,result = model.valid(data, metrics='r2') # 载入验证数据
# 输出评估指标计算结果
print(r2)

  

 

 

步骤5:应用模型

模型验证后我们就可以应用模型啦。输入模拟引脚数值,测试输出的摄氏温度是否正确。

new_data = float(input('请输入传感器电压读数:'))
result = model.inference([new_data])
print('该传感器测量到的摄氏温度为:', result[0])

  

 

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

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

相关文章

【分享】银行业如何实现内外网文件传输,保持核心竞争力?

数据要素是数字经济的重要基石,也是国家经济安全的关键要素。银行业数据因其数据体量大、数据类型多、涉及主体庞大及应用场景复杂等天然特征,在数据流转上面临风险和挑战,包括法律法规层面、安全层面、效率层面等。为响应和落实国家层面对于金融行业网络安全的建设要求,同…

SMT32的HEX文件里加入固件版本的方法(转)

使用MDK编译器,让STM32程序HEX文件中加入固件版本信息。 代码代码如下: //------------------------------------------------------------------------------#include <absacc.h>//------------------------------------------------------------------------------#d…

uniapp 自定义tabBar组件 custom-tab-bar

custom-tab-bar 自定义tabBar组件。 在小程序和App端,为提升性能,在 pages.json 里配置固定的原生tabBar。但在H5端,这一设计并不会提升性能。 同时,H5端尤其是PC宽屏,对tabBar的位置和样式有更灵活的需求,tabBar作为一级导航,更多的时候是在PC网页顶部而不是底部。 自定…

无法连接/访问 Linux虚拟的中的端口(Redis)

Could not connect to Redis at 192.168.137.132:6379: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。当出现 “Could not connect to Redis at 192.168.137.132:6379: No route to host” 错误,意味着客户端无法找到通往 Redis 服务器(IP 为 192…

钉钉发送告警(非@)

环境: OS:Centos 7 python:2.7[root@yunwei-zabbix-1000001-prd alertscripts]# more dingtalk_middleware.py #!/usr/bin/env python #-*- coding: utf-8 -*-import sys, json, urllib2def Dingtalk(message):content = messageurl = "https://oapi.dingtalk.com/robot/…

为GitLab配置Microsoft Graph作为邮件收发工具

先决条件Microsoft/Office 365订阅(Exchange是必须的)并添加一个gitlab专用的账户,本文使用E5开发者订阅 部署好的GitLab,参考上一篇文章步骤一、 配置Microsoft Entra 1. 注册应用程序 登录Azure门户,进入Microsoft Entra ID,选择管理-应用注册-新注册填写你想要的名称,…

C# 深度学习框架 TorchSharp 原生训练模型和图像识别-自定义网络模型和识别手写数字

目录使用 Torch 训练模型定义神经网络加载数据集创建网络模型定义损失函数训练识别手写图像 教程名称:使用 C# 入门深度学习 作者:痴者工良 教程地址:https://torch.whuanle.cn 电子书仓库:https://github.com/whuanle/cs_pytorch Maomi.Torch 项目仓库:https://github.co…

ZW3D二次开发_入门_Action与Ribbon菜单定制--转自 知乎 捣蛋龙

ZW3D二次开发_入门_Action与Ribbon菜单定制捣蛋龙 ​关注他5 人赞同了该文章​ 目录收起ZW3D二开入门目录 - 知乎 (zhihu.com)最新测试环境:2025 SP前言定制Ribbon菜单1.新建工作区2.定义"行为"3.定义自定义Ribbon文件4.编写策略文件5.编写引导程序6.多环境差异化策…

day4

简单图论与构造 A 考虑把权值为 2 的点看作给权值为 1 的点加一, 所以整个问题被拆成了两个部分:构造树和给节点加一 事实上,在第一部分时我们将树构造的尽量平衡是有好处,这个结论在第二个步骤中会得到证明 构造: Process DFS(father,ch,u,size):if size==0 then returnso…

Omnissa Horizon Windows OS Optimization Tool 2412 - Windows 系统映像优化工具

Omnissa Horizon Windows OS Optimization Tool 2412 - Windows 系统映像优化工具Omnissa Horizon Windows OS Optimization Tool 2412 - Windows 系统映像优化工具 Optimizing Images Using Omnissa Horizon Windows OS Optimization Tool 请访问原文链接:https://sysin.org/…

BOM最全基础信息:标准件、通用件、替换件、必选件

在生产制造领域,物料清单(BOM)是产品设计、生产计划和供应链管理的核心基础。本文系统梳理了BOM中各类零部件的分类方法,供大家参考。在生产制造的复杂领域中,我们会与各式各样的产品组成部分打交道。清晰、准确地对它们进行分类,并实施有效的管理,对于提升生产效率、保…