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