原创!顶级SCI优化!一键实现ICEEMDAN-NRBO-BiLSTM-Attention多变量时间序列预测!以光伏数据集为例

       声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~

目录

数据介绍

模型流程

创新点

结果展示

完整代码


今天为大家带来一期ICEEMDAN-NRBO-BiLSTM-Attention多变量时间序列预测代码,独家原创!任何学术平台都搜索不到,完全是作者独家创立的!适合作为创新点!直接替换Excel数据即可用!具体代码已放在最后,需要代码的朋友可直接拉到最后~

知网平台:

WOS平台:

数据介绍

作者采用的案例数据是某地光伏功率数据,特征包括气温, 方位角, 云层不透明度, 露点温度, DHI(太阳散射辐射指数), DNI(太阳直接辐射指数), GHI(太阳总水平辐射), GTI(固定倾角辐射), GTI(跟踪倾角辐射), 大气可降水量, 相对湿度, 降雪深度, 地面气压, 高度10m风向, 高度10m风速, 天顶角,输出即为实际功率一列。

在实际处理时,由于光伏白天不发电,因此作者把功率为0的行都删除了!同时,由于时间关系,作者这边只选取了2022年1月份31天的功率数据进行预测,如图所示。更换自己的数据时,只需最后一列放想要的预测的列,其余列放特征即可,无需更改代码,非常方便!

模型流程

先简单介绍一下我们的这个模型是怎么实现以及它的流程:

1.数据导入:从Excel文件中读取光伏预测的数据,其中最后一列是输出变量,其余列是特征变量。

2.ICEEMDAN分解:对输出变量使用ICEEMDAN分解方法,分解成多个固有模式函数(IMF),并绘制分解结果。

3.数据预处理和格式准备:将分解后的IMFs作为目标变量进行预处理,包括训练集和测试集的划分、数据归一化等。

4.NRBO优化:对每个IMF分量,使用牛顿-拉夫逊优化算法(NRBO)优化BiLSTM-Attention的参数,包括学习率、隐藏层节点数和L2正则化参数。

5.网络训练:根据NRBO优化得到的参数,构建并训练BiLSTM-Attention模型。

6.模型预测:使用训练好的模型对训练集和测试集进行预测,并将预测结果进行反归一化处理。

7.预测结果集成:将所有IMF分量的预测结果相加,得到最终的预测结果。

8.结果对比和评估:绘制真实值与预测值的对比图,并计算R^2、MAE、RMSE和MAPE等评估指标。

以上所有流程,作者都已精心整理过代码,都可以一键运行main直接出图!

适用平台:Matlab2023及以上,没有的可免费提供安装包!

创新点

构建ICEEMDAN-NRBO-BiLSTM-Attention多变量时间序列预测模型的创新点在于:

1.ICEEMDAN分解的应用:

在BiLSTM-Attention模型之前使用ICEEMDAN分解作为数据预处理步骤,这有助于模型处理非线性和非平稳的时间序列数据。通过将时间序列分解为多个简单的子序列,每个子序列都可以更容易地由BiLSTM-Attention网络进行学习和预测。

2.双向长短期记忆网络(BiLSTM):

BiLSTM能够捕捉时间序列数据中的长期依赖性。与传统的单向LSTM相比,BiLSTM通过考虑过去和未来的信息,能够更全面地理解数据的时间动态。这在处理具有复杂时间属性的序列数据时尤为重要。

3.注意力机制的应用:

引入Attention机制能够让模型在做出预测时自动识别并集中于最重要的时间步。这意味着模型不仅学习序列中的模式,还学习到这些模式在序列中的位置,从而在预测时能够更加准确地考虑到时间上的重要特征。

4.牛顿-拉夫逊优化算法(NRBO)的创新应用:

使用NRBO优化算法来优化BiLSTM-Attention网络的超参数,这种方法可以在训练过程中自动调整学习率、隐藏层单元数和正则化参数。这一点尤其重要,因为它减少了手动调整超参数的需要,可以节省大量的时间并提高模型性能。

5.组合应用:

