APP下载

一种融合 KPCA 和 BP 神经网络的用水总量预测方法

2021-11-01赵和松王圆圆

水利信息化 2021年5期
关键词:降维用水量总量

赵和松 ,王圆圆 ,赵 齐

(1. 水利部信息中心,北京 100053;2. 北京金水信息技术发展有限公司,北京 100053;3. 河海大学计算机与信息学院,江苏 南京 211100)

0 引言

水是人类维持地球生命质量的基本需要和必要条件之一,由于人口急剧增加、技术进步及经济增长,水的不平衡和不受管理的使用使其稀缺,使水资源供需矛盾日益加剧[1]。目前,部分地区水资源的供应量已不能满足人口增长和工农业发展的需求,严重阻碍地区的社会和经济效益,因此,对水资源进行合理规划和调度已经迫在眉睫。用水总量预测工作是在当今水资源严峻形势下,对水资源合理分配、调度及分析估量的重要举措[2]。用水总量预测有多种用途,如规划城市新发展或排水系统的扩建、抽水站及水管规模的运作和城市水资源管理的规划[3]。合理化的用水总量预测可以改善用水片区的用水管理,为输水系统设计、现代化开发提供参考数据[4]。

传统的用水总量预测是基于已知的连续性的用水时间序列,从中挖掘当前用水量与历史用水量之间的线性关系进行用水总量预测的。然而用水总量受人口、灌溉面积等影响因素的控制,用单一的历史用水量数据去预测当前用水量数据显然是不太准确的,因此,寻找当前各用水量因子与用水总量之间的关系值得研究。

常用的用水总量预测方法有指标分析法、时间序列法、回归分析法,以及灰色系统及神经网络模型。刘呈玲等[5]用时差相关分析法筛选出影响用水因子,再建立多元回归模型预测用水总量。达瓦等[6]应用灰色系统理论建立用水预测模型,分析区域未来用水总量。然而这些预测效果都不太明显。近年来,用神经网络进行用水总量预测使预测精度有了很大的提高。占敏等[7]选择日用水量、最高温度等 5 个预测指标,构建了基于 BP 神经网络的用水总量预测模型,并利用贝叶斯正则化对 BP 神经 网络进行优化,使其符合用水总量预测的高精度要求。高学平等[8]采用组合降维算法 PCA(主成分分析)和 RBF 神经网络进行用水总量预测,预测能力较好。然而,用水总量因子数据具有非线性、复杂性、不确定等特点,采用神经网络进行线性降维虽然能去除冗余信息,但也会丢失一些有用的信息。

PCA 适合处理高维线性且在同一平面内的数据,对于非线性数据降维效果较差。PCA 中加入核函数可以很好地对高维特征空间上的非线性数据进行主成分分析,即形成 KPCA(核主成分分析),可很好地解决数据之间的非线性特征,消除冗余信息对预测造成的干扰,同时结合调优后的神经网络整体提高用水总量预测的精度。为此,针对影响用水总量的相关用水因子的不确定性和非线性多维特点,提出一种融合 KPCA 和思维优化 BP 神经网络的用水总量预测方法(以下简称融合 KPCA-BP 用水总量预测方法),建立 KPCA-BP 用水总量预测模型。

1 预测方法分析

KPCA-BP 用水总量预测模型建立过程如图1 所示。

图1 KPCA-BP 用水总量预测模型建立过程

1.1 数据收集和预处理

本方法使用的数据来源于国家统计局官方网站年度地区分省数据集,该数据集是每个省级行政区域的文本格式用水总量相关数据,每个省都有用水总量相关的因子及数据。选取其中可用的 2007—2016 年 31 个省、自治区、直辖市每年的,国内生产总值 GDP、农业增加值、粮食产量、有效灌溉面积、工业增加值、规模以上工业企业产成品、水产品总产量、城市污水日处理能力、城镇生活污水排放量、废水排放量、火力发电量、城市绿地面积、水产品养殖面积、生活用水总量、农业用水总量、用水人口、渔业增加值、工业用水、粮食产量、生态用水、企业所得税总额和个人所得税总额等 22 个直接或间接影响用水总量的数据因子作为研究数据集,共 279 组数据样本。

数据预处理包含用水因子相关性计算和核主成分分析 2 个部分。用水总量与多个用水因子有关,无关因子的输入会对模型的训练造成干扰,提前找出与用水总量相关性较大的因子能够提高模型预测精度。皮尔逊相关系数是度量因子相关性的常用方法,又叫作皮尔逊积矩相关系数,用于计算待处理数据与历史数据之间的线性相关程度。收集用水因子和总量数据后,皮尔逊相关系数R(x,y)[9]在用水场景下的计算公式如下:

式中:xi是第i个用水因子的样本值大小;是用水因子x的均值;y是用水总量实测值的大小;y是实测值的均值。

