原创+顶级SCI优化!23年新算法PSA优化CNN-LSTM-Attention一键实现多变量回归预测!

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

目录

效果展示

数据介绍

创新点

模型流程

部分代码

完整代码获取


        ​今天为大家带来一期PSA-CNN-LSTM-Attention回归预测代码,知网和WOS都是搜不到的!完全是作者独家创立的!可以说是尚未发表的创新点直接替换Excel数据即可用!

        特别需要指出的是,我们在各个学术平台上搜索PSA-CNN-LSTM-Attention,都是完全搜索不到这个模型的!!!不信的可以看下面截图!

        知网平台:

        WOS平台:

        废话不多说,直接看效果图!

效果展示

        训练集预测效果图:

        测试集预测效果图:

        四张曲线拟合图!:

        适应度变化曲线图:

        误差直方图:

        网络结构图:

        迭代曲线图:

        以上所有图片(9张!),作者都已精心整理过代码,都可以一键运行main直接出图!非常方便!!

        适用平台:Matlab2020B及以上,没有的文件夹里已经免费提供安装包,直接下载即可!

数据介绍

        本期采用的数据是经典的多变量时间序列预测数据集,是为了方便大家替换自己的数据集,各个变量采用特征1、特征2…表示,无实际含义,最后一列即为输出。

        更换自己的数据时,只需最后一列放想要预测的列,其余列放特征即可,无需更改代码,非常方便!

创新点

        以下这些文字,如果大家需要用这个程序写论文,都是可以直接搬运的!

        1.结合CNN和LSTM的优势:

        CNN通过卷积层处理输入数据,提取局部特征;LSTM则处理序列化的特征,捕捉长期依赖关系。这种结合方式使得模型既能理解局部的输入特征,也能理解这些特征随时间的变化关系,增强了模型对于复杂序列数据的理解能力。

        2.引入注意力机制:

        在CNN之后引入全局平均池化层和SE通道注意力机制,通过学习各个通道的重要性来自适应地重新校准通道的特征响应,增强模型对重要特征的敏感度与关键特征的关注度,提高了模型的表示能力。这使得模型能够更加关注于对预测目标最重要的特征。这种机制进一步增强了模型捕捉关键信息的能力,同时保留了序列特征的丰富性。

        3.利用24年最新的PSA优化算法实现超参数自动优化

        PID搜索优化算法(PID-based search algorithm, PSA)于2023年12月发表在中科院1区Top SCI期刊《Expert Systems With Applications》上,该算法刚刚提出,提出时间极短,目前还没有使用该算法的文献,你先用,你就是创新!

        PSA灵感来源于增量PID算法,通过连续调整系统偏差将整个种群收敛到最优状态。原文作者以CEC2017的基准测试函数和六个约束问题。通过与近年来提出的七种元启发式算法的比较,验证了PSA的优化性能。实验结果表明,PSA算法在大部分函数上均取得了最优结果!

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

SCI一区新算法-PID搜索优化算法(PSA)-公式原理详解与性能测评 Matlab代码免费获取

模型流程

        最后再介绍一下我们的这个模型是怎么实现的以及它的流程:

        1.数据导入:从Excel文件中读取数据,设定最后一列为输出变量,其余列作为特征变量。

        2.训练集与测试集划分:按比例划分训练集和测试集,采用时间序列的重构方法准备数据。

        3.数据归一化:对训练集和测试集的特征和标签进行归一化处理,以提高模型训练效率。

        4.优化算法确定超参数:使用PID优化算法(PSA)确定CNN-LSTM-Attention模型的最优参数,包括学习率、隐藏层节点数和正则化系数。

        5.构建模型:设计CNN-LSTM-Attention网络,其中CNN用于特征提取,LSTM处理序列依赖,注意力机制强化关键信息。

        6.模型训练:将PSA算法确定的最优参数代入该模型,使用训练集对CNN-LSTM-Attention模型进行训练。

        7.模型预测:利用训练好的模型对训练集和测试集进行预测,然后对预测结果进行反归一化。

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

部分代码

%%  导入数据result = xlsread('数据集.xlsx');%%  数据分析num_samples = length(result);               %  样本个数kim = 6;                                    %  延时步长(前面多行历史数据作为自变量)zim = 1;                                    %  跨zim个时间点进行预测nim = size(result, 2) - 1;                  %  原始数据的特征是数目%%  划分数据集for i = 1: num_samples - kim - zim + 1    res(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.8;                              %  训练集占数据集比例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);

完整代码获取

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

CXYHE

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

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

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

相关文章

【 React 】对React中类组件和函数组件的理解?有什么区别?

相关文章: 1 React 中的类组件 2 React中的函数组件 1. 类组件 类组件,也就是通过使用ES6类的编写形式去编写组件,该类必须继承React.Component 如果想要访问父组件传递过来的参数,可以通过this.props方式去访问 在组件中必须实现…

RabbitMQ的web控制端介绍

