分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测

目录

  • 分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
    • 预测效果
    • 基本介绍
    • 模型描述
    • 程序设计
    • 学习总结
    • 参考资料

预测效果





基本介绍

本次运行测试环境MATLAB2020b
总体而言,CNN用作特征(融合)提取,然后将输出的feature映射为序列向量输入到LSTM当中。

模型描述

  • 长短期记忆神经网络(LSTM)是一种特殊循环神经网络(RNN),在RNN的基础上引入了门控单元系统,采用输入门、遗忘门和输出门对信息进行选择性控制,适当遗忘历史信息并依据新信息更新细胞状态。

  • CNN模型对输入数据进行逐层卷积和池化操作,主要由输入层、卷积层、池化层、全连接层和输出层组成。
  • 与LSTM模型的构建类似,也需要将数据生成为堆叠数据类型,同时还在输入矩阵中添加了各变量的变动率作为额外的输入向量。
  • 在数据集选取方面,本模型数据集选取思路与LSTM模型基本保持一致。但由于变动率特征的存在,原始时间序列的第一个样本将缺少变动率的特征。考虑到异常数据在全体中所占比例较小,故选择直接将原始时间序列的第一个样本剔除,从而保证特征的完备性。
  • 考虑到CNN模型在预测系统中起到的作用主要是捕捉交叉特征,故引入膨胀卷积这一特殊的卷积模式,并使用残差学习和瓶颈方法来规避深化卷积神经网络带来的梯度消失问题,将原始特征直接作为全连接层的一部分特征加入到模型之中,以防止过拟合和退化问题。
  • 可以将货币价格图像与同一数据的价格时间序列数据同时训练,从而使两个模型互补。针对LSTM-CNN结构的构建方法, 提出了联合RMSE损失的LSTM-CNN模型。其构建过程为先分别建立CNN模型与LSTM模型,利用损失函数计算各模型的损失值,再按照一定比例联合两个模型的损失值使总RMSE损失尽可能小且预测精度较高。本文采取类似的构建方法,同样将CNN-LSTM模型的构建过程分三步进行。
  • 第一阶段采用CNN模型架构,采用与上文单一CNN模型相同的架构;第二步建立LSTM模型,同样采用与上文LSTM模型相同的架构;而在第三步,本文采取按串联合两个模型预测准确度的方法。
  • 利用既有数据的白噪检验P值作为CNN-LSTM模型预测的置信水平,并通过公式计算混合模型的预测数值。

程序设计

  • 完整源码和数据下载:MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
%% CNNLSTM训练选项
% 批处理样本
miniBatchSize =10;
% 最大迭代次数
MaxEpochs = 100;
% 学习率
learningrate = 0.005;
% 一些参数调整
if gpuDeviceCount>0mydevice = 'gpu';
elsemydevice = 'cpu';
endoptions = trainingOptions( 'adam', ...'MaxEpochs',100, ...'MiniBatchSize',miniBatchSize,...'GradientThreshold',1, ...'InitialLearnRate',learningrate, ...'LearnRateSchedule','piecewise', ...'LearnRateDropPeriod',20, ...'LearnRateDropFactor',0.8, ...'L2Regularization',1e-3,...'Verbose',false, ...'ExecutionEnvironment',mydevice,...'Plots','training-progress');

学习总结

通过将两个模型进行加权得到CNN-LSTM多特征分类预测模型,其预测效果均优于两个单一模型,有效融合了LSTM提取时序特征的优点和CNN提取深层特征的优点。

参考资料

[1] 郭思涵. 基于改进循环神经网络的比特币价格预测及交易策略研究[D]: [硕士学位论文]. 上海: 上海师范大学, 2021.
[2] 张宁, 方靖雯, 赵雨宣. 基于LSTM混合模型的比特币价格预测[J]. 计算机科学, 2021, 48(S2): 39-45.
[3] 曹超凡, 罗泽南, 谢佳鑫, 李路. MDT-CNN-LSTM模型的股价预测研究[J]. 计算机工程与应用, 2022, 58(5): 280-286.