影响用水量多少的因素很多,用水量的多少由多个因子共同影响,去掉与用水无关的因子后仍然有数据维度较高的问题,如果把所有的相关因子直接输入模型中,那么各因子之间存在的多重共线性可能会导致解的空间不稳定,输入后续网络中进行训练时存在模型泛化能力较弱的问题,因此在对因子相关性计算后需要对这些因子进行降维处理。使用 KPCA 可以有效解决非线性数据的降维问题[10]。KPCA 是 PCA 的变体,PCA 降维是通过坐标轴的线性变化实现的,同维的映射只是改变方向,数据映射后仍然为直线。而 KPCA 对坐标轴进行了非线性变换,数据映射后是曲线或曲面。KPCA 可以删除输入因子中互相重复的信息,使用较少的因子代表较多的信息,若输入因子为P=(P1,P2,…,Pn),经过 KPCA 得到的因子为Q=(Q1,Q2,…,Qm),其中m为新生成的因子数,n为原输入因子的个数,则P与Q的关系如下:

式 (2) 中的α为预设的常数,选择合适的α使得P的各因子互不相关,同时因子Q的主要信息都集中到P的因子中,因此可以使用因子Q代表因子P。α的计算使用原始变量的相关系数矩阵进行计算,在数值上为对应的系数矩阵特征向量组合。

KPCA 的实质就是用较少的变量覆盖全部数据的非线性信息,从而提高数据的质量,减少计算成本。根据计算用水因子的贡献率大小,排序选择出包含大部分预测信息的新因子用作预测模型的输入,这样可以在保证用水信息不丢失的情况下减少网络训练时间,提高模型性能。

KPCA 降维计算的一般步骤如下:

1)求核矩阵 K。对于各用水因子样本 x1,x2,…,xn,使用非线性映射函数 Φ 映射到更高维的特征空间 Г 中,特征空间中重构变量的内积可以用核函数描述,核函数公式如下:

式中:xi是第 i 个样本的所有列;xj是第 j 个样本的所有列;核矩阵 K 由训练集构造。

2)将核矩阵 K 中心化,以修正核矩阵,得到中心化的核矩阵 Kc:

式中:LN是 N×N 的矩阵,每一个元素是 1/N。

3)计算核矩阵 Kc的特征值 λ1,…,λn,特征向量 ν1,…,νn,将特征值降序排列并相应调整特征向量的顺序。

4)计算各特征值的累计贡献率 r1,…,rn,根据给定的贡献率阈值 p,如果某特征值的累计贡献率 rt> p,则选取前 t 个分量作为降维后用水因子的数据。

1.2 参数调整和训练

BP 神经网络是一种多层的误差反向传播神经网络,具有输入层、隐藏层和输出层 3 层网络结构,3 层前馈网络能以任意精度逼近任意连续非线性函数[11]。相邻的各层通过 1 个权重值完全连接,同一层中的各单元互不连接。1 个神经元有 n 个输入,每个输入按权重 w 与下一层相连。输入层的数据通过隐藏层传播到输出层。误差反向传播,修改各层权重,使误差最小。BP 神经网络结构如图2 所示,图中 x1,x2,…,xn为输入的因子值,wij和 wjk为权值,y1,y2,…,ym为输出的预测用水值。

图2 BP 神经网络的结构

如果 BP 神经网络隐含层和节点足够多,可以看作是非线性映射关系,但是隐含层和节点数量过多,对资源的消耗也就越多,因此确定隐含层和节点的数量是建立网络模型的关键。另一方面,寻找最优权值和阈值,能够提高 BP 神经网络的预测精准度,因此本研究采用思维优化算法输出最优个体训练优化 BP 神经网络权值及阈值[12]。

思维优化算法(MEA)是由遗传算法演变而来的,是遗传算法的一种,具有趋同和异化 2 个算子,通过迭代学习使每一代所有个体成为一个群体,在初始阶段,MEA 的收敛速度非常快,MEA最强大的一点是它的正反馈和负反馈机制。正反馈机制指下一代所有个体与当前子群体的赢家之间的关系,所有子群体都根据社会和当前子群体的信息更新自己的行为,正反馈机制使种群朝着易于生存的方向发展;负反馈机制是指公告板上的信息不断更新,旧信息逐渐被新信息取代,从而消失,负反馈机制使 MEA 避免陷入局部最优。MEA 的全局寻优能力能够很好地找出用水量预测的最优解,同时,MEA 在改善神经网络的收敛速度和提升模型精度方面也有较好的效果[13]。

MEA 优化 BP 神经网络的步骤如下:

1)确定 BP 神经网络的拓扑结构。初始化输入层、隐含层和输出层的节点数,本研究 BP 神经网络拓扑结构为 3-12-1,输入训练集和测试集,获取最优权值和阈值。

2)设计函数产生初始种群、优胜和临时子群体大小。

3)求个体和种群的得分值。本研究个体和种群的得分函数用训练集的均方差的倒数表示,即

式中: yi为第 i 个训练样本的网络输出值;Yi为第 i 个样本的目标输出;S 为训练样本数量。

4)不断迭代,输出当前迭代获得的最佳个体及得分,把最优个体作为 BP 神经网络的初始权值和阈值,训练模型,用得到的权值和阈值训练 BP 神经网络模型。

