• 多维时序 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络的多变量时间序列预测


    多维时序 | MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络的多变量时间序列预测

    预测效果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    基本介绍

    MATLAB实现GWO-BiLSTM灰狼算法优化双向长短期记忆神经网络的多变量时间序列预测
    1.data为数据集,格式为excel,4个输入特征,1个输出特征,考虑历史特征的影响,多变量时间序列预测;
    2.GWO-BiLSTMNTS.m为主程序文件,运行即可;
    3.命令窗口输出R2、MAE和MBE;
    注意程序和数据放在一个文件夹,运行环境为Matlab2021b及以上。

    注意程序和数据放在一个文件夹,运行环境为Matlab2021b及以上。

    程序设计

     
            
            dropoutLayer(0.25,'Name','drop2')
            % 全连接层
            fullyConnectedLayer(numResponses,'Name','fc')
            regressionLayer('Name','output')    ];
    
        layers = layerGraph(layers);
        layers = connectLayers(layers,'fold/miniBatchSize','unfold/miniBatchSize');
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %% 训练选项
    if gpuDeviceCount>0
        mydevice = 'gpu';
    else
        mydevice = 'cpu';
    end
        options = trainingOptions('adam', ...
            'MaxEpochs',MaxEpochs, ...
            'MiniBatchSize',MiniBatchSize, ...
            'GradientThreshold',1, ...
            'InitialLearnRate',learningrate, ...
            'LearnRateSchedule','piecewise', ...
            'LearnRateDropPeriod',56, ...
            'LearnRateDropFactor',0.25, ...
            'L2Regularization',1e-3,...
            'GradientDecayFactor',0.95,...
            'Verbose',false, ...
            'Shuffle',"every-epoch",...
            'ExecutionEnvironment',mydevice,...
            'Plots','training-progress');
    %% 模型训练
    rng(0);
    net = trainNetwork(XrTrain,YrTrain,layers,options);
    %-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    %% 测试数据预测
    % 测试集预测
    YPred = predict(net,XrTest,"ExecutionEnvironment",mydevice,"MiniBatchSize",numFeatures);
    YPred = YPred';
    % 数据反归一化
    YPred = sig.*YPred + mu;
    YTest = sig.*YTest + mu;
    ————————————————
    版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    参考资料

    [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

  • 相关阅读:
    Mysql临时表创建查询修改
    SQL高级用法
    【题解】Codeforces Round #798 (Div. 2)
    Python数据分析与机器学习47-维基百科词条EDA
    7.从句学习
    Java多线程-初阶1
    JavaScript | 1000个判断条件难道要写了1000个 if ? 一文教你如何实现分支优化
    时机成熟,DC 社区成长
    cx3588系统常见问题
    基于SSM的在线电影管理系统
  • 原文地址:https://blog.csdn.net/kjm13182345320/article/details/132720940