负荷预测示例——BP神经网络

一.课题背景:

以北欧某地区用户负荷预测作为课题,共随机抽取了300个用户为1年的数据,用户类型包括居民用户和商业用户,其中以居民用户为主,以300个用户的总负荷为预测目标,进行日前24小时的预测,随机选取了一年中36天的数据作为测试集,其他数据为训练集。
思路一
可以通过24小时日负荷曲线,对用户进行聚类,然后在分别对每类用户的用电总量进行预测,叠加后获得总负荷的预测值。
思路二
可以直接对总负荷进行预测
训练集节选
load0~load299(I:KV),共计7897行 image.png 测试集节选
image.png

二.构建INPUT、OUTPUT

我们选择A:E列为输入(INPUT)
why:在测试集上的要求可以逆推
输出选择思路二作为OUTPUT,这样简便:

三.构建BP神经网络

3.1 使用xlsread读取文件,并命名
3.2 做好矩阵的转置
3.3 搭建网络BP
3.4 利用训练好的网络进行对测试集的进行预测

示例demo:

%%
%清空环境变量
clc
clear
close all
%%

load train.mat
input_datas = (input_datas)';
output_datas = (output_datas)';
%%
%构建网络
net = newff(input_datas,output_datas, [10], { 'logsig' 'purelin' } , 'traingdx' , 'learngdm') ;%输入数据为 特征数*数据个数,输出为 类别向量*数据个数
net.trainParam.showWindow = 0;% 不显示窗口
net.trainparam.show = 10 ;%每间隔50步显示一次训练结果
net.trainparam.epochs = 200;%允许最大训练步数200步
net.trainparam.goal = 0.0001 ;%训练目标最小误差0.0001
net.trainParam.lr = 0.0005 ;%学习速率0.0005
%% 开始训练
net = train( net,input_datas,output_datas);
%%开始测试
test = xlsread('test.xlsx');
input_test = test';
predict_output = sim( net,input_test)' ;
复制代码

image.png

猜你喜欢

转载自juejin.im/post/7079969139409846309