多维时序

2023-11-10

多维时序 | MATLAB实现CNN-BiLSTM-Attention多变量时间序列预测

预测效果

1
2
3
4
5
6
7
8
9
10
11

基本介绍

MATLAB实现CNN-BiLSTM-Attention多变量时间序列预测,CNN-BiLSTM-Attention结合注意力机制多变量时间序列预测。

模型描述

Matlab实现CNN-BiLSTM-Attention多变量时间序列预测
1.data为数据集,格式为excel,4个输入特征,1个输出特征,考虑历史特征的影响,多变量时间序列预测;
2.CNN_BiLSTM_AttentionNTS.m为主程序文件,运行即可;
3.命令窗口输出R2、MAE、MAPE、MSE和MBE,可在下载区获取数据和程序内容;
注意程序和数据放在一个文件夹,运行环境为Matlab2020b及以上。

注意程序和数据放在一个文件夹,运行环境为Matlab2020b及以上。
4.注意力机制模块:
SEBlock(Squeeze-and-Excitation Block)是一种聚焦于通道维度而提出一种新的结构单元,为模型添加了通道注意力机制,该机制通过添加各个特征通道的重要程度的权重,针对不同的任务增强或者抑制对应的通道,以此来提取有用的特征。该模块的内部操作流程如图,总体分为三步:首先是Squeeze 压缩操作,对空间维度的特征进行压缩,保持特征通道数量不变。融合全局信息即全局池化,并将每个二维特征通道转换为实数。实数计算公式如公式所示。该实数由k个通道得到的特征之和除以空间维度的值而得,空间维数为H*W。其次是Excitation激励操作,它由两层全连接层和Sigmoid函数组成。如公式所示,s为激励操作的输出,σ为激活函数sigmoid,W2和W1分别是两个完全连接层的相应参数,δ是激活函数ReLU,对特征先降维再升维。最后是Reweight操作,对之前的输入特征进行逐通道加权,完成原始特征在各通道上的重新分配。

1
2

程序设计

  • 完整程序和数据获取方式1:同等价值程序兑换;
  • 完整程序和数据获取方式2:私信博主获取。
layers = [
    % input matrix of spectrogram values
    sequenceInputLayer(inputSize,"Name","sequence")
    sequenceFoldingLayer("Name","fold");
    % convolutional layers
    convolution2dLayer([5 5],10,"Name","conv1","Stride",[2 1])
    reluLayer("Name","relu1")
    maxPooling2dLayer([5 5],"Name","maxpool1","Padding","same","Stride",[2 1])
    convolution2dLayer([5 5],10,"Name","conv2","Stride",[2 1])
    reluLayer("Name","relu2")
    maxPooling2dLayer([5 5],"Name","maxpool2","Padding","same","Stride",[2 1])
    convolution2dLayer([3 3],1,"Name","conv3","Padding",[1 1 1 1])
    reluLayer("Name","relu3")
    maxPooling2dLayer([2 2],"Name","maxpool3","Padding","same","Stride",[2 1]);
    % unfold and feed into LSTM
    sequenceUnfoldingLayer("Name","unfold")
    flattenLayer("Name","flatten")
    bilstmLayer(numHiddenUnits1,"Name","bilstm","OutputMode","last")
    dropoutLayer(0.4,"Name","dropout")
    fullyConnectedLayer(numClasses,"Name","fc")
    softmaxLayer("Name","softmax")
    classificationLayer("Name","classoutput");
    ];
lgraph = layerGraph(layers);
lgraph = connectLayers(lgraph,'fold/miniBatchSize','unfold/miniBatchSize');
% Training
maxEpochs = 200;
learningRate = 0.001;
miniBatchSize = 15; % is this needed?
options = trainingOptions('sgdm', ...
    'ExecutionEnvironment', 'gpu', ...
    'GradientThreshold', 1, ...    
    'MaxEpochs' ,maxEpochs, ...
    'miniBatchSize',miniBatchSize,...
    'SequenceLength', 'longest', ...
    'Verbose', 0, ...
    'ValidationData', {xVal, yVal}, ...
    'ValidationFrequency', 30, ...
    'InitialLearnRate', learningRate, ...
    'Plots', 'training-progress',...
    'Shuffle', 'every-epoch');
net = trainNetwork(xTrain, yTrain, lgraph, options);
layers = [ sequenceInputLayer(12,'Normalization','none', 'MinLength', 9);
    
    convolution1dLayer(3, 16)
    batchNormalizationLayer()
    reluLayer()
    
    maxPooling1dLayer(2)
  
    convolution1dLayer(5, 32)
    batchNormalizationLayer()
    reluLayer() 
    
    averagePooling1dLayer(2)
    
    lstmLayer(100, 'OutputMode', 'last')
    fullyConnectedLayer(9)
    softmaxLayer()
    classificationLayer()];
options = trainingOptions('adam', ...
    'MaxEpochs',10, ...
    'MiniBatchSize',27, ...
    'SequenceLength','longest');
% Train network
net = trainNetwork(XTrain,YTrain,layers,options);
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

参考资料

[1] http://t.csdn.cn/pCWSp
[2] https://download.csdn.net/download/kjm13182345320/87568090?spm=1001.2014.3001.5501
[3] https://blog.csdn.net/kjm13182345320/article/details/129433463?spm=1001.2014.3001.5501

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多维时序 的相关文章

