机器学习之全面了解回归学习器

news2024/11/19 15:22:49

我们将和大家一起探讨机器学习与数据科学的主题。

本文主要讨论大家针对回归学习器提出的问题。我将概要介绍,然后探讨以下五个问题:

1. 能否将回归学习器用于时序数据?

2. 该如何缩短训练时间?

3. 该如何解释不同模型的结果和可用的绘图?

4. 我选择了具有最小均方根误差 (RMSE) 的模型;接下来还需要做些什么?

5. 如何基于新数据进行预测?

本文会解答一些有关 MATLAB 回归学习器的问题,基本上不涉及回归本身。

引言

自 2017 年起,工程师和科学家可以在 MATLAB 中使用回归学习器。

回归分析可以帮助人们理解变量和数值响应之间的关系,可用于预测能耗、财务绩效和制造工艺参数等。从根本上说,有了回归学习器,您无需编写代码即可交互构建回归模型,并衡量模型的准确度和性能。

您可以快速比较各种回归模型和特征的性能。这款 App 对于刚接触机器学习的人特别有用,因此我很高兴回答一些与该 App 直接相关的问题。

Q1

能否将回归学习器用于时序数据?

当然可以。

例如,您可以使用回归模型来预测电力负荷或预测暴风雨造成的损失,与在其他机器学习 App 中一样,在该 App 中使用时序数据之前,必须对数据进行预处理和清理。

这包括将数据调整到正确的格式、对数据进行归一化以使其处于同一尺度、均匀地分布数据、处理重复数据或缺失数据,以及执行其他必要任务。

Q2

训练花费的时间太长;我该怎么做才能更快地训练我的模型?

您可以在回归学习器中执行几项操作来加快训练速度。提醒一下,在这里我主要介绍该 App 本身提供的方法。

建议 1:使用并行回归模型训练

如果您拥有 Parallel Computing Toolbox™,首先可以尝试的是使用并行回归学习器模型进行训练,这也是比较简单的方法。此方案会创建一个并行池以进行并行训练,让您能够在继续工作的同时并行训练多个模型。

如果选择此方案,您将在“历史记录”列表中看到每个训练中模型和排队中模型的进度指示器,并且还可以随时取消某个模型。这种方法将有助于减少训练所需时间。

在回归学习器的菜单栏中选择“使用并行”。

建议 2:使用留出法验证

如果数据很大,请确保使用正确的验证选项。

当您在回归学习器中打开新会话并选择数据时,默认会选择交叉验证。

交叉验证可将数据划分为若干折 (k)、训练模型并计算所有折的平均测试误差。

与其他方案相比,此方法可以更好地防止过拟合,但需要多次拟合,因此适用于中小型数据集。

留出法验证可让您使用滑块控件选择要用作测试集的数据百分比。该 App 将在训练集上训练模型,并通过测试集评估其性能。用于测试的模型仅基于一部分数据,因此留出法验证特别适用于大型数据集。当然,您也可以选择不验证模型,但是这有可能导致训练数据过拟合。了解有关回归问题验证选项的更多信息

启动新会话时,默认会选择交叉验证。

建议 3:仅在一组模型类型上训练数据

如果您已知数据特别适合用某一类模型处理,或者某一类模型的训练速度太慢,则可以在 App 中选中该类型或取消选中,而不必对所有类型进行训练。如果不确定,则可以尝试“全部(快速训练)”选项,该选项将对所有训练速度通常较快的模型类型进行训练。

然后,您可以训练均方根误差 (RMSE) 最小的那一组的所有模型,以找到最佳模型。

建议 4:精简训练数据

人们经常讨论如何获得足够的数据,但其中的关键是确保拥有足够的正确数据。您可能有一些多年前的历史数据,一些不必要、不再有用的数据。

删除或减少这类数据可以加快训练速度,当然,您需要时刻关注数据的准确性和代表性。这应该是您最后的选择,因为您必须非常谨慎地减少数据。

Q3

该如何解释不同模型的结果和可用的绘图?

这是一个很好的问题!

在用您的数据训练完模型后,需要采取几个步骤来解释结果。

步骤 1:找出具有最小均方根误差的模型

RMSE 衡量每个模型的预测值与观测值之间的距离,因此它衡量的是这些残差的扩散程度。该 App 将在最小 RMSE 周围加一个框。

步骤 2:探查模型

选择具有最小 RMSE 的模型后,下一步就是查看 App 中可用的不同绘图:常用的绘图有两种:响应图,实际值-预测值图。

