当前位置: 首页 > news >正文

【Matlab】RF随机森林回归预测算法 可预测未来数据(附代码)

 资源下载: 

 资源合集: 

  目录

一,概述

        随机森林的基本思想是利用多个决策树对时序数据进行预测,其中每个决策树都使用不同的随机抽样方式选择训练数据,以减小过拟合的风险。 随机森林时序预测算法的主要步骤如下:

(1)样本抽样:从原始数据中随机抽取一部分样本,用于训练每个决策树。
(2)特征抽样:从原始特征中随机选取一部分特征,用于训练每个决策树。
(3)决策树训练:使用抽样得到的样本和特征,构建多个决策树,其中每个树都是一组独立的分类器。
(4)预测:对于新的输入数据,使用构建的决策树进行预测,最终输出每个决策树的预测值的平均值,作为最终的预测值。

        随机森林时序预测算法具有以下优点:
(1)可以处理大规模、高维度的数据。
(2)具有较高的准确性和稳定性,在处理噪声和缺失值方面表现良好。
(3)可以有效地处理非线性数据和复杂模型。
(4)可以进行特征选择,从而提高模型的泛化能力。总之,随机森林时序预测算法是一种有效的(5)时间序列预测方法,可以用于各种领域,如金融、医疗、气象等,具有广泛的应用前景。

二,代码

代码中文注释非常清晰,按照示例数据修改格式,替换数据集即可运行,数据集为excel。

部分代码如下:

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行%%  导入数据
res = xlsread('数据集.xlsx');%%  数据分析
num_size = 0.7;                              % 训练集占数据集比例
outdim = 1;                                  % 最后一列为输出
num_samples = size(res, 1);                  % 样本个数
res = res(randperm(num_samples), :);         % 打乱数据集(不希望打乱时,注释该行)
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度%%  划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
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);%%  转置以适应模型
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';%%  训练模型
trees = 100;                                      % 决策树数目
leaf  = 5;                                        % 最小叶子数
OOBPrediction = 'on';                             % 打开误差图......

三,运行结果

四,预测未来数据

可以根据训练好的模型对待预测(未来)数据进行预测,结果保存在excel里

资源下载: 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机算法设计与分析【第一章】
  • [数据集][目标检测]风力发电机叶片损伤检测数据集VOC+YOLO格式5029张8类别
  • 五种多目标优化算法(MOAHA、NSGA2、NSGA3、SPEA2、MODA)性能对比,包含47个多目标测试函数,6种评价指标,MATLAB代码
  • Java 输入与输出之 NIO【非阻塞式IO】【NIO核心原理】探索之【一】
  • C语言——字符函数、字符串函数和内存函数
  • 计算机网络面试真题总结(六)
  • QT 与 C++实现基于[ TCP ]的聊天室界面
  • led护眼台灯对眼睛好吗?台灯护眼是真的吗?一文告诉你答案
  • 单例模式在实现webserver这个项目中起到了什么作用
  • 如何完美备份自己的微博,即使是封号之后
  • 【北森-注册安全分析报告-无验证方式导致安全隐患】
  • Ubuntu系统使用Docker部署中文版trilium并实现远程编辑笔记
  • 游戏+AI
  • 人大金仓数据库常见运维方式整理
  • 视频压缩工具大PK:四款神器让你轻松压缩不卡顿
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Android交互
  • Android框架之Volley
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • canvas 绘制双线技巧
  • CEF与代理
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript对象详解
  • java小心机(3)| 浅析finalize()
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue全家桶实现一个Web App
  • 初识MongoDB分片
  • 理解在java “”i=i++;”所发生的事情
  • 聊聊redis的数据结构的应用
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​2021半年盘点,不想你错过的重磅新书
  • ​浅谈 Linux 中的 core dump 分析方法
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #每天一道面试题# 什么是MySQL的回表查询
  • (差分)胡桃爱原石
  • (十三)Maven插件解析运行机制
  • (十一)c52学习之旅-动态数码管
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转载)利用webkit抓取动态网页和链接
  • .a文件和.so文件
  • .Net Core 微服务之Consul(二)-集群搭建
  • .Net IE10 _doPostBack 未定义
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @Data注解的作用
  • @SpringBootApplication 注解
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ JavaScript ] JSON方法
  • [AIGC] SpringBoot的自动配置解析
  • [CLIP-VIT-L + Qwen] 多模态大模型源码阅读 - 视觉模型篇
  • [ERROR] 不再支持目标选项 5。请使用 7 或更高版本
  • [HNOI2008]Cards
  • [HNOI2008]水平可见直线