当前位置: 首页 > news >正文

基于LSTM-Adaboost的电力负荷预测的MATLAB程序

关注“电气仔推送”获得资料(专享优惠)

主要内容:

LSTM-AdaBoost负荷预测模型先通过 AdaBoost集成算法串行训练多个基学习器并计算每个基学习 器的权重系数,接着将各个基学习器的预测结果进行线性组合,生成最终的预测结果。代码中的LSTM可以替换为任意的机器学习算法。

部分程序:

%% 数据归一化
[inputn,inputps]=mapminmax(input_train,0,1);
[outputn,outputps]=mapminmax(output_train);
inputn_test=mapminmax('apply',input_test,inputps);
%% 获取输入层节点、输出层节点个数
inputnum=size(input_train,1);
outputnum=size(output_train,1);
disp('/')
disp('LSTM神经网络结构...')
disp(['输入层的节点数为:',num2str(inputnum)])
disp(['输出层的节点数为:',num2str(outputnum)])

numFeatures = inputnum;   %特征为一维
numResponses = outputnum;  %输出也是一维
numHiddenUnits1 = 25;   %创建LSTM回归网络,指定LSTM层的隐含单元个数。可调
layers = [ ...
    sequenceInputLayer(numFeatures)    %输入层
    lstmLayer(numHiddenUnits1, 'OutputMode', 'sequence')
    fullyConnectedLayer(numResponses)    %为全连接层,是输出的维数。
    regressionLayer];      %其计算回归问题的半均方误差模块 。即说明这不是在进行分类问题。
 
%指定训练选项,求解器设置为adam, 1000轮训练。
%梯度阈值设置为 1。指定初始学习率 0.01,在 125 轮训练后通过乘以因子 0.2 来降低学习率。
options = trainingOptions('adam', ...
    'MaxEpochs',1000, ...
    'GradientThreshold', 1, ...
    'InitialLearnRate',0.01, ...      
    'LearnRateSchedule','piecewise', ...%每当经过一定数量的时期时,学习率就会乘以一个系数。
    'LearnRateDropFactor', 0.01, ...
    'LearnRateDropPeriod',600, ...      %乘法之间的纪元数由" LearnRateDropPeriod"控制。可调
    'Verbose',0,  ...  %如果将其设置为true,则有关训练进度的信息将被打印到命令窗口中。默认值为true。
    'Plots','training-progress');    %构建曲线图 将'training-progress'替换为none
net0 = trainNetwork(inputn,outputn,layers,options); 
an0 = predict(net0,inputn_test);  
%预测结果反归一化与误差计算
test_simu0=mapminmax('reverse',an0,outputps); %把仿真得到的数据还原为原始的数量级
%误差指标
error0 = output_test - test_simu0;
mse0=mse(output_test,test_simu0)
%% 标准LSTM神经网络作图
figure
plot(output_test,'b-','markerfacecolor',[0.5,0.5,0.9],'MarkerSize',6)
hold on
plot(test_simu0,'r--','MarkerSize',6)
title(['mse误差:',num2str(mse0)])
legend('真实y','预测的y')
xlabel('样本数')
ylabel('负荷值')
 

训练进度:

预测结果:

预测误差:

http://www.lryc.cn/news/188602.html

相关文章:

  • GLTF纹理贴图工具让模型更逼真
  • HttpServletResponse对象
  • 在SSL中进行交叉熵学习的步骤
  • 10月TIOBE榜Java跌出前三!要不我转回C#吧
  • 优盘中毒了怎么办?资料如何恢复
  • 如何查看端口占用(windows,linux,mac)
  • Photoshop与Web技术完美融合,Web版Photoshop已正式登场
  • 易点易动:提升企业固定资产管理效率的完美解决方案
  • SRE实战:如何低成本推进风险治理?稳定性与架构优化的3个策略
  • APK大小缩小65%,内存减少70%:如何优化Android App
  • 传统工厂如何搭建蒸汽流量远程无线抄表系统?
  • 睿趣科技:抖音店铺怎么取名受欢迎
  • 面试经典 150 题 22 —(数组 / 字符串)— 28. 找出字符串中第一个匹配项的下标
  • 儿童产品亚马逊CPC认证审核不通过的原因解析
  • 项目_数据可视化| 折线图.散点图.随机漫步
  • Android 项目增加 res配置
  • MySQL数据库的MVCC详解
  • AI:10-基于TensorFlow的玉米病害识别
  • vue3前端开发系列 - electron开发桌面程序(2023-10月最新版)
  • 前端uniapp生成海报并保存相册
  • 0基础学习VR全景平台篇 第104篇:720全景后期软件安装
  • CMakeLists编译前拷贝文件或目录
  • mysql面试题35:MySQL有关权限的表有哪些?
  • ES6:什么是Symbol_
  • E. Li Hua and Array
  • 【项目】在线oj
  • 第十章-输入输出系统
  • TensorFlow学习:使用官方模型进行图像分类、使用自己的数据对模型进行微调
  • Matlab地理信息绘图—研究区域绘制
  • [CSAWQual 2019]Web_Unagi - 文件上传+XXE注入(XML编码绕过)