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 运行结果
4 参考文献
[1]李全贵, 栗小雨, 梁运培,等. 基于布谷鸟搜索算法优化LSTM的瓦斯浓度预测方法和系统:.
[2]张伟豪. 基于长短期记忆神经网络的股票时间序列预测[J]. 信息与电脑, 2022, 34(9):5.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。