【LSTM时序预测】基于贝叶斯网络优化CNN-LSTM实现股票价格预测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

针对股票价格预测中深度学习算法参数优化效率低,预测准确率差等问题,在长短期记忆网络算法(LSTM)的基础上提出一种基于贝叶斯优化的CNN-LSTM算法.利用CNN提取特征,利用长短期记忆网络对股票数据进行时间序列预测,并运用贝叶斯优化算法对长短期记忆网络的超参数进行迭代优化.利用公开数据集对算法进行验证,结果表明,相较于其他算法,优化后的算法在优化参数,提高预测准确率方面有明显改善,在股票时间序列预测的实证性研究中表明,比传统BP模型在预测精度上提高12.81%.

⛄ 部分代码

%% ---------------------------- Local Functions ---------------------------

function data = loadData1(opt)

[chosenfile,chosendirectory] = uigetfile({'*.xlsx';'*.csv'},...

    'Select Excel time series Data sets','data.xlsx');

filePath = [chosendirectory chosenfile];

if filePath ~= 0

    data.DataFileName = chosenfile;

    data.CompleteData = readtable(filePath);

    if size(data.CompleteData,2)>1

        warning('Input data should be an excel file with only one column!');

        disp('Operation Failed... '); pause(.9);

        disp('Reloading data. ');     pause(.9);

        data.x = [];

        data.isDataRead = false;

        return;

    end

    data.seriesdataHeder = data.CompleteData.Properties.VariableNames(1,:);

    data.seriesdata = table2array(data.CompleteData(:,:));

    disp('Input data successfully read.');

    data.isDataRead = true;

    data.seriesdata = PreInput(data.seriesdata);

    

    figure('Name','InputData','NumberTitle','off');

    plot(data.seriesdata); grid minor;

    title({['Mean = ' num2str(mean(data.seriesdata)) ', STD = ' num2str(std(data.seriesdata)) ];});

    if strcmpi(opt.dataPreprocessMode,'None')

        data.x = data.seriesdata;

    elseif strcmpi(opt.dataPreprocessMode,'Data Normalization')

        data.x = DataNormalization(data.seriesdata);

        figure('Name','NormilizedInputData','NumberTitle','off');

        plot(data.x); grid minor;

        title({['Mean = ' num2str(mean(data.x)) ', STD = ' num2str(std(data.x)) ];});

    elseif strcmpi(opt.dataPreprocessMode,'Data Standardization')

        data.x = DataStandardization(data.seriesdata);

        figure('Name','NormilizedInputData','NumberTitle','off');

        plot(data.x); grid minor;

        title({['Mean = ' num2str(mean(data.x)) ', STD = ' num2str(std(data.x)) ];});

    end

    

else

    warning(['In order to train network, please load data.' ...

        'Input data should be an excel file with only one column!']);

    disp('Operation Cancel.');

    data.isDataRead = false;

end

end

⛄ 运行结果

⛄ 参考文献

[1]刘恒, 侯越. 贝叶斯神经网络在股票时间序列预测中的应用[J]. 计算机工程与应用, 2019, 55(12):6.

[2]张其霄, 董鹏, 王科文,等. 基于贝叶斯优化LSTM的发动机剩余寿命预测[J]. 火力与指挥控制, 2022(004):047.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值