天天看点

【回归预测-LSTM预测】基于布谷鸟算法优化LSTM实现数据回归预测含Matlab代码

1 内容介绍

一种基于布谷鸟搜索算法优化LSTM的瓦斯浓度预测方法和系统。该方法包括:对获取的煤矿井下瓦斯浓度数据进行处理,得到标准化瓦斯浓度数据;确定预先构建的LSTM预测模型的优化参数组合以及所述LSTM预测模型的准确性评价指标;基于布谷鸟搜索算法,根据所述LSTM预测模型的准确性评价指标和所述LSTM预测模型的优化参数组合,构建CS‑LSTM预测模型;根据所述煤矿井下的瓦斯浓度监测数据,对所述CS‑LSTM预测模型进行准确性评价。籍此,以通过优化完成的CS‑LSTM预测模型对煤矿瓦斯浓度进行预测,提高煤矿瓦斯浓度预测的精确性,指导煤矿安全生产。

2 仿真代码

function [ result ] = func_fitness( pop )

global inputn outputn shuru_num shuchu_num

tic

pop(1)=round(pop(1));

layers = [ ...

    sequenceInputLayer(shuru_num)

    lstmLayer(pop(1))

    fullyConnectedLayer(shuchu_num)

    regressionLayer];

options = trainingOptions('adam', ...  % 梯度下降

    'MaxEpochs',50, ...                % 最大迭代次数

     'GradientThreshold',1, ...         % 梯度阈值 

    'InitialLearnRate',pop(2));

% 划分训练集=训练集中选取80%进行训练,20%进行训练测试

n = randperm(size(inputn,2));%随机选取

xun_n = round(size(inputn,2)*0.8);

xunx = inputn(:,n(1:xun_n));

xuny = outputn(:,n(1:xun_n));  

cex = inputn(:,n((xun_n+1):end));

cey = outputn(:,n((xun_n+1):end)); 

% 训练LSTM

net = trainNetwork(xunx,xuny,layers,options);

% 预测

net = resetState(net);% 网络的更新状态可能对分类产生了负面影响。重置网络状态并再次预测序列。

[~,Ytrain]= predictAndUpdateState(net,cex);

% cg = mse(Ytrain,cey);

error = Ytrain-cey;

num=length(cey);

cg=sum(error.*error)/num;

 toc

disp('-------------------------')

result = cg;

end

3 运行结果

【回归预测-LSTM预测】基于布谷鸟算法优化LSTM实现数据回归预测含Matlab代码
【回归预测-LSTM预测】基于布谷鸟算法优化LSTM实现数据回归预测含Matlab代码
【回归预测-LSTM预测】基于布谷鸟算法优化LSTM实现数据回归预测含Matlab代码

​4 参考文献

[1]李全贵, 栗小雨, 梁运培,等. 基于布谷鸟搜索算法优化LSTM的瓦斯浓度预测方法和系统:. 

[2]张伟豪. 基于长短期记忆神经网络的股票时间序列预测[J]. 信息与电脑, 2022, 34(9):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

继续阅读