较小的 RMSE 将以粗体显示,并带有一个方框。

响应图

响应图以竖线显示预测响应与观测值之间的差异。如果您对数据使用留出法验证或交叉验证,则此图特别有用,因为图中显示的预测值对应的是留出的观测值,模型未在这部分数据上进行训练。

使用响应图查看预测值和观测值之间的距离。

实际值-预测值图

实际值-预测值图可帮助您检查模型性能。该图绘制了模型的预测响应对真实响应的图。

在此图中,理想的回归模型应有与观测值相同的预测响应,因此所有点都将位于对角线上。

然而,这在现实中是不可能的,所以我们的目标是让这些点尽可能靠近对角线,并大致对称地分散在对角线附近。如果能在此图中检测到模式,则意味着模型可以改进,您可以选择训练其他模型类型,也可以选择使用高级选项使模型更灵活。

实际值-预测值图可帮助您可视化回归模型的准确度。

Q4

我选择了具有最小均方根误差 (RMSE) 的模型;要优化模型,接下来还需要做些什么?

在针对数据训练和评估初始模型之后,可以通过调整模型的超参数来确保实现最佳性能。

要自动选择并找到模型的最佳超参数值,可以使用超参数优化功能。

该 App 会尝试不同的超参数值组合,以最小化模型的均方误差 (MSE),并返回使用优化超参数的新模型。

超参数调整的效果因模型而异,因此您需要为多种类型的模型优化超参数,因为初始模型可能无法实现最佳性能。

Q5

如何开始进行预测?

要使用经过全面训练和优化的模型基于新数据进行预测,您需要将模型导出到某个位置。您可以将其导出到 MATLAB 工作区,或者生成 MATLAB 代码,以使用刚才在 App 中所用的步骤来训练模型。

然后,您可以使用 MATLAB Compiler™ 部署模型,或者使用 MATLAB Coder™ 从模型生成 C/C++ 代码。

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

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

相关文章

Swift “黑魔法”之动态获取类实例隐藏属性的值

概览 在 Swift 代码的调试中,我们时常惊叹调试器的无所不能:对于大部分“黑盒”类实例的内容,调试器也都能探查的一清二楚。 想要自己在运行时也能轻松找到 Thread 实例“私有”属性的值吗(比如 seqNum)? 在本篇博文中您将学到如下内容: 概览1. 借我,借我,一双慧眼吧…

重磅!2023中国高校计算机大赛-人工智能创意赛结果出炉

目录 中国计算机大赛-人工智能创意赛现场C4-AI大赛颁奖及留影800个AI应用?这届大学生真能“搞事情”AI原生时代,百度要再培养500万大模型人才 中国计算机大赛-人工智能创意赛现场 12月8日,杭州,一位“白发老人”突然摔倒在地&…

UIUC北大最新工作Radarize:室内环境大规模雷达SLAM

0. 笔者个人体会 相对视觉和LiDAR SLAM来说,基于Radar的SLAM较为小众。但视觉SLAM对光照和低纹理区域敏感,在室内使用还有隐私问题。LIDAR SLAM在长走廊、雾烟尘等退化环境效果不好。所以在一些专用领域,Radar SLAM还是有不可替代的价值。 今天笔者将为大家分享伊利诺伊大学…

Web网站服务(二)

1、客户机地址限制。 Require all granted&#xff1a;表示允许所有主机访问。 Require all denied&#xff1a;表示拒绝所有主机访问。 Require local&#xff1a;表示仅允许本地主机访问。 Require [not] host <主机名或域名列表>&#xff1a;表示允许或拒绝指定主机或…

RabbitMQ反序列化未经授权的类异常解决方案

配置好生产者消费者后&#xff0c;消费者项目启动后出现如下异常&#xff1a; Caused by: java.lang.SecurityException: Attempt to deserialize unauthorized 这是反序列化未经授权的类&#xff0c;解决办法是设置信任所有消息发起者&#xff0c;可以将环境变量&#xff1a; …

day40-43-Vue2.js-路由VueRouter-Vuex状态管理-Axios异步

今日内容 零、 复习昨日 一、Vue简介 1.1 简介 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式的js框架&#xff0c;发布于 2014 年 2 月。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#x…

Windows Terminal的半透明效果

