原创+顶级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,一经查实,立即删除!

相关文章

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…

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

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

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主设…

用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包含所…

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

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

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

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

操作系统引导

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

qt自定义时间选择控件窗口

效果如图&#xff1a; 布局如图&#xff1a; 参考代码&#xff1a; //DateTimeSelectWidget #ifndef DATETIMESELECTWIDGET_H #define DATETIMESELECTWIDGET_H#include <QWidget> #include <QDateTime>namespace Ui { class DateTimeSelectWidget; }class DateTim…

单链表OJ题:LeetCode--141.环形链表

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下LeetCode中的第141道单链表OJ题&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; 数据结构与算法专栏&#xff1a;数据结构与算法 个 …

O2O:Sample Efficient Offline-to-Online Reinforcement Learning

IEEE TKDE 2024 paper Introduction O2O存在策略探索受限以及分布偏移问题&#xff0c;进而导致在线微调阶段样本效率低。文章提出OEMA算法首先使用离线数据训练乐观的探索策略&#xff0c;然后提出基于元学习的优化方法&#xff0c;减少分布偏移并提高O2O的适应过程。 Meth…

OpenHarmony教程指南-自定义通知推送

介绍 本示例主要展示了通知过滤回调管理的功能&#xff0c;使用ohos.notificationManager 接口&#xff0c;进行通知监听回调&#xff0c;决定应用通知是否发送。 效果预览 使用说明 1.在使用本应用时&#xff0c;需安装自定义通知角标应用&#xff1b; 2.在主界面&#xff…

重学SpringBoot3-WebMvcAutoConfiguration类

重学SpringBoot3-WebMvcAutoConfiguration类 是什么什么用生效条件作用 自定义配置的三种方式自定义配置举例1. 自定义 DispatcherServlet 配置2. 静态资源配置3. 自定义MVC配置4. 消息转换器5. 异常处理 是什么 org.springframework.boot.autoconfigure.web.servlet.WebMvcAut…

FPGA IBUFG

IBUFG和IBUFGDS的输入端仅仅与芯片的专用全局时钟输入管脚有物理连接&#xff0c;与普通IO和其它内部CLB等没有物理连接。 所以&#xff0c;IBUFG输入的不能直接接另外信号。 GTH transceiver primitives are called GTHE3_COMMON and GTHE3_CHANNEL in UltraScale FPGAs, an…

@RequestMapping与@GetMapping和@PostMapping等注解的区别

目录 前置知识 大致区别 使用场景上的注意事项 如何工作 使用案例 写法对比 前置知识 HTTP请求方法一共有9种&#xff0c;为&#xff1a;GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECTGET(获取资源) 本质就是发送一个请求来取得服务器上的某一资源&…

【Java代码审计】JNDI+RMI绕过高版本JDK的限制

【Java代码审计】JNDIRMI绕过高版本JDK的限制 1.高版本JDK利用注入导致的问题2.绕过分析3.Tomcat8绕过4.工具绕过 1.高版本JDK利用注入导致的问题 JDK 6u132、7u122、8u113 开始 com.sun.jndi.rmi.object.trustURLCodebase 默认值为false&#xff0c;运行时需加入参数 -Dcom.s…