BiLSTM和Attention机制的结合是对现有技术的一大创新,它允许模型在每个时间点上自动调整其注意力,而不是将相同的权重分配给所有时间步。这提高了预测的灵活性和精度。

使用NRBO优化算法的创新点在于:

牛顿-拉夫逊优化算法(Newton-Raphson-based optimizer, NBRO)于2024年2月发表在中科院2区Top SCI期刊《Engineering Applications of Artificial Intelligence》上,该算法刚刚提出,提出时间极短,目前还没有使用该算法的文献,你先用,你就是创新!

图片

NRBO通过使用几个向量集和两个算子(如NRSR和TAO)来探索搜索域,应用NRM来发现搜索区域,从而定义搜索路径。原文作者使用64个基准数值函数对NRBO的性能进行了评估,其中包括23个标准测试函数,29个CEC2017约束基准和12个CEC2022基准。实验结果表明,NRBO算法在大部分函数上均取得了最优结果!

具体原理和测试效果请看这篇推文:

2024年新算法-牛顿-拉夫逊优化算法(NRBO)-公式原理详解与性能测评 Matlab代码免费获取

结果展示

ICEEMDAN分解结果:

训练集预测结果:

测试集预测结果:

可以看到,预测结果非常贴近真实值!效果非常好!也验证了本文模型的有效性!

参数迭代变化曲线图:

由于时间关系,作者这边只运行了5次,如果时间充足,可运行更多次,效果会更好~

预测结果指标:

完整代码

点击下方小卡片,后台回复关键字,不区分大小写:

CXYHA

其他更多需求或想要的代码均可点击下方小卡片后后台私信,看到后会秒回~

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

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

相关文章

opencv-python保存视频为mp4格式并支持在浏览器播放

