多维时序

2023-11-13

多维时序 | MATLAB实现SCNGO-CNN-Attention多变量时间序列预测

预测效果

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

在这里插入图片描述

基本介绍

1.SCNGO-CNN-Attention超前24步多变量回归预测算法。
程序平台:无Attention适用于MATLAB 2020版及以上版本;融合Attention要求Matlab2023版以上;
2.基于融合正余弦和折射反向学习的北方苍鹰优化算法(SCNGO)、卷积神经网络(CNN)融合注意力机制的超前24步多变量时间序列回归预测算法;
3.北方苍鹰优化算法(Northern Goshawk Optimization,NGO)由MOHAMMAD DEHGHANI等人于2022年提出,该算法,该算法模拟了北方苍鹰捕猎过程(猎物识别和攻击、追逐及逃生);
4.多变量特征输入,单序列变量输出,输入前一天的特征,实现后一天的预测,超前24步预测;
5.改进策略参照麻雀优化算法,改进点如下:
①采用折射反向学习策略初始化北方苍鹰算法个体,基本思想是通过计算当前解的反向解来扩大搜索范围,借此找出给定问题更好的备选解;
②采用正余弦策略替换原始苍鹰算法的勘察阶段的位置更新公式;
③对正余弦策略的步长搜索因子进行改进;原始步长搜索因子呈线性递减趋势,不利于进一步平衡北方苍鹰算法的全局搜索和局部开发能力。
6.多变量特征输入,单序列变量输出,输入前一天的特征,实现后一天的预测,超前24步预测;
7.通过SCNGO优化算法优化学习率、卷积核大小、卷积核个数,这3个关键参数,以最小MAPE为目标函数;
8.提供损失、RMSE迭代变化极坐标图;网络的特征可视化图;测试对比图;适应度曲线;
7.提供MAPE、RMSE、MAE等计算结果展示。
适用领域:
风速预测、光伏功率预测、发电功率预测、碳价预测等多种应用。
使用便捷:
直接使用EXCEL表格导入数据,无需大幅修改程序。内部有详细注释,易于理解。

程序设计

  • 完整源码和数据获取方式:私信博主回复MATLAB实现SCNGO-CNN-Attention多变量时间序列预测
lgraph = connectLayers(lgraph, "seqfold/out", "conv_1");             % 折叠层输出 连接 卷积层输入
lgraph = connectLayers(lgraph, "seqfold/miniBatchSize", "sequnfold/miniBatchSize"); 
                                                                     % 折叠层输出连接反折叠层输入
lgraph = connectLayers(lgraph, "relu_2", "sequnfold/in");            % 激活层输出 连接 反折叠层输入
lgraph = connectLayers(lgraph, "sequnfold", "flip");
lgraph = connectLayers(lgraph, "bigru2", "cat/in2");

%% 参数设置
options = trainingOptions('adam', ...     % Adam 梯度下降算法
    'MaxEpochs', 100,...                  % 最大训练次数
    'MiniBatchSize',64,...                % 批处理
    'InitialLearnRate', 0.001,...         % 初始学习率为0.001
    'L2Regularization', 0.001,...         % L2正则化参数
    'LearnRateSchedule', 'piecewise',...  % 学习率下降
    'LearnRateDropFactor', 0.1,...        % 学习率下降因子 0.1
    'LearnRateDropPeriod', 400,...        % 经过800次训练后 学习率为 0.001*0.1
    'Shuffle', 'every-epoch',...          % 每次训练打乱数据集
    'ValidationPatience', Inf,...         % 关闭验证
    'Plots', 'training-progress',...      % 画出曲线
    'Verbose', false);

%%  训练模型
[net,traininfo] = trainNetwork(p_train, t_train, lgraph, options);

%% 预测
t_sim1 = predict(net, p_train); 
t_sim2 = predict(net, p_test ); 

%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);

%%  均方根误差
error1 = sqrt(sum((T_sim1' - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2' - T_test ).^2) ./ N);


