JCRQ1河马算法+四模型对比!HO-CNN-GRU-Attention系列四模型多变量时序预测
JCRQ1河马算法+四模型对比!HO-CNN-GRU-Attention系列四模型多变量时序预测
目录
- JCRQ1河马算法+四模型对比!HO-CNN-GRU-Attention系列四模型多变量时序预测
- 预测效果
- 基本介绍
- 程序设计
- 参考资料
预测效果















基本介绍
基于HO-CNN-GRU-Attention、CNN-GRU-Attention、HO-CNN-GRU、CNN-GRU四模型多变量时序预测一键对比(仅运行一个main即可)
Matlab代码,每个模型的预测结果和组合对比结果都有!
1.无需繁琐步骤,只需要运行一个main即可一键出所有图像。
2.程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel!
3.优化参数为:隐藏层节点数,学习率,正则化系数。
4.河马优化算法(Hippopotamus Optimization Algorithm,HO)是一种群智能优化算法,HO算法是从河马观察到的固有行为中汲取灵感而构思的,该成果于2023年发表在知名SCI期刊、JCRQ1:Mathematics上。

5.运行环境要求MATLAB版本为2023b及其以上。
评价指标包括:R2、MAE、MSE、RPD、RMSE等,图很多
代码中文注释清晰,质量极高,赠送测试数据集,可以直接运行源程序。替换你的数据即可用 适合新手小白
程序设计
- 完整代码私信回复JCRQ1河马算法+消融实验!HO-CNN-BiLSTM-Attention系列四模型多变量时序预测。
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行%% 导入数据
result = xlsread('数据集.xlsx');%% 数据分析
num_samples = length(result); % 样本个数
kim = 2; % 延时步长(前面多行历史数据作为自变量)
zim = 1; % 跨zim个时间点进行预测
nim = size(result, 2) - 1; % 原始数据的特征是数目%% 划分数据集
for i = 1: num_samples - kim - zim + 1res(i, :) = [reshape(result(i: i + kim - 1 + zim, 1: end - 1)', 1, ...(kim + zim) * nim), result(i + kim + zim - 1, end)];
end%% 数据集分析
outdim = 1; % 最后一列为输出
num_size = 0.7; % 训练集占数据集比例
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, -1, 1);%将训练集和测试集的数据调整到0到1之间
p_test = mapminmax('apply', P_test, ps_input);[t_train, ps_output] = mapminmax(T_train, -1, 1);% 对测试集数据做归一化
t_test = mapminmax('apply', T_test, ps_output);%% 数据平铺
% 将数据平铺成1维数据只是一种处理方式
% 也可以平铺成2维数据,以及3维数据,需要修改对应模型结构
% 但是应该始终和输入层数据结构保持一致
p_train = double(reshape(p_train, f_, 1, 1, M));
p_test = double(reshape(p_test , f_, 1, 1, N));
t_train = double(t_train)';
t_test = double(t_test )';%% 数据格式转换
for i = 1 : MLp_train{i, 1} = p_train(:, :, 1, i);
endfor i = 1 : NLp_test{i, 1} = p_test( :, :, 1, i);
end
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014.3001.5501
相关文章:
JCRQ1河马算法+四模型对比!HO-CNN-GRU-Attention系列四模型多变量时序预测
JCRQ1河马算法四模型对比!HO-CNN-GRU-Attention系列四模型多变量时序预测 目录 JCRQ1河马算法四模型对比!HO-CNN-GRU-Attention系列四模型多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于HO-CNN-GRU-Attention、CNN-GRU-Attent…...
探索低空经济,无人机及载人直升机低空应用技术详解
探索低空经济时,无人机及载人直升机低空应用技术是核心要素。以下是对这两类技术的详细解析: 一、无人机低空应用技术 1. 飞行控制技术 无人机需要强大的飞行控制系统,这涉及传感器融合、飞行器稳定性控制、自动化飞行和紧急情况下的自动避…...
Python:简单的爬虫程序,从web页面爬取图片与标题并保存MySQL
文章目录 一、环境说明二、基本思路三、代码 一、环境说明 python 版本:3.10 MySQL版本:8 二、基本思路 首先,我们需要查看网页源代码 通过html源码,确定我们要抓取的内容所在标签的特点 然后,利用BeautifulSoup进…...
GStreamer —— 2.3、Windows下Qt加载GStreamer库后运行 - “教程3:动态管道“(附:完整源码)
运行效果(音频) 简介 上一个教程演示了GStreamer 概念。本教程中的管在它设置为 playing 状态之前完全构建。这没关系。如果 我们没有采取进一步的行动,数据会到达 pipeline 的 pipeline 和 pipeline 将生成错误消息并停止。但 我们将采取进一…...
【Java数据结构】前K个高频单词
前K个高频单词 692. 前K个高频单词 - 力扣(LeetCode) 解决这个问题我们先得知道每个单词出现的次数,用map存储下来,然后将出现次数最多的通过建立小根堆解决top-K问题 ,重点是top-K的求取。 1.建立map 首先我们可以…...
Ubuntu20.04本地配置IsaacLab 4.5.0的训练环境(一)
Ubuntu20.04本地配置IsaacLab 4.5.0的训练环境(一) 配置conda虚拟环境(对于这一步,个人感觉跟在配置IsaacLab那一节的./isaaclab.sh --install同样要执行这一步,建议先不执行)配置IsaacSim配置IsaacLab 写在…...
第二次CCF-CSP认证(含C++源码)
第二次CCF-CSP认证 第一道(easy)思路及AC代码 第二道(easy)基本思路及AC代码 第三道(mid)基本思路及AC代码solution 1 (模拟)solution 2(KMP) 第一道(easy) 题…...
前端多角色权限页面(同浏览器同时登录)数据互串解决
项目是使用vue3写的 问题说明 现在的问题是,在同个浏览器打开两个标签页(都是登录页面),A标签页先登录A的账号,然后B标签页登录B账号。我的登录信息(userInfo和token、权限等都是存放在localStorage中的&…...
常见面试问题:MVC模式
MVC(Model-View-Controller)是一种分层架构设计模式,核心思想是通过职责分离提升代码的可维护性和扩展性。它的三个组件分工如下: 1. Model(模型) 职责:管理数据和业务逻辑,与数据库…...
【项目】视频点播
一、项目介绍 1. 对视频点播系统的认识 搭建视频共享点播服务器,可以让所有人通过浏览器访问服务器,实现视频的上传查看,以及管理并播放的功能。主要是完成服务器端的程序业务功能的实现以及前端访问界面 html 的编写,能够支持客…...
vue videojs使用canvas截取视频画面
前言 刚开始做的时候太多坑,导致一直报错: Uncaught (in promise) TypeError: Failed to execute ‘drawImage’ on ‘CanvasRenderingContext2D’: The provided value is not of type ‘(CSSImageValue or HTMLCanvasElement or HTMLImageElement or H…...
DeepSeek私有化部署6:openEuler 24.03-LTS-SP1安装Open WebUI
Open WebUI是一个 Open WebUI 是一个可扩展的、功能丰富、用户友好的自托管 AI 平台,专为完全离线运行而设计。 它支持多种 LLM 运行环境,包括 Ollama 和 OpenAI 兼容的 API,并内置了用于 RAG 的推理引擎,是一个强大的 AI 部署解决…...
uniapp+微信小程序+地图+传入多个标记点显示+点击打开内置地图导航+完整代码
一、效果展示 二、完整代码 <template><view class"container"><map class"map-container" :latitude"latitude" :longitude"longitude" :markers"markers" :controls"controls" show-location m…...
摄像头应用编程(四):ARM Linux LCD实时预览UVC摄像头画面
文章目录 1、前言2、环境介绍3、步骤4、应用程序编写4.1、lcd初始化4.2、摄像头初始化4.3、jpeg解码4.4、开启摄像头4.5、完整的程序如下 5、测试5.1、编译应用程序5.2、运行应用程序 6、总结 1、前言 本次应用程序主要针对支持MJPEG格式输出的UVC摄像头。 2、环境介绍 rk35…...
Linux下的c进程和java进程的通信-UnixSocket
1、开发c代码 引用的库 /usr/include c代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <sys/un.h> #include <unistd.h>#define SOCKET_PATH "/tmp/my_socket"int mai…...
单线程 Redis 如何实现高可用?深入图解主从复制与哨兵模式
单线程 Redis 如何实现高可用?深入解析主从复制与哨兵模式 一、主从模式:高可用的基石 主从模式是 Redis 实现高可用的基础架构,通过数据冗余和读写分离提升系统可靠性。其核心结构如下: 角色功能主节点唯一可写节点,…...
ubuntu 启动不起来,光标闪烁 解决方法
ubuntu 启动不起来,光标闪烁 进不了系统,解决方法 按ctrl alt f2,进入终端,登录。 jounal -b 查看启动日志。 发现是找不到显卡驱动程序。 解决方法: 卸载nvidia程序。 sudo systemctl stop gdm # 适用于GNOME…...
RV1126采集VI视频数据流
这节分享一下通过rkmedia的api获取RV1126的VI视频流,但是具体的已经在第一个推流项目已经说了。这里更多是回顾一下这部分的api。 采集vi数据实现 VI_CHN_ATTR_S,视频采集的VI模块。 int main() {int ret;VI_CHN_ATTR_S vi;vi.pcVideoNode CAMERA_PAH…...
Linux(Centos 7.6)命令详解:vi
1.命令作用 vi/vim 是Linux 系统内置不可或缺的文本编辑命令,vim 是vi 的加强版本,兼容vi 的所有指令,不仅能编辑文本,而且还具有shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性。 2.命令语法 usage: …...
音视频入门基础:RTP专题(15)——FFmpeg源码中,获取RTP的视频信息的实现
一、引言 通过FFmpeg命令可以获取到SDP文件描述的RTP流的视频压缩编码格式、色彩格式(像素格式)、分辨率、帧率信息: ffmpeg -protocol_whitelist "file,rtp,udp" -i XXX.sdp 本文以H.264为例讲述FFmpeg到底是从哪个地方获取到这…...
【2025小白版】计算复试/保研机试模板(个人总结非GPT生成)附代码
一、编程语言选择 很多高校在机试中对编程语言都有明确规定,像复旦大学计算机学院就说明可选择 C、C 或 Java 语言答题,还支持 C11(gcc5.4),C14(g5.4),Java (openjdk1.8)…...
Linux查看TP6 command定时任务并重启
TP6定时任务设置: 1、在项目根目录/app/command 目录下创建定时任务类文件MemberSubmit.php 使用 $this->setName(memberSubmit) 方法设置名称为 memberSubmit 的定时任务。 namespace app\command;use think\console\Command; use think\console\Input; use think\conso…...
系统运维分级掌握知识技能
以下是针对系统运维工程师的初中高三个等级的详细学习路线规划,结合理论知识与实践技能,帮助您逐步成长为专业运维人员: 初级阶段(入门基础) 目标:掌握运维基础工具与概念,能独立完成基础运维任…...
aardio - 虚表 —— 两个虚表之间互相拖动交换数据
插入到虚表末尾的方法: import win.ui; import godking.vlistEx; /*DSG{{*/ mainForm win.form(text"vlistEx - table adapter";right849;bottom578;border"thin") mainForm.add( radiobutton{cls"radiobutton";text"移动&qu…...
第一:goland安装
GOPROXY (会话临时性),长久的可以在配置文件中配置 go env -w GOPROXYhttps://goproxy.cn,direct 长久的,在~/.bashrc文件中添加: export GOPROXYhttps://goproxy.cn,direct -----…...
Dockerfile 深入浅出:从基础到进阶全解析
Dockerfile 深入浅出:从基础到进阶全解析 各位同学,大家好!欢迎来到今天的 Dockerfile 课程。Docker 技术在当今的软件开发和部署领域可以说是非常热门,而 Dockerfile 作为构建 Docker 镜像的关键文件,掌握它对于我们…...
Mybatis中的分页操作,如何使用PageHelper进行分页,以及Spring Boot整合Mybatis Plus分页
目的: 学会分页功能,学会分页方法 场景: 将下面的数据进行分页: 文章目录 Mybatis 单独使用分页(没有整合)1. PageHelper 插件 Spring Boot 整合 Mybatis Plus 使用分页1. selectPage 方法实现分页2. selec…...
python学习第三天
条件判断 条件判断使用if、elif和else关键字。它们用于根据条件执行不同的代码块。 # 条件判断 age 18 if age < 18:print("你还是个孩子!") elif age 18:print("永远十八岁!") else:print("你还年轻!")…...
CSS Overflow 属性详解
CSS Overflow 属性详解 在网页设计和开发中,CSS Overflow 属性是一个非常重要的特性,它决定了当内容超出其容器大小时应该如何处理。本文将详细介绍 CSS Overflow 属性的相关知识,包括其语法、作用、常用属性值以及一些实际应用场景。 1. CSS Overflow 属性概述 CSS Over…...
深度解析:视频软编码与硬编码的优劣对比
视频编码 一、基本原理与核心技术 压缩原理 通过时空冗余消除实现数据压缩: 空间冗余:利用帧内预测(如DC/角度预测)消除单帧内相邻像素相似性。时间冗余:运动估计与补偿技术(ME/MC)减少连续帧间…...
