【LSTM回归预测】基于改进遗传算法优化长短记忆网络GA-LSTM实现光伏数据多输入单输出预测附matlab代码

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

光伏发电受天气与地理环境影响,呈现出波动性和随机多干扰性,其输出功率容易随着外界因素变化而变化,因此预测发电输出功率对于优化光伏发电并网运行和减少不确定性的影响至关重要.本文提出一种基于遗传算法(GA)优化的长短记忆神经网络混合模型(GA-LSTM),首先LSTM模块提取时间特征和附近隐藏状态向量,同时通过GA优化LSTM训练网络的超参数权重与偏置值.在初期对历史数据进行归一化处理,然后对本文提出来的经GA优化后的LSTM混合神经网络(GA-LSTM)算法模型进行光伏功率预测实验.同时与CNN,LSTM两个单一神经网络模型以及未经GA优化-LSTM混合神经网络模型的预测性能进行比较.结果显示在平均绝对误差率(MAPE)指标下,本文提出的GA-LSTM算法模型比单一神经网络模型最好的结果减少了1.537%的误差本文的算法模型对光伏发电功率具有更好的预测性能.

1.1 遗传算法

1.2 LSTM模型

⛄ 部分代码

function [z_rmse,X,YPred]=Objfunction(x,lenchrom,ps_input,ps_output,numFeatures,numHiddenUnits,numResponses,XTrain,YTrain,test_N,XTest,YTest)

%% 目标函数

% 输入     x:二进制编码

%   lenchrom:各变量的二进制位数

% 输出     Y:目标值

%          X:十进制数

bound=[0.0001 0.1];   % 函数自变量的范围

%% 将binary数组转化成十进制数组

X=bin2decFun(x,lenchrom,bound);

%% 计算适应度-函数值

% Y=sin(4*pi*X(1))*X(1)+sin(20*pi*X(1))*X(1);

layers = [ ...

    sequenceInputLayer(numFeatures)

    lstmLayer(numHiddenUnits)

    fullyConnectedLayer(numResponses)

    regressionLayer];

%指定训练选项,求解器设置为adam, 250 轮训练。

%梯度阈值设置为 1。指定初始学习率 0.005,在 125 轮训练后通过乘以因子 0.2 来降低学习率。

options = trainingOptions('adam', ...

    'MaxEpochs',250, ...

    'GradientThreshold',2, ...

    'InitialLearnRate',X, ...

    'LearnRateSchedule','piecewise', ...

    'LearnRateDropPeriod',125, ...

    'LearnRateDropFactor',0.1, ...

    'Verbose',0);

%训练LSTM

net = trainNetwork(XTrain,YTrain,layers,options);%训练网络

net = resetState(net);

net = predictAndUpdateState(net,XTrain);%

YPred1 = [];

numTimeStepsTest =test_N;%步数

for mm = 1:numTimeStepsTest

    [net,YPred1(:,mm)] = predictAndUpdateState(net,XTest(:,mm),'ExecutionEnvironment','cpu');%%预测

end

mint=ps_output.xmin;

maxt=ps_output.xmax;

YPred=postmnmx(YPred1,mint,maxt)';%反归一化

for mm = 1:numTimeStepsTest

    if isempty(find(XTest(:,mm)==0))

  YPred(mm)=YPred(mm);

    else

        YPred(mm)=0;

    end

end

%% 评判指标

z_mse = mean((YPred-YTest').^2);%mse

z_mae = mean(abs(YPred-YTest'));%mae

z_r=1-sum((YPred-mean(YTest')).^2)/sum((YPred-YTest').^2);%r

z_rmse = sqrt(mean((YPred-YTest').^2));%均方差

⛄ 运行结果

⛄ 参考文献

[1] 王晨阳, 汪志勇, 段倩倩,等. 基于遗传算法优化卷积长短记忆混合神经网络模型的光伏发电功率预测[J]. 物理学报, 2020, 69(10):7.

[2] 费珊珊, 张忠林. 改进遗传算法优化GA-LSTM网络的时序预测模型.

[3] 邓惟绩, 肖辉, 李金泽,等. 基于改进长短期记忆网络和高斯过程回归的光伏功率预测方法[J]. 电器与能效管理技术, 2021.

⛳️ 代码获取关注我

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

matlab科研助手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值