陈志月,吴立峰,刘小强,伍周睿,董建华
(1.南昌工程学院 鄱阳湖流域水工程安全与资源高效利用国家地方联合工程实验室,江西 南昌 330099;2.河海大学 水文水资源学院,江苏 南京 210098;3.西北农林科技大学 旱区农业水土工程教育部 重点实验室,陕西 杨凌 712100;4.昆明理工大学 农业与食品学院,云南 昆明 650500)
水面蒸发量的确定在水资源计算中具有不可替代的作用,流域水资源评价、水库水量计算和农田灌溉制度制定等都必须参考水面蒸发量。在我国,通常采用E601蒸发皿(直径60 cm)和 E20 蒸发皿(直径20 cm)直接测量水面蒸发量。20世纪以来人类活动导致全球变暖,气候变化受到越来越多的关注,许多学者指出蒸发皿蒸发量的观测值并没有随着大气温度的升高而增加,反而呈现下降的趋势[1-3],并把这种现象称为“蒸发悖论”[4]。研究证明“蒸发悖论”的原因在于只是简单地建立气温与水面蒸发量的联系,而实际上风速、相对湿度、太阳辐射、水汽压、日照时数等气象因子均为影响水面蒸发量的主要因素[5-7]。为了全面认识气象因子与水面蒸发量的相关关系,并确定在一定气候条件下影响水面蒸发量的主导因子,有些学者利用机器学习模型预测流域水面蒸发量,通过不断地优化输入参数来提高模型预测精度。
近年来,随着人工智能算法的快速发展,越来越多的机器学习模型被提出并应用于估算蒸散发,如人工神经网络[8]、支持向量机[9]、多层感知器[10]、广义回归神经网络[11]、自适应神经模糊推理系统[12]和极限学习机[13]等,这些机器学习模型在处理自变量与因变量之间的非线性关系方面具有强大的功能。刘彩红等[14]评价了BP神经网络在新疆平原地区预测水面蒸发量的表现,认为该模型的预测精度较高,比其他常用方法构建简单且误差较小,且所需的材料易于获得。丁薇[15]研究了PCA-RBF神经网络模型在太原地区预测水面蒸发量的适用性,结果表明CA-RBF神经网络模型的表现较好,预测精度达到了83%的合格率。有学者比较了6种基于软计算方法的模型(多层感知器(MLP)、广义回归神经网络(GRNN)、模糊遗传(FG)、最小二乘支持向量机(LSSVM)、多元自适应回归样条(MARS)、自适应神经模糊推理系统(ANFIS-GP))和两种回归模型(多元线性回归(MLR)和Stephens and Stewart模型(SS))预测水面月蒸发量的表现,得出不同的气候条件下模型的精度也不相同,大多数气象站点的蒸发量模拟结果显示MLP模型的性能优于其他模型,预测结果准确性排名为MLP>GRNN>LSSVM>FG>ANFIS-GP>MARS>MLR[16]。
江西地区处于长江中下游,包含鄱阳湖流域,近年来旱涝灾害频发,属于水资源矛盾比较突出的地区。闵骞等[3]对鄱阳湖流域近50年水面蒸发量的变化特征及其原因进行了分析,得出该流域存在“蒸发悖论”的现象,且认为水面蒸发量的变化是由于大范围气候变化胁迫的结果。由于水面蒸发量预测模型具有很强的地区适应性,且目前关于江西地区的水面蒸发量预测模型的研究还缺乏报道[17],因此,为了进一步分析温度、风速、相对湿度、太阳辐射、水汽压等气象因子对鄱阳湖流域水面蒸发量变化的综合影响,以及资料缺乏时水面蒸发量的插补和模拟,本研究拟使用3种在蒸发量模拟中较少使用的机器学习方法(GPR、XGBoost和CatBoost),建立该地区的水面蒸发量模拟模型,找出该气候条件下影响水面蒸发量的主导气象因子,并确定最适宜的气象因子组合。
本次研究内容包括:(1)评估GPR、XGBoost和CatBoost这3种机器学习模型在江西地区预测水面蒸发量的适应性;(2)通过比较不同输入参数的模型模拟效果,明确在江西地区气候条件下影响水面蒸发量的主导气象因子;(3)将3种机器学习模型GPR、XGBoost和CatBoost与3种经验模型Griffiths[18]、Stephens and Stewart(SS)[19]和Priestley-Taylor(PT)[20]相比较,以便选出气象资料不足时最适宜的水面蒸发量估算模型,为水面蒸发量的高精度模拟提供一定的参考。
江西省位于我国东南部,东、西、南三面环山,北部为鄱阳湖冲击平原区,这种地形特点使得该地区地势南高北低,且有利于河流汇集。江西省内共有大小河流2 400多条,河网密集,五大河系(赣江、抚河、信江、饶河和修河)以鄱阳湖为汇聚中心组成了一个完整的水系。受到东亚季风的显著影响,该地区属于亚热带湿润气候,水资源丰富,雨量充沛,多年平均降水量为1 341~1 943 mm,多年平均气温为16.3~19.5 ℃。
本次研究选用了江西地区16个气象站点(修水站、宜春站、吉安站、遂川站、赣县站、鄱阳站、景德镇站、南昌站、樟树站、贵溪站、玉山站、上饶站、南城站、广昌站、全南站和寻乌站)在2001-2015年期间的逐日气象资料,包括最高/低气温(Tmax/Tmin)、全球太阳辐射(Rs)、地外太阳辐射(Ra)、相对湿度(HR)、风速(Sw)和E601蒸发皿实测的水面蒸发量,数据来源于中国气象科学数据共享服务网(http://data.cma.cn/)地面观测数据中的逐日气象资料,若某日的1个气象数据丢失或错误时,该日的所有气象数据均被剔除。在筛选后的长系列连续气象资料中,选取2001-2010年的数据用于模型的率定,2010-2015年的数据用于模型的验证。表1为2001-2015年江西地区16个气象站的气象数据日平均值。
表1 2001-2015年江西地区16个气象站的气象数据日平均值
Griffiths、Stephens and Stewart (SS)和Priestley-Taylor (PT) 3种经验模型是目前广泛使用的蒸散发估算模型[21-23],其输入参数组合及模型方程见表2。由表2可以看出,3种经验模型对应不同的输入组合时,模型基于的方程式也各不相同,其中,a、b、c均为拟合系数;Ta为平均气温;Rn为净辐射;γ为湿度常数;Δ为蒸汽气压曲线比降。
表2 3种经验模型的输入参数组合及模型方程
(1)GPR模型。高斯过程回归(GPR)模型是利用高斯过程先验对数据进行回归分析的非参数模型。模型建立如下:
y=f(x)+ε
(1)
因此得到了关于观测值y的先验分布:
(2)
同时也得到了观测值和预测值的联合先验分布如下:
(3)
式中:K(X,X)为n阶正定协方差矩阵;K(X,X*)为测试点与训练集输入之间的n×1阶协方差矩阵;K(X*,X*)为测试点自身的协方差;In为n维单位矩阵。
算出预测值的后验算分布为:
(4)
且
(5)
cov(f*)=K(x*,x*)-K(x*-X)[K(X,X)+
(6)
(2)CatBoost模型。CatBoost是Gradient Boosting(梯度提升)+Categorical Features(类别型特征),能够很好地处理分类特征问题并能有效地减少过度拟合问题,它根据公式(7)将分类特征值转化为数值结果。
(7)
式中:P为先验项;b为先验项的权重。
(3)XGBoost模型。极限梯度增强(XGBoost)模型是一种新的梯度增强学习机的实现方法,其学习过程解释如下:
(8)
fk∈F
(9)
XGBoost算法迭代过程中步骤t的预测如下:
(10)
因此,得到XGBoost算法的目标优化函数,如公式(11)所示:
ft(xi))+Ω(ft)+constant
(11)
式中:l为损失函数;n为观测的数目;Ω为正则项。
本次研究以江西地区16个气象站点2011-2015年逐日最高气温、最低气温、相对湿度、风速、全球太阳辐射和地外太阳辐射作为输入参数,建立了10种不同输入参数组合的GPR模型、CatBoost模型和XGBoost模型,如表3所示。
表3 3种学习机模型的10种不同输入参数组合
通过决定系数(R2)、均方根误差(RMSE)、平均偏差(MBE)和平均绝对误差(MAE)4种统计指标来评估模型预测水面蒸发量的性能。
(12)
(13)
(14)
(15)
江西地区主要以山地丘陵为主,赣州是这种地貌特征的典型城市,而且是江西省面积最大、人口最多的设区市。本文以赣县为例,3种经验模型在赣县气象站模拟江西地区水面蒸发量的精度指标统计结果如表4所示。通过比较表4中各统计指标的值可以看出,PT模型总体上优于另外两种经验模型。虽然在率定期PT模型的R2比SS模型的略小,但PT模型的RMSE、MBE绝对值和MAE均比SS模型的小,总体上稳定性更高。从表4中还可看出,除了Griffith模型在验证期存在稍微低估现象(MBE≤0),其他两种经验模型均高估了江西地区的水面蒸发量,即MBE均大于0,但PT模型的高估程度比SS模型低一些。
表4 3种经验模型预测水面蒸发量的精度指标统计结果(赣县站)
图1为3种经验模型水面蒸发量在赣县站的预测值与实测值之间的散点分布图,由图1可看出,PT模型散点的分布更趋于1∶1的关系,表明其模拟效果更好。
图1 3种经验模型预测水面蒸发量在率定期和验证期预测值与实测值的散点图(赣县站)
本文还评估了3种经验模型在江西地区16个气象测站水面蒸发量的整体预测表现,结果见表5。由表5可得出,验证期PT模型的RMSE、MBE和MAE均小于SS模型的值,但R2值较SS 模型的明显要小,说明该模型预测精度不佳。因此在赣县站表现较好的PT模型在江西地区的16个测站上体现出不适性,难以推广至整个江西地区。
表5 3种经验模型预测水面蒸发量的精度指标统计结果(16个测站的平均值)
为了筛选出最适宜于江西地区的水面蒸发量预测模型,选用3种学习机模型,即GPR、CatBoost和XGBoost。模型预测水面蒸发量的精度很大程度上取决于模型性质和输入参数。
以赣县站的气象资料作为输入参数,GPR、CatBoost和XGBoost 3种学习机模型预测水面蒸发量的精度指标统计结果见表6。比较表6中3种学习机模型不同输入组合的各统计指标均值可知,XGBoost模型的R2最大,RMSE、MBE的绝对值和MAE最小,其预测精度优于GPR模型和CatBoost模型。另外,表6中3种学习机模型的MAE均接近于0,说明存在轻微的过拟合或欠拟合。当输入组合中有4个参数时(Tmax、Tmin、Rs或Ra、Sw或HR),率定期估算精度最高的为XGBoost模型(均值:R2=0.833,RMSE=0.705 mm/d,MBE=0,MAE=0.548 mm/d);而验证期估算精度最高的为GPR模型(均值:R2=0.715,RMSE=0.938 mm/d,MBE=0.042 mm/d,MAE=0.7 mm/d)。当输入组合中有3个参数时(Tmax、Tmin、Rs或Ra),率定期和验证期估算精度最高的均为XGBoost模型(均值:率定期,R2=0.833,RMSE=0.714 mm/d,MBE=0,MAE=0.554 mm/d;验证期,R2=0.692,RMSE=0.977 mm/d,MBE=0.05 mm/d,MAE=0.731 mm/d)。表明XGBoost模型水面蒸发量估测值的偏离程度均小于其他两种模型。
表6 10种不同输入参数组合条件下3种学习机模型预测水面蒸发量的精度指标统计结果(赣县站)
当气象数据资料极其缺乏,只有大气温度、全球太阳辐射、相对湿度或风速时,以单一气象因子作为输入参数,对3种模型预测结果的均值进行对比,从而评价3种模型的精度。结果显示,XGBoost模型的精度仍然最高(率定期均值:R2=0.529,RMSE=1.158 mm/d,MBE=0,MAE=0.920 mm/d;验证期均值:R2=0.505,RMSE=1.212 mm/d,MBE=-0.006 mm/d,MAE=0.956 mm/d)。可见XGBoost模型在气象资料不足时预测水面蒸发量具有明显的优越性。当气象资料充分时,CatBoost 10模型最优,其R2、RMSE、MBE、MAE值分别为0.729、0.924 mm/d、0.109 mm/d、0.678 mm/d。
上述3种学习机模型模拟结果均显示,当输入参数为完整的气象数据时,模型的模拟精度最高。如果在Tmax、Tmin、Ra的输入组合中增加1个参数(Sw或HR),或者在Tmax、Tmin、Rs的输入组合中增加1个参数(Sw或HR),3种学习机模型的预测精度均会提高。已有研究表明[22],输入参数增加,则模型的预测精度也随之提高,本次研究结果也与之相符。当输入组合中有3个参数时,3种学习机模型的模拟结果均显示输入参数为Tmax、Tmin、Rs的模型优于输入参数为Tmax、Tmin、Ra的模型,说明全球太阳辐射参数对模型预测精度的影响要大于地外太阳辐射参数的影响。此外,输入组合中只有大气温度(Tmax、Tmin)作为参数的模型精度高于只有全球太阳辐射或相对湿度作为参数的模型精度,其中相对湿度作为唯一输入参数的模型精度最低。因此,10种不同输入参数组合的学习机模型模拟结果均显示,影响江西地区水面蒸发量的关键气象因子为Tmax、Tmin、Rs。
图2为3种学习机模型在赣县站模拟江西地区水面蒸发量的预测值与实测值之间的散点图,不同颜色的点表示不同输入组合的学习机模型。
图2 10种不同输入参数组合条件下3种学习机模型在率定期和验证期的预测值与实测值散点图(赣县站)
从图2中可以明显看出,无论是率定期还是验证期,GPR 10、CatBoost 10或XGBoost 10模型的散点图最接近1∶1的关系,表明其拟合程度最高。
为了验证上述结果的准确性,对3种学习机模型在江西地区16个气象站模拟水面蒸发量的统计结果进行分析(见表7),结果与赣县气象测站的分析结果大体一致。比较表7中10种不同输入参数模型的精度统计指标均值可知,XGBoost模型的表现最佳,与GPR和CatBoost模型相比,其R2最大,RMSE、MBE绝对值和MAE最小,因此预测水面蒸发量的精度最高。当气象资料不充分只有3个参数时(Tmax、Tmin、Rs或Ra),甚至只有大气温度、全球太阳辐射、相对湿度或风速单个气象资料时,结果仍然显示XGBoost模型在率定期和验证期均优于其他两种学习机模型。但是,当输入组合中有4个参数时,验证期CatBoost 10模型的模拟效果最优,其R2、RMSE、MBE、MAE值分别为0.744、0.842 mm/d、0.006 mm/d、0.633 mm/d,这表明当气象资料充分时,CatBoost 10模型为江西地区水面蒸发量的最佳预测模型。
表7 10种不同输入参数组合条件下3种学习机模型预测水面蒸发量的精度指标统计结果(16个测站的平均值)
本文还对相同输入参数组合的学习机模型和经验模型预测江西地区水面蒸发量的性能进行了比较。同样以赣县站气象资料为例,结果见表8。由表8可看出,当Tmax、Tmin、Ra、Sw作为输入参数时,GPR 6、CatBoost 6和XGBoost 6在率定期和验证期优于Griffith模型,其中XGBoost 6模型的表现最佳;当Tmax、Tmin、Rs作为输入参数时,GPR 8、CatBoost 8和XGBoost 8模型在率定期和验证期优于SS和PT模型,同样以XGBoost 8模型表现最佳。虽然XGBoost模型表现出轻微过拟合(MAE>0),但其R2最大且RMSE、MAE最小,因此,在相同输入参数的情况下,优先选用学习机模型作为江西地区水面蒸发量的估算方法。
为了验证学习机模型的稳定性,表9对相同输入组合的学习机模型与经验模型预测水面蒸发量的16个气象站统计结果平均值进行评估,得出的结果与表8的分析结果一致,即在输入参数为Tmax、Tmin、Ra、Sw或Tmax、Tmin、Rs的条件下,学习机模型优于经验模型,其中XGBoost模型的预测精度最高,但其MBE>0,表现出过拟合的现象。
表8 相同输入参数组合的学习机模型和经验模型的预测精度指标统计结果(赣县站)
表9 相同输入参数组合的学习机模型和经验模型的预测精度指标统计结果(16个测站的平均值)
本文提出的Griffiths、PT和SS 3种经验模型精度较低,稳定性不佳。在输入相同参数的条件下,即输入参数为Tmax、Tmin、Ra、Sw或Tmax、Tmin、Rs,3种经验模型的性能均低于相应的学习机模型。由于水面蒸发量受到多种气象条件的影响,而经验模型只是单纯依靠数据的拟合而得到的,缺乏机理性,因此难以反映水面蒸发量的动态变化。
本项研究表明GPR、XGBoost和CatBoost模型在江西地区的适应性各不相同。气象资料充足时,验证期CatBoost 10模型在该区域表现最佳;而气象资料不足时,XGBoost模型通常表现较好。造成这种现象的原因是:CatBoost模型使用了贪婪算法,当输入数据不足以解释全部蒸发量变化原因时,模型会有一定程度的过度解释,即过拟合问题;当气象因子充足时,XGBoost模型相对CatBoost模型更保守的拟合策略造成了轻微的欠拟合问题,因此其精度不如CatBoost模型。而GPR模型对数据的分布要求更高,当数据分布不符合高斯分布时,模型的精度会受到影响。因此,不推荐GPR模型作为该地区的预测模型。
在实际情况中,应根据所得气象资料情况来选用适宜的模型预测江西地区水面蒸发量,这对于偏远山区和蒸发皿观测数据缺失的地区具有一定的实用意义。本文还分析了10种不同输入参数组合的学习机模型模拟效果,得出影响江西地区水面蒸发量的关键气象因子为Tmax、Tmin、Rs,即温度和地表总辐射。比较长江流域其他地区的相关研究可以看出,水面蒸发量的影响因素各有不同,如洞庭湖流域的关键气象因子是温度和日照时间[23];四川盆地的主要气象因子依次为日照时数、风速、水汽压和气温[7]。显然,太阳辐射是地球能量的来源,其直接影响着温度的变化,间接影响着风速、相对湿度等因子的变化,在江西地区,以太阳辐射的间接作用即改变地表温度来影响蒸发为主要特征,而其他地区以直接影响为主要特征。
本文研究评价了3种学习机模型(GPR、XGBoost和CatBoost模型)和3种经验模型(Griffiths、PT和SS模型)对江西地区水面蒸发量的模拟效果,得出结论如下:
(1)气象资料充分时,验证期CatBoost 10模型表现最佳,即输入组合为Tmax、Tmin、Rs、Sw时,该模型的R2、RMSE、MBE、MAE值分别为0.744、0.842 mm/d、0.006 mm/d、0.633 mm/d,为江西地区适宜的水面蒸发量预测模型。
(2)输入参数同为Tmax、Tmin、Ra、Sw或Tmax、Tmin、Rs时,3种学习机模型均优于相应的经验模型,其中XGBoost模型的预测精度最高。