前言 之前在项目上使用yolov8进行视频检测的时候,yolov8默认windows系统下保存的是avi格式 suffix, fourcc (.mp4, avc1) if MACOS else (.avi, WMV2) if WINDOWS else (.avi, MJPG) self.vid_writer[idx] cv2.VideoWriter(str(Path(save_path).with_suffix(suf…

【感知机】感知机(perceptron)学习算法知识点汇总

机器学习——感知机 感知机(perceptron)是一种二分类的线性模型,属于判别模型,也称为线性二分类器。输入为实例的特征向量,输出为实例的类别(取1和-1)。可以视为一种使用阶梯函数激活的人工神经元,例如通过梅尔频率倒谱系数(MFCC…

N叉树的后序遍历

1.题目 这道题是2024-2-19的签到题,题目难度为简单。 考察的知识点为DFS算法(树的深度遍历)。 题目链接:N叉树的后序遍历 给定一个 n 叉树的根节点 root ,返回 其节点值的 后序遍历 。 n 叉树 在输入中按层序遍历进…

leetcode刷题-最接近的三位数之和

1.题目描述 2.解题思路 其实这个题目的解题思路,和昨天写的两个题目差不多,定义两个指针,进行排序,避免多次大量循环,减少时间复杂度。在上次的基础上进行了一个比较小的改动。 3.代码 class Solution:def threeSumCl…

swagger+javax/xml/bind/DatatypeConverter+aop各种问题

文章目录 一、No operations defined in spec!1.问题图片2.解决方法 二、java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter1.问题图片2.解决方法 三、AOP切点不够精确问题1.问题描述2.解决方案 总结 一、No operations defined in spec! 这是swagger报的错&…

代码随想录算法训练营 DAY20 | 二叉树(7)

一、LeetCode 530 二叉搜索树的最小绝对值 题目链接:530.二叉搜索树的最小绝对值https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 思路一:利用搜索二叉树的中序遍历结果为有序数组的性质,将遍历结果保存到数组中&#xf…

【Google SEO】SEO指标

SEO最难的事情之一就是: 你怎么知道你正在做的事情是否真的有效? 这是一个很难回答的问题。特别是因为SEO可能需要几个月的时间才能真正发挥作用。 好吧,今天您将确切地看到要跟踪的SEO指标。如何跟踪它们。以及如何加倍努力,为…

阿里云香港轻量应用服务器是什么线路?

阿里云香港轻量应用服务器是什么线路?不是cn2。 阿里云香港轻量服务器是cn2吗?香港轻量服务器不是cn2。阿腾云atengyun.com正好有一台阿里云轻量应用服务器,通过mtr traceroute测试了一下,最后一跳是202.97开头的ip,1…

分库分表面试必背

一,背景 随着互联网的普及,使用人数和场景爆炸式增长,现在随便一个应用系统都可能达到数百万千万甚至更大数量级的数据。大量的数据带来了新的挑战,怎么快速完成增删改查的业务,是应用服务开发者最头痛的问题。面对这个…

Linux网络编程套接字

目录 认识端口号认识传输层协议TCP/UDP网络字节序socket编程接口实现简单的UDP网络程序实现远程执行服务器shell指令Windows套接字编写UDP实现一个简单的聊天室实现简单的TCP网络程序TCP实现一个中英互译程序守护进程原理 认识端口号 在进行网络通信的时候是不是我们两台机器…

grafana配置钉钉告警模版(一)

1、配置钉钉告警模版 创建钉钉告警模版,然后在创建钉钉告警时调用模版。 定义发送内容具体代码 my_text_alert_list 是模版名称后面再配置钉钉告警时需要调用。 {{/* 定义消息体片段 */}} {{ define "my_text_alert_list" }}{{ range . }}告警名称&…

SpringAop是什么?

简单介绍: AOP:Aspect Oriented Programming (面向切面编程、面向方面编程),其实就是面向特定方法编程。 场景: 比如现在有一个需求,我要统计每一个业务方法的耗时时长, 我们只需在业务方法的前面获取一个…

srs 边缘集群

srs官方关于边缘集群的介绍: Edge Cluster | SRS 本篇分析一下边缘集群中上行边缘节点的处理逻辑。 关于上行的边缘节点: SRS对于上行边缘,采取直接代理方式,并没有采取边缘缓存方式。所谓边缘缓存方式,即推流到边…

操作系统概念

一、概念 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括: 内核(进程管理,内存管理,文件管理,驱动管理)其他程序(例如函数库&…

区块链技术和Hyperledger Fabric介绍

1 区块链介绍 1.1 区块链技术形成 1.1.1 起源 在比特币诞生之时,技术专家们开始研究比特币的底层技术,并抽象提取出来,形成区块链技术,或者称分布式账本技术。 1.1.2 定义 简称BT(Blockchain technology&#xff…

【递归】【后续遍历】【迭代】【队列】Leetcode 101 对称二叉树

【递归】【后续遍历】Leetcode 101 对称二叉树 解法一: 递归:后序遍历 左右中解法二: 迭代法,用了单端队列 ---------------🎈🎈对称二叉树 题目链接🎈🎈------------------- 解法一…

Eclipse - Code Templates

Eclipse - Code Templates References Window -> Preferences -> C/C -> Code Style -> Code Templates 配置默认代码模板,可以点击 Export 将自己配置好的 Code Templates 导出去,以便备份和共享。 References [1] Yongqiang Cheng, https…

Docker原理及概念相关

Docker最核心的组件 image:镜像,构建容器,也可以通过Dockerfile文本描述镜像的内容。 (我们将应用程序运行所需的环境,打包为镜像文件) Container:容器 (你的应用程序,就跑在容器中 ) 镜像仓库(dockerhub)(…

应急响应实战笔记02日志分析篇(5)

第5篇:MySQL日志分析 常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源。 0x01 Mysql日志分析 general query log能记录成功连接和每次执行的查询,我们…

《白话C++》第10章 STL和boost,Page84 shared_ptr示例使用,容器中的指针

容器中的指针在容器解体时经常忘了释放&#xff1f;指针存放在容器中多次&#xff0c;结果被重复释放&#xff1f;这个问题&#xff0c;通过std::shared_ptr都可以完美地解决&#xff1a; #include <iostream> #include <list> #include <vector> #include …