王瑞芳,姜玥玮,易 琦
(云南大学 地球科学学院,云南 昆明 650500)
支持向量机(Support Vector Machine,简称 SVM)由Vapnik在20世纪60年代开发,是一组用于分类和回归的相关监督学习方法。给定一组训练示例,每个示例都标记为属于两个类别之一,SVM训练算法构建一个模型,用于预测新示例属于哪个类别[1]。随着计算机和3S技术的发展,SVM模型在降雨—径流方向的应用已成为新的研究热点。中国很多学者已经采用SVM方法做了大量的研究工作[2-5]。王景雷等[6]成功将支持向量机理论应用于地下水位预报研究中,Liong等[7]也在水文预报中应用了SVM模型,均取得了较好的预测效果。李粤安,陈晓宏等[8]以降雨作为输入,通过对支持向量机、人工神经网络预测以及传统的回归分析预测方法进行比较研究,得出支持向量机能取得精度更高的径流预测值,为径流的预测提供了理论方法和研究思路。为提高径流预测模型精度,国内外学者对此做了大量研究[9-11],尤其是近年来随着传统预测方法的不断改进以及机器学习技术的快速发展,大量新的径流预测模型被开发出来。已有研究表明,与传统的BN模型和回归方法相比,支持向量机(SVM)可以拟合出更高精度的降雨—径流预测值[2]。而在已有的SVM模型径流预测研究中,主要集中于大面积流域,一般为四个数量级以上[12-14],长时间尺度,至少20年以上[15-17]的径流时间序列资料方面的研究。在流域面积较小且人类活动烈度很大的宝象河流域,以较短时间序列的气象水文数据为SVM模型驱动数据方面的研究还未见报道。鉴于此,文章以宝象河流域降雨、径流为研究对象,利用2007~2013年气象、水文监测数据,探讨SVM 模型在宝象河流域的适用性,通过模型的率定和验证,评价SVM模型在该流域径流模拟精度,为宝象河流域的雨洪预报与防治提供科学参考依据,具有一定的科学意义。
宝象河发源于昆明市官渡区东南部老爷山,属金沙江水系,是昆明古六河之一,位于昆明市主城区范围内(官渡区),地处滇池北岸、牛栏江下游,下垫面改造活动剧烈,在宝丰村汇入滇池(图1),是第二大入滇池河流。宝象河干流全长36.2 km,落差105 m,该流域位于滇池的东北方向(24°58′~25°03′ N,102°41′~102°56′ E),流域面积344 km2,约占滇池流域的10.3 %。流域年均降雨量为953 mm,主要集中在5~10月,汛期主要集中在7~8月。汛期降雨量占多年平均值的80 %以上,年平均气温为14.7 ℃,蒸发量较大[18]。宝象河流域上游地区受人类活动影响相对较小,中下游地区以人工建设的不透水下垫面为主,河道也属于人工硬质化的河道,区域用地类型以城市用地为主[19]。流域内不同土地利用类型相对集中,宝象河上游河道环境以及径流特征都接近天然状态,中游流经大板桥街道和阿拉街道,主河道周围集中分布着耕地和村镇建筑,下游河道进入昆明主城区,河道周围为城市建设用地,区域内河道均被人工硬化,失去了原始河道的特征。高强度的人类活动影响及大量的水工调控设施,很大程度上影响了宝象河流域的降雨产流、汇流过程。
由http://srtm.csi.cgiar.org 网站下载,CGISR-CSI 提供的30m分辨率的SRTM资料划定流域边界并绘制地形及水系图。采用气象、水文数据作为SVM模型的驱动数据。因宝象河流域内无气象站,选取的实测气象数据为2007~2013年中国气象局国家气象信息中心得到的流域附近昆明、呈贡、太华山3个国家气象站逐日降水量资料。为了保证资料的一致性,水文数据为宝象河干海子水文站2007~2013年的逐日径流量资料。考虑到宝象河流域水文站观测径流量数据的连续性,选取2007~2010年作为模型率定期,率定相关参数,构建模型;将2011~2013 年作为模型验证期,对模型模拟精度进行校验与评价。
SVM回归模型在解决线性、非线性预测中都具有较好的适应性,近年来,由于其具有能较好地解决影响因素复杂、基础数据来源多、标准化难以统一等问题的优点而被国内外学者广泛应用于降雨-径流预测的研究[20,21]。本文借助Python中的 libsvm 工具箱实现 SVM 回归算法。
1.3.1 支持向量机(SVM)
(1)SVM基本原理。支持向量机(SVM)是一种目前常用于分类和回归分析机器学习方法,其基本思想是通过非线性映射将训练的数据集映射到高维特征空间,使得低维特征空间中的非线性函数估计问题转化为求解高维特征空间中的线性函数估计问题。如下所示[22]:
(1)
(2)nu-SVM优化参数的选取。选取nu-SVM进行宝象河流域模型的搭建,这是一种由Schölkopf等人提出的可以自动调整距离误差的算法。由式(1)得最终回归函数f(x):
(2)
图1 流域水系及气象站、水文站分布图
(3)径向基核函数(RBF)原理。其取值仅仅依赖于离原点距离的实值函数。公式如下:
k(xi,x)=exp(-γx-xi2),γ>0
(3)
式中:γ为核参数。nu-SVM中引入参数nu,通过设置解决方案中保留的支持向量的数量,相对于数据集中的样本总数的比例,能够控制支持向量的数量。为了便于SVM模型在时间尺度上对宝象河流域降雨—径流的模拟,nu-SVM选取日尺度的降水径流数据对宝象河流域进行分析。
1.3.2 模型验证理论
为全面评估模型的预测效果,采用纳什效率系数(NSE)及相对误差(RE)对模型的模拟精度进行评价。纳什效率系数(NSE)常用于衡量模型模拟量与观测量的拟合度,是专门用于评估水文模型预测能力的系数,取值范围是(-∞,1]。NSE=1,说明模型模拟值与观测值正好吻合;NSE=0,说明模型模拟值与观测值平均值吻合;NSE<0,说明剩余方差大于数据方差。一般而言,NSE在(0,1)范围内的模型是可行的,模拟结果总体可信,否则通常认为该应用模型不可行[28]。相对误差是指模拟值相对于实测值的误差。根据SL250-2000《水文情报预报规范》,预报要素相对误差RE在20%范围内视为预报合格,根据合格率可将预报模型划分为甲、乙、丙三个等级[28]。若RE>0,说明模型预测或模拟值偏大;若RE<0,说明模型预测或模拟值偏小;若RE=0,则说明模型模拟结果与实测值正好吻合[29]。
(1)纳什效率系数(NSE)公式如下:
(4)
式中:Qobs表示实测流量,Qsim表示模拟流量。
(2)相对误差(RE)公式如下:
(5)
式中:Qsim(D)为D天的模拟径流量,Qob(D)为D天的观测径流量。
将流域日降水量、干海子水文站前1日径流量作为输入因子,与干海子站的当日径流量即输出因子建立支持向量机(SVM)模型函数关系,通过SVM模型对宝象河流域日径流量进行模拟。由于降雨量和径流量的量级相差甚远,为了消除各个因子量纲以及单位不同带来的影响,模拟前利用极差标准化方法对数据进行归一化处理,建模采用python中libsvm工具箱中的scale.py程序实现,训练步长以日为单位。
通过对不同的惩罚系数C和不敏感损失函数ε的试验,最终参数选择为C=2,ε=0.01时径流量预测值与输出值拟合效果最佳(图2、图3)。
图2 基于SVM模型宝象河流域2007~2010年率定期观测值与模拟值对比
图3 基于SVM模型宝象河流域2011~2013年验证期观测值与模拟值对比
宝象河流域SVM模型率定期间(2007~2010年),观测值与模拟值相差较小,拟合效果较好(图2)。率定期间1~7月径流拟合值略大于径流观测值,7月~11月径流拟合值小于实测值,11月至第二年1月径流拟合值与径流实测值相差最小,这与张兰影等人[17]研究结果类似。模型验证期(2011~2013年)观测值与模拟值对比结果显示(图3):SVM模型在宝象河流域对降雨-径流预测效果较好,模型精度较高。尤其是汛期(7~8月)拟合效果最好,旱季相对较差,这与孙传文等人[12]的研究结果类似。非汛期宝象河流域下垫面受人类活动影响相对较大,下垫面的改造和水利设施的建造,改变了地表径流,使得天然径流大幅度减少,一定程度上降低了SVM模型的预测精度。
SVM模型基本能模拟宝象河流域年内及年际径流变化趋势,在宝象河流域的适用性较好。基于SVM模型的宝象河流域径流模拟评价结果(见表1),2011~2013年验证期内SVM模型的纳什效率系数为0.030 9,在区间(0,1)范围内,说明预测模型稳定性较好,模拟结果总体可信。平均标准化观测日径流量为0.0470 03 m3/s,而平均标准化模拟日径流量为0.035 5 m3/s,预测径流量与实际观测径流量的相对误差为24.50 %。雨季(5~10月)验证期有相对于年际和旱季验证期最大的纳什效率系数(0.203 1)和最小的相对误差(9.38 %)。满足纳什效率系数在(0,1)范围内,预测模型稳定性较好;相对误差小于20 %的需求,模拟值与实测值的相对误差值在可接受范围内。说明就宝象河流域而言,SVM模型在雨季(5~10月)更适用,稳定性更好,精度更高,预测更准确。旱季预测精度相对较差,纳什效率系数为-1.925 3,相对误差为118.39%。虽然有人类活动改造下垫面影响宝象河流域产汇流过程,但是雨季降水集中、变化大,径流形成过程更接近天然径流,对SVM模型在宝象河流域雨季(5~10月)的拟合精度影响相对较小。旱季径流模拟精度远小于雨季,可能
表1 不同时间段内SVM模型评价结果
是因为旱季降水量和径流量相对较少,且干流上游的宝象河水库2007~2013年间无下泄水量,中游有东、西2条支流鸳鸯沟用于流域外的农业灌溉,而在干流下游分闸形成新、老宝象河2条支流,但最终都汇入滇池[31]。影响了产汇流过程,降低了模型的拟合精度。
为进一步验证径流量大小对模型拟合精度的影响,统计了验证期内逐年的年径流量(见表2)。与此同时,逐年计算SVM 模型的纳什效率系数和相对误差。验证期(2011~2013)内年径流总量相差较大,年际径流量相差近500万m3,随流域年径流量的增大,拟合精度提高。年径流量相对最大的2012年(2.204 671 4×107m3),纳什效率系数属验证期内相对最大(0.055 5),相对误差相对最小(24.74 %)。就验证期而言,2012年SVM模型预测稳定性相对最大,预测精度相对最高。年径流量次之的2013年(1.771 562 9×107m3),纳什效率系数达0.014 6,在(0,1)范围内,表明预测模型比较稳定,模拟结果总体可信,SVM预测模型稳定性相对2012年差;相对误差值为56.76 %,模型预测精度相对较差,未达相对误差满足低于20 %的需求。年径流量相对最小的2011年(1.298 592×107m3),纳什效率系数为-2.202 0,小于零,SVM模型的预测稳定性较差,相对误差为100.93 %,拟合效果相对最差。
表2 不同年份SVM模型的效率系数和相对误差
通过收集宝象河流域3个国家气象站点重要气象站逐日降水量数据和宝象河干海子水文站同期逐日径流量数据,以2007~2010年气象、水文观测数据确定模型参数,在宝象河流域构建SVM模型;以2011~2013 年实时监测数据对宝象河的径流日变化过程进行拟合与校验,探讨SVM 模型在宝象河流域的适用性,评价该模型在宝象河流域的径流模拟精度,得出以下结论:
(1)参数率定后,SVM模型在宝象河流域(小面积流域,实测流量数据序列短,且下垫面受人类活动影响大)对流域径流拟合效果较好。经验证SVM模型的纳什效率系数在全年、雨季较高,相对误差较小。
(2)SVM模型在雨量集中的汛期与年径流量较大的年份拟合效果更好,且随流域年径流量的增大,拟合精度提高。2011~2013年间,2012年相比其他年份,年径流量更大,纳什效率系数相对最大,相对误差相对最小,模型预测稳定性相对最大,预测精度相对最高。
受研究区域资料来源的限制,仅选取了宝象河流域2007~2013年重要气象水文逐日资料,若能延长时间序列,SVM模型在宝象河流域的适用性及拟合精度会更优。人类活动对SVM模型拟合精度的影响较大,宝象河流域下垫面的改造和水利设施的建造,对地表径流进行调控,使得天然径流大幅度减少,降低了SVM模型的预测精度。同时由于研究区域的特殊性,宝象河流域范围内没有相应的气象站,山区降水变化可能受地形等因素影响较大,流域附近的气象站可能无法准确代表流域内实际的雨量过程,从而致使模型模拟结果相对较差。此外,在运用SVM模型对降雨-径流进行模拟时,选取的核函数不同,结果会有所差异。已有研究表明,径向基核函数具有良好的学习能力,参数少,且适用于低维,高维,小样本和大样本等数据类型的优点,通常是所有核函数中使用最广泛的核函数[27],径向基核函数的缺点是在对训练数据集进行分类时,远离特征空间超平面的数据集分类精度较差,针对这一缺点,具有足够高的多项式项值(一般为5或6)的多项式核函数(PL)可以进行较好的弥补[32];对于某些参数而言,线性核函数(LN)、Sigmoid核函数(SIG)与径向基核函数相似,是特殊的径向基核函数[33]。因此,在后续SVM模型降雨—径流预测的问题研究中,基于组合核函数SVM的研究是一个值得深入探讨的方向。