基于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('负荷值')

训练进度:

预测结果:

预测误差:

相关推荐
B站计算机毕业设计超人32 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条36 分钟前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客41 分钟前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon44 分钟前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客5201 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神1 小时前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
咸鱼桨2 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派
强哥之神2 小时前
Nexa AI发布OmniAudio-2.6B:一款快速的音频语言模型,专为边缘部署设计
人工智能·深度学习·机器学习·语言模型·自然语言处理·音视频·openai
yusaisai大鱼2 小时前
tensorflow_probability与tensorflow版本依赖关系
人工智能·python·tensorflow