【Matlab】-- 机器学习项目 - 基于XGBoost算法的数据回归预测

在这里插入图片描述

文章目录

文章目录

  • 01 内容概要
  • 02 部分代码
  • 03 代码解读
  • 04 运行结果
  • 05 基于XGBoost算法的数据回归预测源码

01 内容概要

XGBoost属于集成学习中的Boosting方法,其基本思想是:
逐步构建多个弱学习器(通常是CART决策树),每一棵树都试图纠正前一棵树的残差(预测误差),最终将所有树的输出加权求和,得到强学习器。

02 部分代码

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
%%  导入数据
res = xlsread('数据集.xlsx');
%%  划分训练集和测试集
temp = randperm(103);
P_train = res(temp(1: 80), 1: 7)';
T_train = res(temp(1: 80), 8)';
M = size(P_train, 2);
P_test = res(temp(81: end), 1: 7)';
T_test = res(temp(81: end), 8)';
N = size(P_test, 2);
%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
%%  建立模型
model = xgboost_train(p_train, t_train, params, num_trees);
%%  预测
t_sim1 = xgboost_test(p_train, model);
t_sim2 = xgboost_test(p_test , model);

03 代码解读

下面把代码拆成 8 个关键动作,每步用 2-3 句话“展开”说明,方便你快速对应到脚本里的位置。
1.清空环境
关掉弹窗、清变量、清命令行,防止上一趟跑完的图或数据干扰这次结果。
2.读 Excel
xlsread 把整个数字区域一次性读进矩阵 res,行是样本,列是“7 个特征 + 1 个目标”。
3.随机拆 80/23
randperm(103) 做随机索引,前 80 行当训练集,后 23 行当测试集,避免人为挑数据带来的偏倚。
4.归一化到 0-1
mapminmax 把 7 维特征和 1 维目标分别线性压缩到 [0,1];训练集得到的“映射结构” ps_input/ps_output 会被保存下来,保证测试集和反归一化时用的是同一套比例,防止信息泄露。
5.搭 XGBoost 参数并训练
把学习率、树深度、任务类型(reg:linear)写进结构体 params,再告诉它迭代 100 轮;xgboost_train 返回的 model 就是一棵“加法树” ensemble。
6.预测 + 反归一化
用 xgboost_test 对训练集和测试集各跑一次,得到 0-1 区间的预测值;接着用 mapminmax('reverse', ...) 把数据拉回原始量纲,才能跟真实值算误差。
7.算误差、画两张折线
RMSE 看整体偏差,R² 看拟合度,MAE 看平均绝对误差,MBE 看系统偏高还是偏低;折线图把真实值与预测值按样本顺序摆在一起,一眼就能瞧见哪里跑偏。
8.画散点图
横轴真值、纵轴预测,理想情况下点应落在对角线上;散点图比折线图更能直观看出“在哪个区间模型容易高估或低估”。

04 运行结果

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

05 基于XGBoost算法的数据回归预测源码

提供了Matlab的实现代码,使得用户可以根据自己的需求进行调整和应用。
Matlab代码下载地址
在这里插入图片描述

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

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

相关文章

Memory in LLM Agent

Memory in LLM Agent 1 为什么需要“记忆” —— 背景与动机 在构建 LLM Agent(Large Language Model Agent,大语言模型驱动的智能体)的过程中,“记忆”(Memory)是一个绕不开的核心问题。没有记忆的 Agent…

三甲地市级医院数据仓湖数智化建设路径与编程工具选型研究(上)

摘要 本研究旨在探索三甲地市级医院数据仓湖数智化建设的实施路径与工具选型策略,以响应国家《"十四五"全民健康信息化规划》中2025年医疗数据平台联通全覆盖的政策要求,同时解决地市级医院面临的资源限制(年均信息化投入占总营收1.5%)、区域协同需求突出及多业…

25.9.10_CTF-reverse_RC4那些事儿

CTF-reverse_RC4那些事儿 0x00 RC4加密知识点 推荐看这位up主的视频https://www.bilibili.com/video/BV1G64y1Y7p4/?spm_id_from333.1391.0.0&p2 简单来说RC4算法包括两部分KSA(利用Key生成S盒)和PRGA(利用S盒生成密钥流): KSA: 初始化S(一般是0-255&…

网络编程(6)

