当前位置:网站首页>分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
2022-08-09 10:03:00 【机器学习之心】
分类预测 | 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模型预测的置信水平,并通过公式计算混合模型的预测数值。
程序设计
- 完整源码私信博主
%% CNNLSTM训练选项
% 批处理样本
miniBatchSize =10;
% 最大迭代次数
MaxEpochs = 100;
% 学习率
learningrate = 0.005;
% 一些参数调整
if gpuDeviceCount>0
mydevice = 'gpu';
else
mydevice = 'cpu';
end
options = 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.
[4] 杨丽, 吴雨茜, 王俊丽, 刘义理. 循环神经网络研究综述[J]. 计算机应用, 2018, 38(S2): 1-6+26.
[5] 徐剑波. 基于数据挖掘技术的股票技术指标分析预测系统的设计与实现[D]: [硕士学位论文]. 成都: 电子科技大学, 2012.
[6] 石赛男. 股票技术分析中MACD指标的有效性检验[D]: [硕士学位论文]. 成都: 西南财经大学, 2011.
[7] 周飞燕, 金林鹏, 董军. 卷积神经网络研究综述[J]. 计算机学报, 2017, 40(6): 1229-1251.
[8] 李彦冬, 郝宗波, 雷航. 卷积神经网络研究综述[J]. 计算机应用, 2016, 36(9): 2508-2515+2565.
[9] 严春满, 王铖. 卷积神经网络模型发展及应用[J]. 计算机科学与探索, 2021, 15(1): 27-46.
[10] 卢宏涛, 张秦川. 深度卷积神经网络在计算机视觉中的应用研究综述[J]. 数据采集与处理, 2016, 31(1): 1-17.
[11] 方义秋, 卢壮, 葛君伟. 联合RMSE损失LSTM-CNN模型的股价预测[J]. 计算机工程与应用, 2022, 58(9): 294-302.
边栏推荐
猜你喜欢
随机推荐
Go-指针的那些事
ArrayList和LinkedList
Go-接口的那些事
抛出一个问题? Mysql环境下进行Count操作执行的时候速度很慢_需手动给主键添加索引---MySql优化001
mysql 修改密码和忘记密码操作
By asking where the variables are stored, the shepherd boy laughed and said to use pointers, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, the use of go lang type pointers (Poin
electron 应用开发优秀实践
IDEA见过就会爱上的超实用快捷键,一键十行!
3.List interface and implementation class
MySQL常用存储引擎,你不可错过的知识点!
tuple dictionary collection
批量修改Shapefile属性表的一种方法(使用gdal.jar)
Attentional Feature Fusion
MySQ事务控制语言-TCL,进来学习!
LPP code and its comments
LeetCode148:排序链表 归并排序,思路清晰,C语言练习看过来!
慕课网-简易扑克牌游戏 思路清晰 简易版
写一个通讯录小程序
7.FileFilter interface
MySQL索引、视图、设计三范式,通俗易懂,不可错过!