随机推荐

  • chrome浏览器 下载网页视频的方法

    有时候 我们在网上浏览到一些制作的非常好视频 但是网页又不提供视频下载 怎么办呢 工具 Chrome浏览器 迅雷 这里我们以Chrome浏览器为例 其他浏览器同理 步骤 1 在视频播放页面 我们在空白处 单击右键出现下列菜单 点击 检查 或
  • L1 L2范式

    正则化 Regularization 机器学习中几乎都可以看到损失函数后面会添加一个额外项 常用的额外项一般有两种 一般英文称作 1 1 norm和 2 2 norm 中文称作L1正则化和L2正则化 或者L1范数和L2范数 L1正则化和L2
  • 高通Vuforia AR SDK CloudReco案例

    1 云端数据库的建立 包括数据库的Accsse Key 其中 Server Access Keys是被用于VWS服务的 主要用来上传图片和管理图片 Client Access Keys被用于APP中图片识别服务而搜索数据库 标志的设置 一般
  • [WolframTones] an experiment in a new kind of music

    WolframTones an experiment in a new kind of music made possible by Mathematica and A New Kind of Science http tones wolf
  • Python如何读写配置文件?

    目录 什么是配置文件 常见的配置文件格式 为什么要使用配置文件 Python如何读写配置文件 什么是配置文件 配置文件是用于存储程序或系统的设置和配置选项的文本文件 它通常以特定的格式编写 以便程序或系统可以读取和解析其中的配置信息 配置文
  • uos桌面专业版下载多架构软件安装包

    文章目录 一 进入文件下载目录 二 下载软件包及其依赖包 三 安装下载好的deb包 一 进入文件下载目录 进入apt缓存目录后 将多余的deb包全部删除 uos uos PC var cache apt archives cd var ca
  • Android开源框架之okhttp

    OKHttp是一款高效的HTTP客户端 支持连接同一地址的链接共享同一个socket 通过连接池来减小响应延迟 还有透明的GZIP压缩 请求缓存等优势 其核心主要有路由 连接协议 拦截器 代理 安全性认证 连接池以及网络适配 拦截器主要是指
  • 编程大杂烩(四)

    编程大杂烩 四 57 Linux常用命令 版权声明 本文为CSDN博主 Demon gu 的原创文章 遵循CC 4 0 BY SA版权协议 转载请附上原文出处链接及本声明 原文链接 https blog csdn net qq 233291
  • Servlet学习——为什么在web容器中servlet对象只有一个?

    以下为本人个人观点 如有错误 望指出 不胜感激 简单来说就是为了节省内存 servlet的设计非常的巧妙 如果我们对每一个用户请求都生成一个对应servlet的对象 第一 由于web服务器的访问量比较大 意味着内存开销会很大 第二 要GC大
  • 全栈之前端

    欢迎关注 全栈工程师修炼指南 公众号 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 花开堪折直须折 莫待无花空折枝 作者主页 https www weiyigeek top 博客 https b
  • Python程序笔记2023004

    文章目录 抛硬币实验 random 模块 最初版本 改进版本 1 改进版本 2 语法分析 1 语法分析 2 语法分析 3 改进版本 3 改进版本 4 代码分析 1 代码分析 2 代码分析 3 代码分析 4 抛硬币实验 random 模块 i
  • 《Mysql实战45讲》网盘链接

    链接 https pan baidu com s 14fq7BzQD4sIBjYeh1sElQw 提取码 1119
  • 2020年Android面试题汇总(初级)

    本博文转载自 https www jianshu com p feb9584b492c 作者 Wocus 1 跨进程通信的几种方式 Intent 比如拨打电话 ContentProvider数据库存储数据 Broadcast广播通信 AID
  • 代码模型 CodeGeeX2-6B 开源,最低6GB显存,性能优于StarCoder

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 以下内容来源于GLM大模型 我们希望每一位程序员 都能在自己机器上跑上一个自己的编程助手 为实现这一目标 我们现将 代码生成模型 CodeGeeX2 6B 开源 同时我们也将对该
  • Unicode下CString和char *之间的互相转换

    CString中存储的字符的数据类型为wchar t类型 一 CString转换为char 1 方法一 使用wcstombs include
  • netty的ByteBuf转字节输入流InputStream

    用到了netty的UDP协议 获取到客户端传来的封包 通过content 方法获取到客户端发来的消息内容 获取到的是ByteBuf类型的 就用到了BytBuf转字节流 代码如下 Override protected void channel
  • 前端gulp构建注入Vconsole踩的坑

    背景 前端项目是用gulp构建的 为了在测试环境更好的调试和定位问题 变引入了在线的Vconsole插件 用了一段时间确实方便调试工作 可就在前几天突然请求的接口都报错了 定位查看了一下 接口的请求格式发生了变化 为啥导致构建后接口参数格式
  • 抓包工具 charles 工作中常见的设置

    文章目录 前言 一 更改代理的端口号 二 下载证书 电脑端下载 手机端下载 三 设置弱网 四 断点设置 五 过滤URL 总结 前言 记录charles的常见使用知识点 一 更改代理的端口号 机械设置按钮 gt proxy settings
  • MySQL索引之全文索引(FULLTEXT)

    MySQL索引之全文索引 FULLTEXT MySQL创建全文索引 使用索引时数据库性能优化的必备技能之一 在MySql数据库中 有四种索引 聚焦索引 主键索引 普通索引 唯一索引以及我们这里将要介绍的全文索引 FUNLLTEXT INDE
  • 多维时序

    多维时序 MATLAB实现CNN BiLSTM Attention多变量时间序列预测 目录 多维时序 MATLAB实现CNN BiLSTM Attention多变量时间序列预测 预测效果 基本介绍 模型描述 程序设计 参考资料 预测效果 基