%%  相关指标计算
%  R2
R1 = 1 - norm(T_train - T_sim1')^2 / norm(T_train - mean(T_train))^2;
R2 = 1 - norm(T_test  - T_sim2')^2 / norm(T_test  - mean(T_test ))^2;

disp(['训练集数据的R2为:', num2str(R1)])
disp(['测试集数据的R2为:', num2str(R2)])

%  MAE
mae1 = sum(abs(T_sim1' - T_train)) ./ M ;
mae2 = sum(abs(T_sim2' - T_test )) ./ N ;

disp(['训练集数据的MAE为:', num2str(mae1)])
disp(['测试集数据的MAE为:', num2str(mae2)])

%% 平均绝对百分比误差MAPE
MAPE1 = mean(abs((T_train - T_sim1')./T_train));
MAPE2 = mean(abs((T_test - T_sim2')./T_test));

disp(['训练集数据的MAPE为:', num2str(MAPE1)])
disp(['测试集数据的MAPE为:', num2str(MAPE2)])

%  MBE
mbe1 = sum(abs(T_sim1' - T_train)) ./ M ;
mbe2 = sum(abs(T_sim1' - T_train)) ./ N ;

disp(['训练集数据的MBE为:', num2str(mbe1)])
disp(['测试集数据的MBE为:', num2str(mbe2)])

%均方误差 MSE
mse1 = sum((T_sim1' - T_train).^2)./M;
mse2 = sum((T_sim2' - T_test).^2)./N;

disp(['训练集数据的MSE为:', num2str(mse1)])
disp(['测试集数据的MSE为:', num2str(mse2)])

参考资料

[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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多维时序 的相关文章

  • 时序预测

    时序预测 MATLAB实现ARIMA时间序列预测 armax函数 本程序基于MATLAB的armax函数实现arima时间序列预测 实现了模型趋势分析 序列差分 序列平稳化 AIC准则模型参数识别与定阶 预测结果与误差分析过程 逻辑清晰 数
  • 时序预测

    时序预测 MATLAB实现CNN LSTM卷积长短期记忆神经网络时间序列预测 风电功率预测 目录 时序预测 MATLAB实现CNN LSTM卷积长短期记忆神经网络时间序列预测 风电功率预测 预测效果 基本介绍 程序设计 参考资料 预测效果
  • 时序预测

    时序预测 MATLAB实CNN LSTM 卷积长短期记忆神经网络 时间序列预测 目录 时序预测 MATLAB实CNN LSTM 卷积长短期记忆神经网络 时间序列预测 基本介绍 CNN LSTM模型 CNN网络架构 LSTM网络架构 CNN
  • 时序预测

    时序预测 MATLAB实现CNN BiLSTM卷积双向长短期记忆神经网络时间序列预测 风电功率预测 目录 时序预测 MATLAB实现CNN BiLSTM卷积双向长短期记忆神经网络时间序列预测 风电功率预测 预测效果 基本介绍 程序设计 参考
  • 时序预测

    时序预测 MATLAB实现GWO LSTM灰狼算法优化长短期记忆神经网络时间序列预测 目录 时序预测 MATLAB实现GWO LSTM灰狼算法优化长短期记忆神经网络时间序列预测 预测效果 基本介绍 模型描述 程序设计 参考资料 预测效果 基
  • 时序预测

    时序预测 MATLAB实现MLP多层感知机时间序列预测 目录 时序预测 MATLAB实现MLP多层感知机时间序列预测 预测效果 基本介绍 模型特性 程序设计 学习总结 预测效果 基本介绍
  • 时序预测

    时序预测 MATLAB实现基于GRU门控循环单元的时间序列预测 递归预测未来 多指标评价 目录 时序预测 MATLAB实现基于GRU门控循环单元的时间序列预测 递归预测未来 多指标评价 预测结果 基本介绍 模型结构 程序设计 参考资料 预测
  • 【VAR模型

    向量自回归 VAR 是一种随机过程模型 用于捕获多个时间序列之间的线性相互依赖性 VAR 模型通过允许多个进化变量来概括单变量自回归模型 AR 模型 VAR 中的所有变量都以相同的方式进入模型 每个变量都有一个方程式 根据其自身的滞后值 其
  • A Survey on Time-Series Pre-Trained Models

    本文是LLM系列的文章 针对 A Survey on Time Series Pre Trained Models 的翻译 时间序列预训练模型综述 摘要 1 引言 2 背景 2 1 时间序列挖掘任务 2 1 1 时间序列分类 2 1 2 时
  • 多维时序

    多维时序 MATLAB实现SCNGO CNN Attention多变量时间序列预测 目录 多维时序 MATLAB实现SCNGO CNN Attention多变量时间序列预测 预测效果 基本介绍 程序设计 参考资料 预测效果 基本介绍 1 S
  • 多维时序

    多维时序 MATLAB实现GTO CNN LSTM人工大猩猩部队优化卷积长短期记忆神经网络多变量多步时间序列预测 目录 多维时序 MATLAB实现GTO CNN LSTM人工大猩猩部队优化卷积长短期记忆神经网络多变量多步时间序列预测 预测效
  • 时序预测

    时序预测 MATLAB实现基于BiLSTM双向长短期记忆神经网络的时间序列预测 递归预测未来 多指标评价 目录 时序预测 MATLAB实现基于BiLSTM双向长短期记忆神经网络的时间序列预测 递归预测未来 多指标评价 预测结果 基本介绍 程
  • 【MATLAB第2期】源码分享#基于LSTM时间序列单步预测,含验证和预测未来

    MATLAB第2期 源码分享 基于LSTM时间序列单步预测 含验证和预测未来 1 运行环境 matlab2020a cpu 2 数据说明 单列数据 2018 10 2018 12 共三个月 92个数据 3 数据处理 样本标准化处理 其中 前
  • 【预测 - 00】概述:时间序列、特征设计+回归模型(持续更新...)

    前言 预测 一个很神秘的词语 根据历史信息并按照一定的方法对未来进行测算 时间序列 特征设计 回归 等是预测领域的常用方法 我是预测领域的一名新手 6月份因实习需求 刚接触领域领域 以 边学边实践 的方式推动着进度 8月底实习期结束 返校后
  • 时序预测

    时序预测 MATLAB实现基于EMD LSTM时间序列预测 EMD分解结合LSTM长短期记忆神经网络 目录 时序预测 MATLAB实现基于EMD LSTM时间序列预测 EMD分解结合LSTM长短期记忆神经网络 效果一览 基本描述 模型描述
  • 时序预测

    时序预测 MATLAB实现SO ELM蛇群算法优化极限学习机时间序列预测 目录 时序预测 MATLAB实现SO ELM蛇群算法优化极限学习机时间序列预测 效果一览 基本介绍 程序设计 学习总结 参考资料 效果一览 基本介绍 Matlab实现
  • 多层多输入的CNN-LSTM时间序列回归预测(卷积神经网络-长短期记忆网络)——附代码

    目录 摘要 卷积神经网络 CNN 的介绍 长短期记忆网络 LSTM 的介绍 CNN LSTM Matlab代码运行结果 本文Matlab代码 数据分享 摘要 本文使用CNN LSTM混合神经网络对时间序列数据进行回归预测 本模型的输入数据个
  • 智能学习

    智能学习 MATLAB实现ACO BP多变量时间序列预测 蚁群算法优化BP神经网络 目录 智能学习 MATLAB实现ACO BP多变量时间序列预测 蚁群算法优化BP神经网络 预测效果 基本介绍 程序设计 参考资料 预测效果 基本介绍 MAT
  • 多维时序

    多维时序 MATLAB实现GA GRU遗传算法优化门控循环单元多变量时间序列预测 目录 多维时序 MATLAB实现GA GRU遗传算法优化门控循环单元多变量时间序列预测 效果一览 基本介绍 程序设计 参考资料 效果一览 基本介绍 多维时序
  • 时序预测

    时序预测 MATLAB实现RF 随机森林 时间序列预测 目录 时序预测 MATLAB实现RF 随机森林 时间序列预测 预测效果 基本介绍 预测准备 程序设计 主程序 训练子函数 预测子函数 参考资料 致谢 预测效果 基本介绍 在机器学习中

随机推荐

  • Unity-网络开发(一)

    网络基本概念 网络 网络的作用 在没有网络之前 每个人的设备 电脑等 都是彼此孤立的 网络的出现让设备之间可以相互通信 网络是由若干设备和连接这些设备的链路构成 各种设备 间接或者直接通过介质相连 设备之间想要进行信息传递时 将想要传递的数
  • idea中Git设置(http/ssh)方式

    最近用IDEA上的git功能出现了可以commit但无法push和pull的问题 测试发现原因是Could not read from remote repository 在Stack Overflow上发现了解决方法 在Settings
  • python构建发布_Python代码的构建与发布(Windows环境)

    1 首先将写好注释的代码保存在一个文件夹nester下 2 在这个文件夹下创建一个文件setup py 用来编辑模块的元数据 from distutils core import setup 从发布工具导入setup函数 setup nam
  • 什么叫持久化? 为什么持久化?(转)

    1 应用程序层次结构演变 这里本来应该有张描述应用程序结构演变的图 可是CSDN在这里上传不了 所以没有传上来 纵观几十年的计算机应用软件的演变过程 应用程序逐渐由单层体系结构发展为多层体系结构 最初应用软件只是在大型机上的单层应用程序 大
  • quill实现上传文件

    1 首先工具栏配置加上upload 如图 这时会发现上传图片没有显示出来 需要自定义一个上传的图标 在阿里云矢量图标库下载一个就可以了 2 图标样式修改 deep ql upload background url assets img up
  • JavaScript undeclared 与 undefined 的区别

    undefined 声明了变量 但是没有赋值 undeclared 没有声明变量就直接使用 如上图 num 就是undefined arr 则是 undeclared
  • 蓝桥杯Python初级测试题之省赛题1

    蓝桥杯Python初级测试题之省赛题1 1 统计成绩及格率和优秀率 题目描述 小L给学生们组织了一场考试 卷面总分为 100 分 每个学生的得分都是一个 0 到 100 的整数 如果得分至少是 60 分 则称为及格 如果得分至少为 85 分
  • C++实现矩阵乘法

    本贴分享用C 实现矩阵乘法计算的功能 具体内容请看代码和注释 这里单独说一明一部分代码块 1 采用vector lt vector
  • 【操作系统】王道考研 笔记总结目录(完结)

    写在前面 视频链接 是为了期末考和以后就业的笔记 第一章 操作系统 王道考研 p1 操作系统的概念 功能和目标 操作系统 王道考研 p2 操作系统的四个特征 操作系统 王道考研 p3 操作系统的发展与分类 操作系统 王道考研 p4 操作系统
  • Ruby简介 完全面对象 脚本 从人的角度编程(强大反射)

    Ruby 一种为简单快捷面向对象编程而创的脚本语言 在20世纪90年代由日本人松本行弘开发 遵守GPL协议和Ruby License 1 它的灵感与特性来自于Perl Smalltalk Eiffel Ada以及Lisp语言 由Ruby语言
  • 启动IDEA发现我的项目模块/代码没了

    依次点击 文件 项目结构 模块 导入模块
  • 【C++】基本数据类型

    C 基本数据类型是程序中最基本的数据类型 它们是构建复杂数据类型的基础 C 中的基本数据类型包括整型 浮点型 字符型和布尔型等 目录 基本数据类型 整型 浮点型 字符型 转义字符 字符串 布尔类型 sizeof 基本数据类型 整型 作用 用
  • 算法学习笔记——动态规划:不连续取值的前提下求最大总和

    LeetCode 198 打家劫舍 一排房屋 某房屋内的金额数为nums i 相邻房屋内的钱不能被同时取出 求最多能取出多少钱 nums 1 1 3 4 返回5 选择取出1 4 5 dp i 代表对于0 i号房屋 能取走的最大金额 依次考虑
  • python高级7.多任务--协程-迭代器

    迭代器 迭代是访问集合元素的一种方式 迭代器是一个可以记住遍历的位置的对象 迭代器对象从集合的第一个元素开始访问 直到所有的元素被访问完结束 迭代器只能往前不会后退 可迭代对象 iterable object 我们已经知道可以对list t
  • define()和defined()

    define 用来定义一个常量 define IN ADMIN true 定义一个IN ADMIN常量 defined 用来检测定义的常量是否存在 defined IN ADMIN 检测IN ADMIN是否存在 用处很大 比如你在一个页面上
  • 【数据库 Mysql查询系列】在sc表 中查询平均成绩高于75分的学生。

    和之前发的博文中涉及到的sc 表一样 本文不再展示表内容 直接上代码 select sno 学号 avg ifnull grade 0 平均成绩 from sc group by sno having avg ifnull grade 0
  • vue封装axios实现

    axios很多前端都应该是非常熟悉了 前端访问后端很多都是使用的它 今天我们使用vue来封装一个axios 首页我们新建一个request js文件并引入axios的依赖 import axios from axios 接着创建axios的
  • 熵的概念理解

    Author 修远 说明 本文为Datawhale下开源项目 李宏毅机器学习 决策树的补充内容 作者水平有限 还望学习者批评指正 Datawhale 学习目标 学习信息量计算 原理 学习信息熵 证明 0 H p
  • Pandas数据处理3:数据合并(join、merge),累计与分组(groupby)

    Pandas数据合并 join merge 累计与分组 groupby import pandas as pd import numpy as np def make df cols ind 一个简单的DataFrame data c st
  • 多维时序

    多维时序 MATLAB实现SCNGO CNN Attention多变量时间序列预测 目录 多维时序 MATLAB实现SCNGO CNN Attention多变量时间序列预测 预测效果 基本介绍 程序设计 参考资料 预测效果 基本介绍 1 S