分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测相关推荐

  1. 回归预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络多输入单输出

    回归预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多输入单输出 目录 回归预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多输入单输出 基本介绍 模型背景 C ...

  2. 理论——RNN(循环神经网络)与LSTM(长短期记忆神经网络)

    这里写目录标题 RNN 背景 结构 应用 梯度消失.爆炸 LSTM 长期依赖问题 LSTM网络 结构 RNN 背景 人类的思考具有连续性,我们常联系过去的经验来理解现在.比如阅读时我们常提及的&quo ...

  3. 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络)

    时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM长短期记忆神经网络) 目录 时序预测 | MATLAB实现基于EMD-LSTM时间序列预测(EMD分解结合LSTM ...

  4. 分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测

    分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测 目录 分类预测 | MATLAB实现WOA-CNN-LSTM鲸鱼算法优化卷积长短期记忆网络数据分类预测 ...

  5. 分类预测 | MATLAB实现CNN卷积神经网络数据分类预测

    分类预测 | MATLAB实现CNN卷积神经网络数据分类预测 目录 分类预测 | MATLAB实现CNN卷积神经网络数据分类预测 基本介绍 模型设计 学习总结 参考资料 基本介绍 使用卷积网络的潜在好 ...

  6. 分类预测 | MATLAB实现CNN卷积神经网络多特征分类预测

    分类预测 | MATLAB实现CNN卷积神经网络多特征分类预测 目录 分类预测 | MATLAB实现CNN卷积神经网络多特征分类预测 分类效果 基本介绍 程序设计 参考资料 致谢 分类效果 基本介绍 ...

  7. 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测

    目录 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测 预测效果 程序设计 案例1 案例2 参考资料 时序预测 | MATLAB实现LSTM长短期记忆神经网络时间序列预测 预测效果 ...

  8. 时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测

    时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现基于Adam算法优化LSTM长短期记忆神经网络时间序列预测 效果一览 基本 ...

  9. 分类预测 | MATLAB实现1-DCNN一维卷积神经网络分类预测

    分类预测 | MATLAB实现1-DCNN一维卷积神经网络分类预测 目录 分类预测 | MATLAB实现1-DCNN一维卷积神经网络分类预测 基本介绍 程序设计 学习总结 参考资料 基本介绍 使用卷积 ...

最新文章

  1. Java实现从Html文本中提取纯文本
  2. python中一个汉字是几个字符_Python中每次处理一个字符的5种方法
  3. 计算机基础及wps office应用_自考本科计算机应用基础考试大纲
  4. 【渝粤题库】广东开放大学 民事诉讼法学 形成性考核
  5. 1045-Access denied for user 'root'@'localhost'(using password:YES)
  6. 为什么HashMap会产生死循环?
  7. Python批量导入图片生成PowerPoint 2007+文件
  8. L1-060 心理阴影面积 (5 分)-PAT 团体程序设计天梯赛 GPLT
  9. Phoenix+Hbase二级索引
  10. 见过这么有才的笑话吗?
  11. C语言:判断对错(简化版)
  12. Unity——Animation
  13. java 人民币转换,java人民币大小写转换方法
  14. python出现syntaxerror_Python SyntaxError语法错误原因及解决
  15. python打卡记录去重_Pandas 数据筛选,去重结合group by
  16. 2021年最新微博移动版网页链接自动跳转pc版网页链接软件【私信版】
  17. 误删的文件怎么寻回?
  18. Kafka-Steam Branch功能 对数据进行切分Steam,发送到指定的Topic
  19. 这5个显示器选购技巧,把显示器讲明白了
  20. 跨境电商选品策略和思路—扬帆牧哲

热门文章

  1. MTK MT6739P 项目克隆脚本
  2. java接收流文件并返回数据
  3. 用arjs和aframe打造太阳系-开篇
  4. 4个步骤手把手教你搞定文献综述(literature review) - 易智编译EaseEditing
  5. Direct3D体系结构-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(3)
  6. C/C++文件夹 的操作
  7. linux安装 openssl,Linux安装最新的OpenSSL版本
  8. 其实你也可以做出一个抖音(文末实战项目分享)
  9. Python自学记录——返回函数、匿名函数、装饰器与偏函数
  10. 什么东西改善睡眠,助眠好物分享