基于神经网络的年径流预报分析。
-
网络学习样本的建立
某水库实测年径流量与因子特征值 :几个重要月份的降水量(单位:mm),年径流量为 (单位:)
这样,将这4个预报因子作为输入量,年径流量 y 为输出量,构成 4 个输入,1个输出的网络,将前19个实测数据作为训练样本集,后一个实测数据作为预测检验样本。
-
原始数据的预处理
可以看到这里的单位是不同的,在神经网络中,应首先对数据进行标准化处理,或者规格化处理。标准化公式已经很熟悉了,现在看规格化处理公式。
-
Source Code
clc,clear; a = load('jingliu.txt'); a = a'; % 规格化处理 p = a([1:4],[1:end-1]); [PN,PS1] = mapminmax(p); T = a(5,[1:end-1]); [TN,PS2] = mapminmax(T); % 训练RBF神经网络 net1 = newrb(PN,TN); % 预测,还原数据 x = a([1:4],end); xn = mapminmax('apply',x,PS1); yn1 = sim(net1,xn); y1 = mapminmax('reverse',yn1,PS2); % 预测的相对误差 delta1 = abs(a(5,20)-y1)/a(5,20); % 初始化 BP 神经网络,隐含层的神经元取为4个(经验) net2 = feedforwardnet(4); net2 = train(net2,PN,TN); % BP 神经网络预测,还原 yn2 = net2(xn); y2 = mapminmax('reverse',yn2,PS2);