基于北方苍鹰算法优化LSTM(NGO-LSTM)研究(Matlab ...
个人主页:研学社的博客欢迎来到本博客
博主优势: 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
r/>
> 座右铭:行百里者,半于九十。
<br/> 本文目录如下: r/> 目录
/>1 概述
2 运行结果
3 参考文献
4 Matlab代码、数据
1 概述
苍鹰是森林中肉食性猛禽。视觉敏锐,善于飞翔。白天活动。性甚机警,亦善隐藏。通常单独活动,叫声尖锐洪亮。在空中翱翔时两翅水平伸直,或稍稍向上抬起,偶尔亦伴随着两翅的煽动,但除迁徙期间外,很少在空中翱翔,多隐蔽在森林中树枝间窥视猎物,飞行快而灵活,能利用短圆的翅膀和长的尾羽来调节速度和改变方向、在林中或上或下,或高或低穿行于树丛问,并能加还飞行速度在树林中追捕猎物,有时也在林缘开阔地上空飞行或沿直线滑翔,窥视地面动物活动,一旦发现森林中的鼠类、野兔、雉类、榛鸡、鸠鸽类和其他中小形鸟类的猎物,则迅速俯冲,呈直线追击,用利爪抓捕猎获物。它的体重虽然比等中型猛禽要轻五分之一左右,但速度要快3倍以上,伸出爪子打击猎物时的速度为每秒钟22.5米,所以捕食的特点是猛、准、狠、快,具有较大的杀伤力,凡是力所能及的动物,都要猛扑上去,用一只脚上的利爪刺穿其胸膛,再用另一只脚上的利爪将其腹部剖开,先吃掉鲜嫩的心、肝、肺等内脏部分,再将鲜血淋漓的尸体带回栖息的树上撕裂后啄食。
LSTM是RNN的一种变种,可以有效地解决RNN的梯度爆炸或者消失问题。,如图一所示为LSTM的结构,LSTM网络由一个个的LSTM单元连接而成。
本文基于北方苍鹰算法优化LSTM(NGO-LSTM)研究,并用Matlab代码实现之。
2 运行结果
部分代码:
function= assessment_criteria(test_simu,data_test)
error_test = test_simu-data_test; % 测试集绝对误差
pererror_test=error_test./data_test; % 相对误差
MAPE_test = mean(abs(pererror_test))*100; % 平均绝对百分误差(平均相对误差)
RMSE_test= sqrt(mean((error_test).^2)); % 均方根误差 RMSE can provide a good measure of model performance for high flows
NRMSE_test=sqrt(sum((error_test).^2))./sqrt(sum((data_test-mean(data_test)).^2)); % 测试集绝对误差
MSE_test=mse(error_test); %均方误差
R2_test = 1 - (sum(error_test.^2) / sum((test_simu - mean(data_test)).^2));% 确定性系数(R2-R-Square)R2<1,R2越接近1预测结果越优
NSE_test=1-sum(power(error_test,2))/sum(power(data_test-mean(data_test),2)); % 纳什系数
CA_test=(MAPE_test/100 + NRMSE_test +(1-NSE_test))/3;% combined accuracy
% SSE_test=sum(error_test.^2); %误差平方和SSE_test为
MAE_test=mean(abs(error_test)); %平均绝对误差
r_test=corrcoef(data_test,test_simu); %corrcoef计算相关系数矩阵,包括自相关和互相关系数
R1_test=r_test(1,2);
% accuracy_test=length(find(abs(pererror_test)<0.3))/size(data_test,1)*100;%正确率,相对误差小于20%
accuracy_test_1=length(find(abs(pererror_test)<0.05))/size(data_test,1)*100;%正确率,相对误差小于20%
accuracy_test_2=length(find(abs(pererror_test)<0.1))/size(data_test,1)*100;%正确率,相对误差小于20%
accuracy_test_3=length(find(abs(pererror_test)<0.2))/size(data_test,1)*100;%正确率,相对误差小于20%
accuracy_test_4=length(find(abs(pererror_test)<0.3))/size(data_test,1)*100;%正确率,相对误差小于20%
accuracy_test_5=length(find(abs(pererror_test)<0.4))/size(data_test,1)*100;%正确率,相对误差小于20%
accuracy_test_6=length(find(abs(pererror_test)<0.5))/size(data_test,1)*100;%正确率,相对误差小于20%
3 参考文献
部分理论来源于网络,如有侵权请联系删除。
满建峰,侯磊,杨凯,刘珈铨,张鑫儒,伍星光,贺思宸.基于PSO-LSTM混合模型的天然气管道多用气节点负荷预测研究.油气与新能源,2022,34(06):91-100.
4 Matlab代码、数据
页:
[1]