打开Windows Terminal的半透明效果 最终实现效果&#xff1a; 系统&#xff1a;win11 23H2 步骤&#xff1a; 1.winx打开终端 2.右键打开设置 3.打开外观->亚克力材料开启 4.默认值->外观->透明度&#xff0c;按喜好选择即可

018 OpenCV 人脸检测

目录 一、环境 二、分类器原理 2.1、概述 2.2、工作原理 三、人脸检测代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、分类器原理 CascadeClassifier是OpenCV&#xff08;开源计算机视觉库&#xff09;中的一个强大的类…

【论文解读】Accelerating motion estimation by genetic algorithm approach in x265

时间&#xff1a;2018 级别&#xff1a;SCI 机构&#xff1a;College of Engineering Pune 摘要&#xff1a; 在过去 20 年&#xff0c;在视频编码和压缩领域&#xff0c;研究人员提出了几种减少运动估计的计算量和时间的技术&#xff0c;本文提出了一种基于遗传算法初始种群确…

一篇文章带你全面了解Web UI自动化测试之元素定位

前言 目前&#xff0c;在自动化测试的实际应用中&#xff0c;接口自动化测试被广泛使用&#xff0c;但UI自动化测试也并不会被替代。让我们看看二者的对比&#xff1a; 接口自动化测试是跳过前端界面直接对服务端的测试&#xff0c;执行效率和覆盖率更高&#xff0c;维护成本…

小程序一键生成工具哪个好?

在这个数字化时代&#xff0c;小程序已经成为商家吸引客户、提升业务的重要工具。但是&#xff0c;传统的小程序开发方式既费时又费力&#xff0c;让许多商家望而却步。 现在&#xff0c;有了乔拓云小程序模板开发平台&#xff0c;一切都变了。 乔拓云提供了大量精心设计的模板…

[FPGA 学习记录] 数码管动态显示

数码管动态显示 文章目录 1 理论学习1.1 数码管动态扫描显示原理 2 实战演练2.1 实验目标2.2 程序设计2.2.1 框图绘制2.2.2 数据生成模块 data_gen2.2.2.1 波形绘制2.2.2.2 代码编写2.2.2.3 代码编译2.2.2.4 逻辑仿真2.2.2.4.1 仿真代码编写2.2.2.4.2 仿真代码编译2.2.2.4.3 波…

【快速应用开发】看看RedwoodJS

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

<JavaEE> 经典设计模式之 -- 单例模式(“饿汉模式”和“懒汉模式”实现单例模式)

目录 一、单例模式概述 二、“饿汉模式”实现单例模式 三、“懒汉模式”实现单例模式 3.1 单线程下的“懒汉模式” 3.2 多线程下的“懒汉模式” 一、单例模式概述 1&#xff09;什么是单例模式&#xff1f; 单例模式是一种设计模式。 单例模式可以保证某个类在程序中只存…

.9.png的创建

1、创建.9.png 选中图片&#xff0c;右击&#xff0c;选择Create 9-Patch file&#xff0c;点击确定会生成一个xxx.9.png的图片 2、绘制拉伸区域 在图片的最外边界绘制拉伸区域&#xff0c;按住鼠标左键不放&#xff0c;绘制完成后保存就可以使用了。绘制结果示意如下&…

Numpy数组中数据的排序【sort(),argsort()与 lexsort()】 (第13讲)

Numpy数组中数据的排序【sort(),argsort()与 lexsort()】 (第13讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

2.Feign使用、上下文隔离及源码阅读

目录 概述使用配置pom.xmlfeign 接口编写controller 测试降级处理pom.xmlapplication.yml代码 Feign如何初始化及调用源码阅读初始化调用 feign的上下文隔离机制源码 结束 概述 阅读此文&#xff0c;可以知晓 feign 使用、上下文隔离及源码阅读。源码涉及两方面&#xff1a;fe…

在做题中学习(31):电话号码的字母组合(全排列)

17. 电话号码的字母组合 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;既然要排列组合&#xff0c;就得先根据数字字符取出来 所以先定义一个string类的数组通过下标取到每个数字对应的映射。 string _numsTostr[10]{"","","abc"…

2023.12.3 关于 Spring Boot 拦截器 和 过滤器

目录 引言 Spring 拦截器实现 实例理解 Spring 过滤器实现 实例理解 拦截器和过滤器的区别 出身不同 触发时机不同 底层实现不同 支持的项目类型不同 使用场景不同 引言 原生 Spring AOP 实现统一拦截有两个难点难点一&#xff1a;定义拦截规则表达式 难点二&#…