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

本文介绍了一种创新的PSA-CNN-LSTM-Attention模型,用于时间序列预测,特别是在数据集上实现了独特的效果。模型结合了CNN和LSTM的优势,引入了注意力机制,并利用PSA优化算法自动调整超参数。提供了Matlab代码和详细步骤,适用于学术研究和实际应用。

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

目录

效果展示

数据介绍

创新点

模型流程

部分代码

完整代码获取


        ​今天为大家带来一期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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值