2.1 web管理界面介绍 connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况channels:通道,建立连接后,会形成通道,消息的投递、获取…

Vue-Router使用

1.安装 npm install vue-router4 2. 添加路由 新建router文件夹,新建文件 index.ts import { createRouter, createWebHashHistory,createWebHistory} from "vue-router";const routes [{path: /login,component: () > import("../views/Logi…

[leetcode 169][多数元素]

[leetcode 169][多数元素] 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3] …

[XS2123] 集成功率 MOSFET V1.0, IEEE 802.3af 兼容的 PD 和 DC/DC 控制器

[XS2123] 集成功率 MOSFET V1.0, IEEE 802.3af 兼容的 PD 和 DC/DC 控制器 概述 XS2123 是一款基于 IEEE 802.3af 标准 PD 和DC/DC 集成的控制器。 该芯片的 PD 控制器部分为用电设备(PD)提供符合以太网供电(PoE&a…

牛客网——美团2024届秋招笔试第三场编程真题

牛客网——美团2024届秋招笔试第三场编程真题 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题1. 平均数为k的最长连续子数组2. 小球投盒3. 小红结账4. 小美的游戏5. 小美种果树6…

小米汽车上市进入倒计时,已开启内部试驾

在十四届全国人大二次会议上,全国人大代表、小米集团创始人、董事长CEO雷军回应了小米汽车的最新消息,小米汽车预计很快就要正式上市。 小米汽车推出了两款车型:SU7和SU7 Max。这两款车型均为纯电轿车,带来了不同的配置和性能特点…

python自学6

第一节第十章 开发图表 第一个可视化图表,折线图的开发 json数据格式 pyecharts模块 图标源码网站 Document gallery.pyecharts.org pyecharts模块的快速入门 pyecharts配置有两个选项 全局配置是对整个可视化界面进行配置,比如名字,工具…

代码复现错误

1. 问题: torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 64.00 MiB (GPU 0; 39.59 GiB total capacity; 37.72 GiB already allocated; 38.19 MiB free; 37.83 GiB reserved in total by PyTorch) If reserved memory is >> allocat…

防御保护 IPSEC VPPN实验

实验背景:FW1和FW2是双机热备 主备备份模式。 实验要求:在FW5和FW3之间建立一条IPSEC通道,保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 IPSEC VPPN实验配置(由于是双机热备状态,所以FW1和FW2只需要配置FW1主设…

【MGR】MySQL Group Replication 要求与限制

目录 17.3 Requirements and Limitations 17.3.1 Group Replication Requirements Infrastructure Server Instance Configuration 17.3.2 Group Replication Limitations Limit on Group Size Limits on Transaction Size 17.3 Requirements and Limitations 这个部分列…

项目人都应该来看看!!揭秘项目崩盘背后的逻辑,NFG数藏成破局关键

每天五分钟一套互联网知识,大家好我是啊浩说模式 在投资领域,项目泡沫崩盘是一个屡见不鲜的现象。当某个项目或行业被过度炒作,市场参与者纷纷涌入,推动价格不断攀升,直至形成一个看似坚不可摧的泡沫。然而&#xff0c…

用FPGA CORDIC IP核实现信号的相位检测,计算相位角

用FPGA CORDIC IP核实现信号的相位检测 1.matlab仿真 波形仿真代码: 代码功能:生成一个点频信号s,求出s的实部和虚部;并且结算相位角atan2。画出图形,并且将Q和I数据写入文件中。 %代码功能:生成一个点…

20.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-数据分析工具数据类型编辑功能的实现

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易道云信息技术研究院VIP课 上一个内容:19.数据分析工具数据类型配置功能的实现 码云地址(master 分支&#…

unity学习(49)——服务器三次注册限制以及数据库化角色信息4--角色信息数据库化

1.此处下断开始调试,list函数内就有问题: 2. 现在的问题是只读不写!32行就是写入部分的代码: 3. 很奇怪,调试的时候确实是写进来了 程序正常执行后,文件中数据也没有消失 关闭服务器文件内容依旧正常。 players包含所…

Lc11. 盛最多水的容器

题目:给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 思路:定义两个指…

MySQL篇—执行计划之覆盖索引Using index和条件过滤Using where介绍(第三篇,总共三篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…

正态性检验方法汇总

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

提醒一下!今年考研的人不要太老实了!!

今年准备计算机考研的同学,别太老实了!别人说什么你就信什么 如果你的工作能力不足以支撑找到一个满意的工作,那我建议再沉淀两年! 很多同学其实有点眼高手低,在计算机专业,低于1w的工作看不上&#xff0…

操作系统引导

目录 一. 什么是操作系统引导 \quad 一. 什么是操作系统引导 \quad 什么是操作系统引导: 就是在开机的时候, 怎么让操作系统运行起来 操作系统是安装在C盘的 分区表用来说明C,D,E,F盘的存储空间 RAM一关机, 里面的数据就会被清空, ROM则不会 MBR里面的程序被读到RAM里面, 那…