【原创】一键实现CPO-BiTCN-BiGRU预测!24年顶级SCI算法优化!先用先发!直接替换Excel出图!

本文主要是介绍【原创】一键实现CPO-BiTCN-BiGRU预测!24年顶级SCI算法优化!先用先发!直接替换Excel出图!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

目录

数据介绍

模型介绍

1.BiTCN层

2.BiGRU层

3.基于CPO算法优化的BiTCN-BiGRU模型

创新点

构建BiTCN-BiGRU创新点在于:

使用CPO冠豪猪优化算法创新点在于:

结果展示

完整代码


         今天为大家带来一期CPO-BiTCN-BiGRU回归预测代码,采用2024年顶级SCI期刊《Knowledge-Based Systems》上刚出来的CPO优化算法进行优化!这个模型是作者独家原创的!完全可以当作创新点!任何学术平台都搜索不到,创新性极高!直接替换Excel数据即可用!

          特别需要指出的是,别说加了CPO优化算法,就算不加优化算法,我们学术平台上搜索BiTCN-BiGRU,也是完全搜索不到这个模型的!!!

知网平台:

WOS平台:

数据介绍

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

图片

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

模型介绍

1.BiTCN层

TCN由具有相同输入和输出长度的扩张因果卷积层组成,结合了CNN和RNN的优势。然而,传统的TCN只对输入序列进行正向卷积计算,只提取正向数据特征,忽略了反向中的隐含信息。因此,采用双向时间卷积结构BiTCN来捕捉前后方向的隐藏特征,以更好地获得功率序列的长时间依赖性!BiTCN的网络结构如下图所示!非常新颖!

2.BiGRU层

接着,利用BiGRU层来进一步处理BiTCN的输出,通过考虑时间序列的前后文信息来提高预测的准确性,进一步提高预测精度!整个模型的结构如下图所示:

3.于CPO算法优化的BiTCN-BiGRU模型

但是,BiTCN-BiGRU模型的参数太多了,为了避免人工调参的局限性与盲目性,本文提出了基于冠豪猪算法CPO优化的BiTCN-BiGRU模型。通过优化学习率,BiGRU的神经元个数,滤波器个数, 正则化参数四个参数提高其预测精度,减少人工调参。

冠豪猪优化器(Crested Porcupine Optimizer, CPO)是一种新型的元启发式算法(智能优化算法),该成果由Abdel-Basset等人于2024年1月发表在中科院1区SCI期刊Knowledge-Based Systems上,模拟了冠豪猪的各种防御行为,原文作者采用CEC2014、CEC2017和CEC2020三个CEC基准函数对CPO进行了验证,效果非常不错!

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

2024年新算法-冠豪猪优化算法(CPO)-公式原理详解与性能测评 附赠Matlab代码

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

创新点

构建BiTCN-BiGRU创新点在于:

1. 混合模型架构的设计创新

BiTCN-BiGRU模型的核心创新之一在于它将BiTCN和BiGRU两种网络架构融合在一起。TCN通过使用膨胀卷积和残差连接优化了传统卷积神经网络(CNN)在时间序列分析中的应用,提高了模型对长期数据依赖的捕捉能力。而BiGRU则在捕获时间序列的前后依赖关系方面表现出色,能够同时考虑过去和未来的信息。这种混合架构利用了两种方法的优点,既能处理复杂的时间依赖关系,又能提高模型对时间序列动态特征的适应能力。

2. 膨胀卷积和因果卷积的应用

在TCN部分,膨胀卷积的使用大大增加了模型的感受野,使其能够捕捉到更长期的依赖性,而不会显著增加参数数量或计算复杂度。此外,通过应用因果卷积,确保了模型在预测当前时间点的值时,只会使用到当前时间点之前的信息,有效防止了未来信息的泄露。这些技术的应用使得BiTCN-BiGRU模型在处理长序列时间数据时,能够更准确地预测未来的趋势和模式。

3. 双向学习机制的优化

BiGRU部分的双向学习机制是模型另一大创新点。通过在时间序列的正向和反向上分别应用GRU单元,模型能够综合利用过去和未来的信息进行预测。这种机制特别适合于处理那些在时间上具有双向依赖性的序列数据。结合TCN部分的长期依赖捕捉能力,BiTCN-BiGRU模型能够更全面地理解和预测时间序列数据的复杂动态。

4. 网络参数和结构的自动优化

在BiTCN-BiGRU模型的训练过程中,采用了优化算法(如CPO)自动调整网络参数,包括学习率、神经元数量、滤波器数量等。这种自动优化机制不仅减少了手动调参的工作量,还能根据数据特性调整模型结构,从而在不同的时间序列预测任务中达到最佳性能。

使用CPO冠豪猪优化算法创新点在于:

冠豪猪优化器刚刚于2024年1月发表在中科院1区顶级SCI期刊Knowledge-Based Systems上!实验结果表明,NRBO算法在大部分函数上均取得了最优结果!​你先用,你就是创新!

图片

之前推文有做过​CPO和23年新算法RIME的比较,效果显而易见!

结果展示

迭代曲线:

由于时间关系,这里只跑了6次,实际使用时可跑更多次取得更好的效果!

训练集预测结果:

测试集预测结果:

可以看到,预测值非常贴近实际曲线,甚至可以说是完美一致!

线性拟合图:

误差直方图:

模型结构图:

预测结果指标:

完整代码

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

CXYHB

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

这篇关于【原创】一键实现CPO-BiTCN-BiGRU预测!24年顶级SCI算法优化!先用先发!直接替换Excel出图!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/740815

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter