灰色遗传神经网络模型对居民年需水量预测

作者:蒋白懿 牟天蔚 王玲萍
单位:沈阳建筑大学市政与环境学院
摘要:根据居民年生活用水的特点, 提出一种灰色遗传神经网络组合模型。该模型首先通过遗传算法 (GA) 对λ取值进行选优, 并运用灰色加权模型对年需水量进行一级预测, 后通过BP模型对年需水量进行二级预测。以A市S区年居民生活年需水量为例, 将20072013年生活年需水量作为原始数据并选择合适指标对2014年需水量进行预测。结果表明, 组合模型相比灰色神经网络模型精度提高0.84个百分点, 比GM (1, 1) 模型提高了3.08个百分点。
关键词:灰色加权模型 BP神经网络模型 遗传算法 生活年需水量

 

0 引言

   随着居民需水量的日益提高, 供水经济效益分析成为供水企业重点考虑的问题。需水量预测是城镇规划发展、水泵调度、造价预算等研究的前提工作。

   水量预测的代表性模型包括线性回归、指数平滑、灰色模型、神经网络等。应用最广泛的模型当属BP神经网络模型, BP模型是以影响因素作为自变量, 进行正向求解的多元非线性回归扩展模型, 并在回归的基础上增加反向调参功能。2002年袁一星等[1]以最高、最低气温及节假日因素为自变量, 通过BP神经网络模型对华北某城市的月供水量进行预测, 由预测结果可知, 在样本连续无错误的情况下, 相对误差均在5%以内, 具有较高的精度, 但对于大型城市而言, 各区域的温差较大, 固定的气温作为影响因素, 会对结果的准确性产生影响。2008年代进等[2]考虑经济活动、节假日、气候变化等因素通过BP神经网络模型成功解决了日用水量预测问题, 但该模型过于依赖训练数据, 对不同城市, 选取数据量大小难以把控, 若数据过多, 会出现过拟合现象, 数据过少, 则影响预测精度。2012年赵明等[3]应用SVR模型, 即支持回归向量机模型, 其通过拉格朗日对偶形成凸函数, 并进行优化求解。SVR降低了算法复杂度, 克服了BP模型精度与输入向量密切相关的问题, 提高了模型泛化性, 但要求数据量大, 在映射至高维度时, 核函数错误选择会对预测精度造成显著影响, 且运行速度相比BP模型降低。

   BP模型多考虑不同因素的影响, 但样本数据不足或数量过多都会影响预测的精度。为了克服其影响, 部分研究人员采用适用于小样本的模型, 如灰色模型。2012年甘月云等[4]通过灰色GM (1, 1) 模型, 基于年生活用水量的统计资料, 成功地对围场县城镇年生活用水量进行了预测。但因样本过小, 且无考虑人口、GDP等规划数据与水量之间的关系, 预测时间越长, 灰色区域越大, 精度越差, 仅未来一年的预测水量准确。2013年孙强等[5]为了克服灰色预测时间短的缺点, 利用灰色GM (1, N) 模型, 即多因素的灰色预测模型, 以西安市GDP、社会固定资产投资、人口、年降雨量等因素对年用水量进行了预测, 并与GM (1, 1) 对比, 提高了灰色预测的精度。

   灰色预测虽然精准度高, 易于检验, 但其不考虑系统内在机理, 在长时间预测时, 常常丢失精度。

   为了解决BP模型对样本要求高及灰色模型预测精度差的问题, 可将模型有效组合, 以避免各模型的缺点, 从而提高预测的精准度;2002年李斌等[6]利用结果加权的方式, 将灰色模型与神经网络组合, 需水量预测准确性有所提高。但组合的方式过于传统, 对大样本适应度仍然较差;2014年白云利[7]用LSSVR组合模型, 首先利用小波分解, 并对各分解项分别进行预测, 后加和求得日用水量。组合模型克服了SVR模型对局部细节特征变化表现不足的缺点, 提高了预测精度;2014年崔东文[8]将遗传算法 (GA) 引入BP模型中, 提出GA-BP城市需水预测模型, 对BP模型中的权值及偏置量进行了优化, 并对上海市年需水预测进行实例分析, 对比BP模型精度有所提高, 2016年李沆等[9]提出灰色马尔科夫年需水量预测模型, 改进长期预测适用性, 成功地对影响因素不明确的问题进行了系统分析。

   综上所述, 组合模型大致分为3种模式:

   (1) 如LSSVR, 首先通过小波或傅里叶级数对数据进行分解, 后通过预测模型对各分解项进行预测。

   (2) 如灰色马尔科夫模型, 通过多种模型进行预测, 后对每个结果分配一个权值并相加得到最终的结果。

   (3) 如GA-BP, 通过预测模型进行预测, 在预测的过程中, 利用优化模型调整参数。

   为了建立一个能够考虑内在机理且精准度较高的模型, 本文提出了一种不同于3种模式的组合模型———灰色遗传神经网络模型, 其通过分级模式对年居民生活需水量进行预测, 最终得出需水量的预测结果。

1 灰色遗传神经网络组合模型

   本文提出的灰色遗传神经网络组合模型是一种分级模型, 首先运用遗传算法求解权值的最优值, 并运用灰色加权模型对需水量进行一级预测。后通过一级预测的结果, 运用BP神经模型对居民年需水量进行二级预测, 通过两级预测后得到最终的预测结果。

1.1 灰色遗传算法一级预测

1.1.1 模型简介

   灰色遗传算法一级预测是GM (1, N, λ) 的扩展, 是以因变量X1 (0) 及自变量X2 (0) , …, Xn (0) 为基础数据, 通过一阶微分方程建立的模型[10], 见式 (1) 或式 (2) :

    

   式中Xi (0) ———第i个变量实际值的序列;

   n———年份, 年;

   ———第i个变量预测值的序列;

    

    

   ———n个自变量组成方程的解, 计算方法见式 (3) :

    

   式中X1 (0) (1) ———第1年居民年需水量实际值, m3;

   λ———权值, 取值范围为 (0, 1) ;

   Xt (1) (k) ———第t个自变量1~k年实际值的累加和, m3;

   ———第t个自变量1~k年实际值与k+1年预测值之和, 见式 (4) ;

   a、b———待定系数, 分别表示发展系数和灰色作用量;

   e———指数函数。

    

   , 参数矩阵, 计算方法为:, 矩阵B见式 (5) :

    

   式中———各自表示自变量t的实际值与预测值。

1.1.2 计算方法

   灰色遗传算法一级预测模型首先随机生成N组长度为l的二进制群体, 并通过式 (6) 将二进制转换为取值范围 (0, 1) 之间的十进制加权值λ。

    

   式中l———二进制编码的长度;

   U———λ的最小值, 取值为0;

   L———λ的最大值, 取值为1;

   bi———第i位的二进制编码。

   其次, 导入年需水量及其自变量因素的历史数据, 通过GM (1, 1) 算法[10], 对自变量因素进行预测, 并将预测的结果与实际值X合并, 得出一个新的自变量因素序列。例如:已知2010~2015年的人口的序列为:X=[X2010, X2011, X2012, X2013, X2014, X2015], 运用GM (1, 1) 算法预测, 得出2016年的人口数为X2016, 将X2016并入序列X中, 得出新的序列

   将序列及随机生成的N组加权值λ带入式 (1) ~式 (5) , 计算各组的需水量预测值, 并通过式 (7) 计算适应度函数F (λ) [11]:

    

   式中f (λ) ———预测值与实际值的误差平方和,

   Mmax———f (λ) 的最大值;

   ———第i年的年需水量预测值, m3

   X1 (0) (i) ———第i年的年需水量实际值, m3

   为了求出适应度函数的最大值, 本文采用J.Holland提出的有里程碑式的意义的遗传算法 (GA) 遗传算法对N组加权值λ进行更新。

   GA模式通过将所求适应度值带入式 (8) 、式 (9) 计算N个个体的复制概率Pi, 及累计概率Qi, 并通过轮盘赌注算法[12], 进行多轮选择, 保留累计概率区间[Qi, Qi+1]大的个体。

    

   式中F (λi) ———个体i的适应度;

   Pj———个体j被选取的概率。

   接下来根据文献[10]所述的方式, 对保留个体的二进制编码进行复制、交叉、倒位和突变操作产生新一代个体, 并重复计算适应度f (λ) , 直至达到最大迭代次数或适应度函数满足要求为止。

   最后, 输出适应度函数f (λ) 最大时所对应的λ, 带入式 (1) ~式 (5) 对年供水量进行一级预测, 并得出一级预测结果。

1.2 BP神经网络二级预测

