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

news2024/10/5 19:20:20

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

目录

效果展示

数据介绍

创新点

模型流程

部分代码

完整代码获取


        ​今天为大家带来一期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.coloradmin.cn/o/1500366.html

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

相关文章

7款前端实战型项目特效分享(附在线预览)

分享7款实用性的前端动画特效 其中有canvas特效、css动画、svg动画等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 CSS春节灯笼特效 基于CSS实现的灯笼特效 灯笼会朝左右两个方向来回的摆动着 以下效果图只能体现…

调用Mybatis plus中的saveBatch方法报找不到表的问题

1.问题现象 在用Mybatis plus开发的项目中,用自带的API批量保存的方法saveBatch操作时,发现报没有找到表的错误。 错误日志截图如下: 表实际是存在的,且发现其他的方法都没有问题,包括save、update等单个的方法&…

Linux基础命令[13]-nl

文章目录 1. nl 命令说明2. nl 命令语法3. nl 命令示例3.1 不加参数3.2 -b(依据样式显示行号)3.3 -n(格式化行号)3.4 -w(占位数长度)3.5 -i(依据数值增长行号)3.6 -v(定义…

【数据库】数据库学习使用总结

一、数据库介绍 二、数据库系统 1、DB——>存储数据的 2、DBMS——>用来管理数据的 DBMS: 1、DCL 用;用来创建和维护用户账户 2、DDL 数据定义语言 3、DML 用来操作数据 三、DDL 1、操作数据库(创建和删除) create d…

基于sprinbgoot的火锅店管理系统(程序+数据库+文档)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

vue 在线预览word

1 mammoth 先找的是mammoth这个插件yarn add mammoth,版本是1,7.0 参考网上的示例使用如下: import mammoth from "mammoth"; const vHtml ref("") const readExcelFromRemoteFile (url) >{var xhr new XMLHttpRequest();xhr.open("…

2024年新版CMS内容管理使用,不用回退老版本 使用最新小程序云开发cms内容模型

一,问题描述 最近越来越多的同学找石头哥,说cms用不了,其实是小程序官方最近又搞大动作了,偷偷的升级的云开发cms(内容管理)以下都称cms,不升级不要紧,这一升级,就导致我…

浅谈去耦电容的作用、选择、布局及其它电容的区别!

在一些文章资料中,去耦电容器被认为是旁路电容器。在其他资料中,去耦电容和旁路电容的区别在于:“旁路电容以输入信号中的干扰为滤波对象,而去耦电容以输出信号的干扰为滤波对象,防止干扰信号返回到输出端。”力量。”…

光耦合器概述

在电子元件领域,很少有器件能像光耦合器那样发挥如此重要的作用。这些巧妙的组件通过巧妙地使用光波促进电信号的传输,确保输入和输出电路之间的重要分离。让我们深入研究光耦合器的世界,探索它们的应用、工作原理以及在电子系统中的意义。 …

【CSP试题回顾】202109-1-数组推导

CSP-202109-1-数组推导 解题代码 #include<iostream> #include<vector> #include<algorithm> using namespace std;long long maxSum, minSum;int main() { int n;cin >> n;vector<int>B(n);for (auto& it : B){cin >> it;maxSum …

#14vue3生成表单并跳转到外部地址的方式

1、背景 后端返回的json数据中包含一个json数组&#xff0c;此数组中是目标跳转地址所需要的form表单的数据。 2、跳转前的页面 const goto () > {finish.value true;request.post(/xxx/yyy,{zzz: zzz.value}).then(res > {const url res.data.submitUrlconst params…

微信小程序可拖拽视频播放案例

微信小程序可拖拽视频播放案例 如图所示 使用原生小程序组件 movable-area movable-view 注意movable-view必须在area内 官方组件地址 wxml <movable-area class"movableArea"><movable-view class"movableView" out-of-bounds"false&q…

023—pandas 扩展逗号爆炸分隔字符串数据

需求&#xff1a; 将 c1 按逗号拆分&#xff0c;爆炸为一行一行数据&#xff0c;然后将 c1 后边的有逗号的扩展成行&#xff0c;没逗号的只写在第一行。 思路&#xff1a; 先将 DataFrame 中有逗号的值分拆转为列表&#xff0c;接下来我们对 c1 进行爆炸&#xff0c;就得到了…

【python进阶篇】面向对象编程(1)

面向对象编程——Object Oriented Programming&#xff0c;简称OOP&#xff0c;是一种程序设计思想。OOP把对象作为程序的基本单元&#xff0c;一个对象包含了数据和操作数据的函数。 在Python中&#xff0c;所有数据类型都可以视为对象&#xff0c;当然也可以自定义对象。自定…

百度智能云发布专用向量数据库 VDB 1.0,全新设计内核开启性能狂飙

1 专用向量数据库应对未来业务挑战 向量数据库 向量检索 数据库 向量数据库大致可以分为 2 部分&#xff1a;向量数据的检索&#xff0c;以及向量数据的存储和管理。 向量数据库的性能&#xff0c;比如高 QPS、低延时等&#xff0c;使得业务能够更快的响应用户的查询请求…

【教程】 iOS构建版本无效问题解决方案

引言 在进行iOS应用上架时&#xff0c;有时会遇到构建版本无效的问题&#xff0c;即通过XCode上传成功后&#xff0c;但在App Store Connect的TestFlight中无法显示构建版本&#xff0c;或者显示一会儿后就消失了。本文将介绍可能的原因分析&#xff0c;并提供解决问题的方法。…

Linux中三次握手,四次挥手状态图,端口复用 半关闭状态,心跳包

tcp三次握手和四次挥手状态图&#xff1a; 为什么需要2MSL&#xff1a; 原因1&#xff1a;让四次挥手过程更加可靠&#xff0c;确保最后一个发送给对方的ACK到达&#xff1b;若对方没有收到ACK应答&#xff0c;对方会再次发送FIN请求关闭&#xff0c;此时在2MSL时间内被动关闭…

【uni-app】condition 启动模式配置,生产环境无效,仅开发期间生效

在小程序开发过程中&#xff0c;每次代码修改后&#xff0c;都会启动到首页&#xff0c;有时非常不方便&#xff0c;为了更高效的开发&#xff0c;有时需要模拟直接跳转到指定的页面&#xff0c; 操作方法如下&#xff1a; 在pages.joson里面配置下列代码&#xff1a; "…

C#,煎饼排序问题(Pancake Sorting Problem)算法与源代码

1 煎饼排序问题 给定一个未排序的数组&#xff0c;任务是对给定数组进行排序。您只能在阵列上执行以下操作。 翻转&#xff08;arr&#xff0c;i&#xff09;&#xff1a;将数组从0反转为i 示例&#xff1a; 输入&#xff1a;arr[]{23、10、20、11、12、6、7} 输出&#xff1a…

Prompt Engineering、Finetune、RAG:OpenAI LLM 应用最佳实践

一、背景 本文介绍了 2023 年 11 月 OpenAI DevDay 中的一个演讲&#xff0c;演讲者为 John Allard 和 Colin Jarvis。演讲中&#xff0c;作者对 LLM 应用落地过程中遇到的问题和相关改进方案进行了总结。虽然其中用到的都是已知的技术&#xff0c;但是进行了很好的总结和串联…