1.3 结果对比

为衡量使用 KPCA 和思维优化 BP 神经网络组合预测用水总量方法的准确性,将预测的用水量与实际值进行比较,评价标准采用相对误差表示:

式中:δ 为相对误差;Y 为用水总量真实值;yw为网络预测值。

2 预测结果分析

2.1 用水因子相关性分析结果

根据用水总量的特点及影响因素,同时为避免与用水总量相关性较小的因子对预测结果的影响,使用皮尔逊相关系数 R(x,y)进行预测因子与用水总量之间的相关性度量,R(x,y)可以直观展示变量之间的相关性程度。R(x,y)> 0. 4 表示为中等以上相关,因此为准确预测,本研究选择 12 个 R(x,y)> 0.5 的因子作为用水总量预测因子,结果如表1 所示,从表1 可看出,与用水总量直接相关的主要是工业和农业用水及有效灌溉面积。

表1 用水因子相关性结果

2.2 核主成分分析结果

用水总量受多个因子影响,由于多个因子数据的量纲不同,为精确预测,需要消除量纲不同造成的预测不准确问题。因此,在做核主成分分析前需要将用水数据进行离差标准化处理,使因子数据处在 [0,1] 之间,离差标准化的计算公式为

式中:x' 为离差标准化数据;xmin,xmax分别为用水因子序列的最小值和最大值。

进行用水数据集离差标准化后,需要计算相应的核矩阵满足中心化条件。在符合处理非线性数据的核函数中,径向基函数核是较为常用的方法,有参数少、性能稳定等优点,通过对比试验证明使用径向基函数作为核函数模型的准确性最高,因此本研究采用径向基函数为 KPCA 的核函数。主成分对应的累计贡献率结果如表2 所示,经过计算,当累计贡献率达到 90% 以上时,主成分个数为 3 个,基本能代表用水因子的全部信息。这 3 个主成分组成的列向量作为后面 BP 神经网络预测模型的输入。

表2 主成分分析结果 %

2.3 用水总量模型训练与预测分析

采用国家统计局 2007—2016 年度开放统计用水数据进行实验,其中 2007—2015 年共 248 组数据作为训练样本,2016 年 31 组数据作为测试样本。经过实验,BP 神经网络设计为具有输入层、隐含层和输出层的 3 层网络结构,输入节点为 3 个,隐含节点为 12 个,输出节点为 1 个。经实验,在思维优化算法中,当种群数量为 100 个,优胜和临时子种群各为 6 个时,在算法迭代训练 100 次后,网络最终达到最优。图3 为 2016 年全国 31 个省、自治区和直辖市的用水总量预测结果,从图中可以看出:绝大部分预测数据与原始数据偏差较小,预测较为准确,证明该模型能够很好地适用于预测用水总量,具有较高的实用性和可用性。

图3 用水总量预测结果图

为验证 KPCA-BP 用水总量模型的优越性,通过对数据非线性结构特点分析,将基于 PCA 与 KPCA 和思维优化 BP 神经网络预测模型用相对误差评价方法分别进行比较,不同降维方式下不同省份用水总量预测结果的比较如表3 所示。从表3 可以看出:对于非线性的用水总量数据,虽然相对误差都小于 10%,但是用 KPCA 降维后,预测结果比用 PCA 降维的预测结果要好。PCA 虽然也降低了数据的维度,但它是线性变换的,对于非线性的数据,会损失原始数据因子的有用信息,降低最终预测的准确率,而 KPCA 克服了因子之间的非线性、复杂性和不确定性,因此预测结果好。

表3 不同降维方式下用水总量预测结果比较

3 结语

本研究提出了融合 KPCA-BP 用水总量预测方法,旨在解决影响用水总量的相关用水因子数量多、不确定性和非线性多维等问题,经实验表明本研究中的 KPCA 可以很好地解决因子之间的非线性特征,消除冗余信息造成的干扰,采用思维优化学习算法优化 BP 神经网络的权值和阈值建立基于 BP 神经网络的预测模型,可以进一步提高模型对用水总量预测的精度。结果证明 KPCA-BP 用水总量预测模型可以很好地预测用水,相对预测误差小于 5%。相较于现有工作,本研究在数据细化处理、算法优化方面有一定的创新性,在使用真实数据的测试中也取得较好的预测效果,有较高的实用性。本研究也会进一步探讨其他深度学习方法在用水总量预测上的应用,并为水资源合理分配、调度及分析估量指明方向。

猜你喜欢

降维用水量总量
混动成为降维打击的实力 东风风神皓极
“十三五”期间山西省与10省签约粮食总量2230万吨
2020年全国农民工总量比上年减少517万人
中国高碳行业上市公司碳排放总量榜
你的用水量是多少?
你的用水量是多少?
澳大利亚研发出新型农业传感器可预测农作物用水量
Helicobacter pylori-induced inflammation masks the underlying presence of low-grade dysplasia on gastric lesions
降维打击
总量控制原则下排污权有效配置的实施