1.2.1 模型简介

   在运用灰色加权模型对需水量进行一级预测后, 利用BP神经网络模型对需水量进行二级预测。

   BP神经网络是采用误差向前传播的网络[13], 是一个多输入, 多输出的非线性阈值器件。该模型包括输入层、隐含层, 及输出层, 且每层有多个神经元组成结构, 如图1所示。

图1 BP神经网络原理

   图1 BP神经网络原理

    

   神经元计算公式与线性回归相似, 如见式 (10) 为第i个神经元Oi的计算公式:

    

   式中Xij———第j个神经元并与第i个神经元连接值;

   ωij———与第i个神经元与第j的神经元连接权值;

   bi———第i个神经元的偏移量;

   ∑nj=1wijXij———神经元i的输入总和;

   f (.) ———神经元输出函数, 也叫激活函数, BP模型经常采用S型的对数, 正切函数和线性函数。

1.2.2 计算方法

   二级预测模型是将一级预测得出的居民年需水量预测值及自变量因素作为新的自变量, 导入BP神经网络模型进行再次预测, 进而增加预测精度的方式。首先确定神经网络的层数和每层的神经元的个数以及最大迭代次数I、学习速率η, 并随机生成连接各层神经元的权值ωij。其次, 导入历史自变量数据X2 (0) ~Xn (0) 及节1.1预测的需水量数据进行归一化处理, 并作为输入变量。带入网络后, 通过式 (10) 进行正向传播, 计算需水量预测值q^, 并计算预测值与原始数据真实值的误差平方和E, 见式 (11) , 根据输出值与实际值的误差, 应用梯度下降法反向传播, 对权值和偏移量进行修正, 如式 (12) 、式 (13) 所示, 并返回正向传播继续计算。

    

   式中h———为迭代的次数。

   若达到最大迭代次数I或E小于目标误差标准e, 则计算结束, 将权值及偏置量带入式 (10) 构建拟合模型, 否则通过式 (12) 、式 (13) 向前传播修正权值及偏移量, 并返回正向传播, 直至满足要求为止。

   最终, 输入GM (1, 1) 模型所预测自变量因素及一级预测所得出的水量至拟合的模型中, 对居民需水量的值进行二级预测。

1.3 模型计算程序

   利用MATLAB编程求解组合模型, 其计算框见图2。

1.4 注意事项

   应用灰色遗传算法与神经网络组合模型需要注意以下4点:

   (1) 需水量及自变量因素的历史数据准确, 不得有误。 (2) 模型只能对城市的成熟区预测, 不能对发展区进行预测。 (3) 模型只能对城市的长期需水量预测, 不能将其视作短期预测模型使用。 (4) 构建的一级预测模型精度较高情况下, 若二级预测后模型精度降低, 则仅对二级预测的模型进行修正, 不必重新建模。

2 实例分析

   年居民生活需水量是长期需水量, 与城市的发展及人口数量息息相关, 长期需水量的影响因素有:水的重复利用率、水费、工业生产总值、人均年收入、居民人均可支配收入、人口数量、人均GDP、城镇化率、管网运行状态等。

   各城市情况不同, 水量的变化趋势有所不同, S区是A市的成熟区, 规划完善, 城市的需水量的增长大部分仅与人口有关[14], 因此, 选取居民可支配收入、人口数量、人均GDP作为影响因素。此外, 随着人口的增长, 需要规划更多的地块来保证人口安置, 城镇化率也应选为影响因素。

图2 灰色遗传神经网络模型计算示意

   图2 灰色遗传神经网络模型计算示意

    

   该案例中, 以A市S区2007~2014年居民生活需水量为原始数据, 其中2007~2013年数据为训练数据, 以2014年数据为测试数据, 城市居民人均可支配收入、人口数量、人均GDP、城镇化率作为自变量, 居民年需水量数据作为因变量, 运用MAT-LAB2012b编程, 通过灰色遗传神经网络模型对A市S区的年居民生活年需水量进行预测。

   首先利用2007~2013年的历史数据, 通过GM (1, 1) 模型预测2014年年需水量的数据 (见表1) 及各自变量因素 (见表2) , 并通过遗传算法计算出的灰色加权模型所需的权系数λ为0.846 2。其次, 利用灰色加权模型进行一次预测。其中:

   将灰色加权模型所得到的需水量结果及历史自变量因素合并, 作为输入变量, 并进行归一化处理, 使自变量的范围在 (0, 1) 之间。通过BP模型进行二级预测, 其中隐含层数为2, 各层分别含有2、5个神经元, 激活函数采用正切函数。输出层激活函数设为纯线性函数。最终结果见表1。

   表1 一、二级预测结果   

