IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 时序预测 | MATLAB实现贝叶斯优化CNN-LSTM时间序列预测(股票价格预测) -> 正文阅读

[人工智能]时序预测 | MATLAB实现贝叶斯优化CNN-LSTM时间序列预测(股票价格预测)

时序预测 | MATLAB实现贝叶斯优化CNN-LSTM时间序列预测(股票价格预测)

效果一览

1
2
3
4
5
6

7

基本介绍

MATLAB实现贝叶斯优化CNN-LSTM(卷积长短期记忆神经网络)时间序列预测,Bayes-CNN-LSTM模型股票价格预测

模型搭建

  • CNN-LSTM模型结合了CNN和LSTM的优点,CNN-LSTM网络模型如图1所示,本文使用的CNN-LSTM模型的第一部分是由卷积层和最大值组成的CNN部分池化层,对原始数据进行预处理并输入CNN卷积层,利用卷积核自适应提取生命特征,卷积层将遍历输入信息,将卷积核权重与局部序列进行卷积运算体管信息得到初步的特征矩阵,比原始序列数据(矩阵)更具表现力。
  • 本文使用的池化层是最大池化层,池化操作对提取的特征进行数据降维,避免模型过拟合,保留主要特征。最大池化层将前一个卷积层得到的特征矩阵作为输入,在这个矩阵上滑动一个池化窗口,在每一次滑动中取池化窗口的最大值,输出一个更具表现力的特征矩阵。
  • 池化后,连接一个 LSTM 层,提取相关向量由CNN构造成一个长期的时间序列作为LSTM的输入数据。卷积层将卷积层的数据展平(Flatten),模型中加入Flatten,将(height,width,channel)的数据压缩成一个长高宽通道的一维数组,然后我们可以添加直接密集层。
  • 对卷积池化数据压缩特征操作,多个卷积特征提取框架提取的特征融合或从输出层融合,全连接层聚合学习到的特征,激活函数使用Relu。
  • Relu函数具有单边抑制作用,可以产生更多的稀疏性,避免梯度消失。 在最终输出之前,将 Dropout 率设置为 0.2,以避免模型过拟合。
  • 通常,在模型训练过程中需要对超参数进行优化,为模型选择一组最优的超参数,以提高预测的性能和有效性,例如 CNN-LSTM 模型中的batch_size、full_num、lstm_num、num_filter。 凭经验设置超参数会使最终确定的模型超参数组合不一定是最优的,这会影响模型网络的拟合程度及其对测试数据的泛化能力。

8

  • 伪代码
    9
  • 在对 CNN-LSTM 使用贝叶斯优化时,不同的参数组合的 CNN-LSTM 作为自变量,平均误差(MAE)作为贝叶斯框架的输出y,具体步骤如下:
    10
  • 通过调整优化算法调整模型参数,学习重复率和贝叶斯优化超参数来调整模型参数。

程序设计

  • 完整程序私信博主。
%% 搭建CNN模型
rng('default');
inputSize = 1;
numEpochs = 200; 
batchSize = 16;
nTraining = length(label);
%  CONV -> ReLU -> MAXPOOL -> FC -> DROPOUT -> FC -> SOFTMAX 
layers = [ ...
    sequenceInputLayer(inputSize)
    convolution1dLayer(5,100,'Padding',2,'Stride', 1) % 卷积层 1
    batchNormalizationLayer;
    reluLayer();  % ReLU 层 1
    convolution1dLayer(5,70,'Padding',2,'Stride', 1);  % 卷积层 2
    batchNormalizationLayer;
    maxPooling1dLayer(1,'Stride',1); % 最大池化 池化层 1
    convolution1dLayer(3,50,'Padding',1,'Stride', 1);  % 卷积层 3
    reluLayer(); % ReLU 层 3
    maxPooling1dLayer(1,'Stride',1); 
    convolution1dLayer(3,40,'Padding',1,'Stride', 1);  % 卷积层 4
    reluLayer(); % ReLU 层 2
    maxPooling1dLayer(1,'Stride',1); % 最大池化 池化层 1
    fullyConnectedLayer(1,'Name','fc1')
    
    regressionLayer]

options = trainingOptions('adam',... 
    'InitialLearnRate',1e-3,...% 学习率
    'MiniBatchSize', batchSize, ...
    'MaxEpochs',numEpochs);

[net,info1] = trainNetwork(input_train,output_train,layers,options);
 
%% 提取特征
fLayer = 'fc1';
trainingFeatures = activations(net, input_train, fLayer, ...
             'MiniBatchSize', 16, 'OutputAs', 'channels');
trainingFeatures=cell2mat(trainingFeatures);

for i=1:length(trainingFeatures)
    TF{i}=double(trainingFeatures(:,i));
end

%% 搭建LSTM模型
inputSize = 1;
numHiddenUnits = 100;
layers = [ ...
    sequenceInputLayer(inputSize)
    lstmLayer(numHiddenUnits,'OutputMode','last')
    lstmLayer(numHiddenUnits-30)
    lstmLayer(numHiddenUnits-60)
    fullyConnectedLayer(1)
    regressionLayer]

options = trainingOptions('adam',... 
    'InitialLearnRate',1e-3,...% 学习率
    'MiniBatchSize', 8, ...
    'MaxEpochs',50, ...
    'Plots','training-progress');

[net1,info1] = trainNetwork(TF,output_train',layers,options);
%% 测试集
% 测试集提取特征
testingFeatures = activations(net, input_test, fLayer, ...
             'MiniBatchSize', 8, 'OutputAs', 'channels');
testingFeatures=cell2mat(testingFeatures);

for i=1:length(testingFeatures)
    TFT{i}=double(testingFeatures(:,i));
end

YPred = predict(net1,TFT);
YPred=mapminmax('reverse',YPred,yopt);

学习总结

贝叶斯优化可以充分利用历史调优信息,减少不必要的目标函数评估,并改进参数搜索效率。在模型训练过程中,使用ADAM优化算法进一步优化网络权重参数,使得预测结果更准确。提出的基于超参数的优化搜索方案结合股票预测应采用CNN-LSTM模型,选用的模型具有更高的预测精度和泛化能力。

参考文献

[1] https://blog.csdn.net/kjm13182345320/article/details/127261869?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/127261869?spm=1001.2014.3001.5501
[3] G. W. Jiao, and C. Hu, G: Gun barrel life evaluation and prediction, J. Ordnance Equip.Eng. 39, 66 (2018).
[4] M. T. Li et al., Barrel life prediction method based on inner surface melting layer theory,J.Gun Launch Control, 5–8 (2009).

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:33:42  更:2022-10-17 12:35:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 2:49:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计