【0】复习 Modbus:modbus tcp modbus rtu Modbus TCP: 特点:主从问答(控制 采集信息) 应用层协议(基于TCP通信)、默认端口502 组成:报文头(7 事物2 协议2 长度2 单元表示1&#xff…

技术文章大纲:AI绘画—动漫角色生成赛

技术文章大纲:AI绘画—动漫角色生成赛 背景与意义 动漫角色生成赛的兴起与发展AI绘画技术在动漫创作中的应用价值比赛对推动AI艺术创新的作用 技术核心:AI绘画模型 主流模型介绍(如Stable Diffusion、MidJourney、DALLE)针对动…

Flink-新增 Kafka source 引发状态丢失导致启动失败

背景 Flink Job 新增 kafka source 算子,从状态保留并启动后提示 org.apache.flink.util.StateMigrationException: The new state typeSerializer for operator state must not be incompatible,导致任务 Fail。 Source: task-kafka-source -> task-kafka-transform (1…

【系统架构设计(26)】系统可靠性分析与设计详解:构建高可用软件系统的核心技术

文章目录一、本文知识覆盖范围1、概述2、知识体系概览二、系统可靠性基础概念1、可靠性与可用性的本质区别2、软件可靠性与硬件可靠性的深度对比3、核心可靠性指标的业务价值三、系统架构可靠性模型1、串联系统的可靠性挑战2、并联系统的高可靠性设计3、混合系统的复杂性管理四…

4 C 语言数据结构实战:栈和队列完整实现(结构体 + 函数)+ 最小栈解决方案

栈和队列 1. 栈 栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作 的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈&…

Milvus基于docker主机外挂实践

一、安装docker与我之前写的原博客:ubuntu安装milvus向量数据库,获取key不同,原博客获取key已经过时# 更新Ubuntu软件包列表和已安装软件的版本: sudo apt update# 安装Ubuntu系统的依赖包 sudo apt-get install ca-certificates curl gnupg …

使用python test测试http接口

使用python test测试http接口获取token和控制session,后面大多数接口要带上这些信息 import time import requestsfrom common.aes_algorithm import AES from config.config import Config from config.log import logclass Common:username "admin"pas…

平时只会CRUD,没有高质量项目经验,我该怎么办

我没有项目经验怎么办 首先,不管是应届生还是社招几年工作经验的朋友,除非特别厉害的人,大家都会遇到这个问题。 我们该怎么处理,关注hikktn!为你解答这个问题。 问AI世面上那个大厂程序员项目推荐 为什么这么说呢&…

网编.hw.9.10

云盘下载#include <myhead.h> #define SER_IP "192.168.108.93" #define SER_PORT 69 #define addr "192.168.109.6" #define port 8888/******************主程序******************/ int main(int argc, const char *argv[]) {//1、创建一个用于通…

Java调用magic-api中post接口参数问题

Java调用magic-api中post接口参数问题magic官方文档中只提供了get写法解决方法magic官方文档中只提供了get写法 实测使用官方写法调用get接口可调通&#xff0c;参数正常获取&#xff0c;但更换为post写法后&#xff0c;magic脚本中body获取为空 Autowired MagicAPIService s…

《sklearn机器学习——管道和复合估计器》联合特征(FeatureUnion)

超详细解说 sklearn 中的联合特征&#xff08;FeatureUnion&#xff09; 1. FeatureUnion 简介 FeatureUnion 是 scikit-learn 中的一个工具&#xff0c;用于并行地组合多个特征提取器的输出。它允许你将不同的特征提取方法&#xff08;如文本向量化、数值特征缩放、自定义特征…

Eyeshot 2025.3 3D 图形工具包

Eyeshot 2025.3 现在支持 E57 格式Eyeshot 2025.3 现在支持 E57 格式&#xff0c;可直接从 3D 扫描系统导入点云、图像和元数据。Eyeshot 由 devDept 开发&#xff0c;是一款功能全面的 3D 图形工具包&#xff0c;专为构建工程和 CAD(计算机辅助设计)应用程序的 .NET 开发人员而…

OpenResty 配合 Lua 脚本的使用

OpenResty 配合 Lua 脚本的使用实践 在高并发互联网服务中&#xff0c;传统的 Web 服务器往往难以同时兼顾性能与灵活性。而 OpenResty 作为一个基于 Nginx LuaJIT 的高性能 Web 平台&#xff0c;能够让我们在保持 Nginx 高并发性能的同时&#xff0c;使用 Lua 脚本 动态扩展其…

香港券商櫃台系統發展分析與市場觀察

香港券商櫃台系統發展分析與市場觀察 一、市場環境與交易機制變革 2025年以來&#xff0c;香港證券市場表現活躍。港交所現貨市場平均每日成交金額達2,402億港元&#xff0c;同比增長118%。南向交易&#xff08;港股通&#xff09;日均成交額佔比提升至23%&#xff0c;單日淨…

AR技术:多行业数字化转型的加速引擎

在数字化浪潮的推动下&#xff0c;增强现实&#xff08;AR www.teamhelper.cn &#xff09;技术正突破传统娱乐和游戏领域的局限&#xff0c;成为各行业数字化转型的重要力量。从工业制造到医疗健康&#xff0c;从教育培训到零售购物&#xff0c;AR技术以其独特的虚实融合能力&…

第6篇、Kafka 高级实战:生产者路由与消费者管理

Kafka 高级实战&#xff1a;生产者路由与消费者管理&#xff08;Python 版&#xff09;从基础到进阶&#xff1a;深入理解 Kafka 的生产者消息路由、消费者 Offset 管理&#xff0c;以及 Exactly-Once 语义实现 实战导向&#xff1a;提供完整的可运行代码示例&#xff0c;涵盖自…

基于Python读取多个excel竖向拼接为一个excel

在Python中&#xff0c;可以使用pandas库结合glob模块来遍历读取多个Excel文件&#xff0c;并将它们竖向拼接为一个DataFrame对象。以下是完整的实现方法&#xff1a; 文章目录方法1&#xff1a;使用glob匹配文件 pd.concat()方法2&#xff1a;使用列表推导式&#xff08;更简…