表1 一、二级预测结果

   为了验证该模型的精确性, 通过多元线性回归模型与灰色遗传神经网络组合模型预测的需水量数据做对比 (见表3) , 可知灰色遗传神经网络组合模型比多元线性回归模型精度提高了6.75%。

   为了进一步地验证该模型的精确性, 通过灰色神经网络、GM (1, 1) 模型、灰色遗传神经网络组合模型预测的需水量数据对比并求出相对误差, 计算结果见表4。其中, 灰色神经网络模型是未使用遗传算法对权值系数λ进行选优的模型, 计算方式除将权值系数固定为0.5外, 其余与灰色遗传神经网络相同, 即λ为默认条件下的计算结果。

   表2 自变量因素   

表2 自变量因素

   表3 预测数据对比结果   

表3 预测数据对比结果

   表4 多模型结果对比   

表4 多模型结果对比

   由结果可知2014年居民需水量预测值为12 189 258.94m3, 相对误差为1.17%, 相比灰色神经网络模型精度提高0.84个百分点, , 比GM (1, 1) 提高了3.08个百分点GM (1, 1) 模型是过程中仅选择时间作为自变量, 对因变量需水量进行预测。

   为阐明该模型的精确性, 本文采用平均绝对误差 (MAE) 、平均绝对百分比误差 (MAPE) 、均方差比值与后验差检验精度来进行评价该模型[9], 结果见表5。

   表5 预测结果的评价   

表5 预测结果的评价

4 结论

   采用灰色遗传神经网络组合模型, 通过灰色遗传算法一级预测及BP神经网络二级预测得到最终的预测结果。对2014年A市S区的居民年需水量案例进行预测, 预测结果为12 189 258.94m3, 与实际值的相对误差为1.17%<10%, 比多元线性回归、灰色神经网络及GM (1, 1) 模型的误差有所降低, MAE、MAPE均小于其他两种模型, 且P=1、c<0.35, 预测结果具有有效的精确性。因此, 灰色遗传神经网络组合模型是一种年居民需水量精确预测的有效方式。

    

参考文献[1]袁一星, 兰宏娟, 赵洪宾, 等.城市用水量BP网络预测模型.哈尔滨建筑大学学报, 2002, 35 (3) :56~58

[2] 蒋白懿, 代进, 高金良.城市日用水量预测模型比较研究.沈阳建筑大学学报 (自然科学版) , 2008, 24 (2) :278~281

[3] Zhao M, Zhang Q, Huang Y, et al.Water consumption prediction by using SVM and information granular time series regression.Numerical Methods for Partial Differential Equations, 2012, 8 (2) :127~142

[4] 甘月云, 陈星, 付军, 等.基于灰色预测GM (1, 1) 模型的城镇生活需水量预测.水电能源科学, 2012 (9) :40~42

[5] 孙强, 王秋萍.融合粗糙集和灰色GM (1, N) 的西安市供水量预测.计算机工程与应用, 2013, 49 (11) :237~240

[6] 李斌, 许仕荣, 柏光明, 等.灰色——神经网络组合模型预测城市用水量.中国给水排水, 2002, 18 (2) :66~68

[7] 白云.时间序列特性驱动的供水量预测方法研究及应用:[学位论文].重庆:重庆大学, 2014

[8] 崔东文.基于相空间重构原理的遗传神经网络模型在城市需水预测中的应用.水利水电科技进展, 2014, 34 (1) :85~89

[9] Li H, Zhang C, Miao D, et al.Water demand prediction of grey markov model based on GM (1, 1) .International Conference on Mechatronics and Information Technology.2016

[10] 卓金武, 李必文, 魏永生, 等.MATLAB在数学建模中的应用.北京:北京航空航天大学出版社, 2014

[11] 王辛.改进的灰色遗传算法模型在价格预测中的应用:[学位论文].吉林:吉林大学, 2010

[12] 杜迎欣, 曹小兵, 李琛, 等.基于遗传算法的城市用水量灰色预测模型研究——以秦皇岛市引青济秦工程为例.水资源与水工程学报, 2014 (3) :129~132

[13] 尹学康, 韩德宏.城市需水量预测.北京:中国建筑工业出版社, 2006

[14] 赵洪宾.给水管网系统理论与分析.北京:中国建筑工业出版社, 2003
786 1 1
文字:     A-     A+     默认 取消