基于SVM-CEEMDAN-BiLSTM模型的日降水量预测
2023-09-22肖丽英王萍根蔡高堂
凌 铭,肖丽英*,赵 嘉,王萍根,王 寅,项 凯,蔡高堂
(1.南昌工程学院水利与生态工程学院,江西 南昌 330099;2.南昌工程学院信息工程学院,江西 南昌 330099)
降水的形成受多因素的影响,导致降水虽然存在一定的规律性,但同时也存在较强的复杂性和不确定性。因此,在国内乃至全球气象领域,降水预测一直是难点。国内外有关降水时间序列的传统预测研究主要有统计学、动力学等方式。近年来,随着人工智能与大数据的发展,复杂神经网络、机器学习等逐步应用为降水预测带来了新的机遇[1-2]。吴有训等[3]基于支持向量机(SVM),通过历史数据构建月尺度降雨级别预测模型。结果表明SVM模型在降雨级别等分类应用上有较强的预测能力,可在气候预测业务中推广使用。甄亿位等[4]利用随机森林算法分别构建了年、月尺度降水预测模型,并采用历史气象数据验证模型的适用性。结果表明:随机森林模型与BP神经网络等机器学习预测模型相比,具有精度高、稳定性好、收敛快等优点,但对年、月尺度极端降水数据的预测效果不太理想。
作为机器学习中一个新的研究方向,深度学习在降水预测领域有别于传统预测方法,它在处理非线性问题上效果更佳。沈皓俊等[5]基于LSTM构建了降水预测模型,并预测了季尺度降水量。结果表明LSTM模型的降水预测能力优于BP神经网络等机器学习模型。随着信号处理技术的发展,数据去噪逐步被应用到气象预测领域中。例如Kala等[6]提出一种新型CEEMDAN-LSTM模型,将其应用于印度的月降水量预测,结果表明该组合模型预测能力远高于LSTM预测模型。华亚婕[7]提出一种基于GWO-DE-SVM的改进模型应用于吉林省的降雨等级预测,结果表明该组合模型降雨等级预测能力远高于SVM模型。
综上,深度学习方法为气象领域的降水预测提供了新的思路。但是,以前大部分的研究集中于年、季、月尺度的降水量预测[8-9],而对防旱抗涝更具有研究意义的日尺度降水量预测方面研究却较少。无论是单一模型还是组合模型在日尺度降水预测上,往往存在降水极大值与无雨日预测精度低的问题[10-11]。为解决上述情况,先利用支持向量机将无雨日与有雨日分离出来,然后借助完全集合经验模态分解(CEEMDAN)将降水序列的中高频与低频子序列分解出来以便针对性预测,再利用双向长短期记忆神经网络(BiLSTM)对降水序列进行有效预测。因此,形成了降水预测耦合模型(SVM-CEEMDAN-BiLSTM)。本研究采用鄱阳湖流域典型气象站点的日降水序列与其他气象要素序列作为模型输入,通过优化耦合模型以达到最优降水预测效果。
1 数据与方法
1.1 数据来源与处理
为方便对比检验不同模型的降水预测精度,本研究选取鄱阳湖流域降水集中程度表现较为典型的景德镇站、赣县站[12-13]作为研究站点,采取其1957—2018年期间多项气象数据展开对比研究。位于流域北部的景德镇站由于地形等因素,年内降水最为集中;赣县站则位于流域南部,其年内降水在流域内最为均匀,这与景德镇站的日降水集中程度形成鲜明对比。2个站的气象数据均来源于国家气象科学数据中心(http://data.cma.cn)的中国地面气候资料数据集。另外,本研究选取的气象因子为降水量(Pre)、0 cm地温(Gst)、蒸发量(Evp)、气压(Prs)、相对湿度(Rhu)、日照(Ssd)、气温(Tem)、风速(Win)。原始气象数据中的缺失值和异常值利用K-最近邻(KNN)插补方法进行插补[14],并对与试验无关数据进行剔除等处理,整理之后的数据作为研究用的输入数据。
1.2 研究方法
1.2.1支持向量机
支持向量机(Support Vector Machine,SVM)是一类按监督学习方式对数据进行二元分类的分类器[15],能够支持线性和非线性核函数对复杂样本进行分类,它在分类与预测上[16]应用较广。因此,可利用SVM对降水数据进行晴雨分类。考虑气象数据有较为复杂的相互关系,选用径向基核函数K(x1,x2),见式(1):
(1)
式中x1、x2——2个不同样本的特征向量;γ——径向基核函数的超参数。
1.2.2集合经验模态分解方法
自适应噪声的完全集合经验模态分解[17](Complete Ensemble Empirical Mode Decomposition Adaptive Noise,CEEMDAN)是在集合经验模态分解[18](Ensemble Empirical Mode Decomposition,EEMD)的基础上有所改进的一种分解方法,它解决了EEMD加入白噪声后分解引起的误差增大与完备性不足的问题。在本研究中,对降水序列分解可得到多个原序列中不同气候振荡信号的固有模态函数(Intrinsic Mode Function,IMF)。分析各个IMF分量可以获取不同频率降水变化的内在规律。CEEMDAN分解的步骤如下。
步骤一在原始信号h(t)中加入白噪声ωi(t),更新信号为:
hi(t)=h(t)+ε0ωi(t)
(2)
其中ε0为噪声系数。
步骤二使用EMD方法对更新后信号进行次分解并取均值,得到第一个固有模态函数(Intrinsic Mode Function,IMF):
(3)
步骤三计算残余分量:
r1(t)=h(t)-IMF1(t)
(4)
步骤四计算第二个IMF。定义EMD方法分解后的第j个固有模态函数为Ej(·)。即对信号r1(t)+ε0Ej(ωi(t))再重复进行I次分解,得到第二个IMF分量:
(5)
步骤五计算k阶残余分量为:
rk(t)=rk-1(t)-IMFk(t)
(6)
第k+1个IMF为:
(7)
以此类推得到各阶IMF分量,直到残余分量为单调函数时停止分解。当得到K个模态函数时,原始信号则可表示成:
(8)
1.2.3BiLSTM神经网络
双向长短期记忆网络[19](Bi-directional Long Short-Term Memory,BiLSTM)是长短期记忆神经网络[20](Long Short-Term Memory,LSTM)的一个变种。LSTM模型只利用过去的数据信息进行预测,且常导致较早的历史数据信息遗忘。BiLSTM神经网络则可同时利用过去和未来的数据信息模拟预测,已成功应用于语言和图像处理中[21-22]。本研究引入BiLSTM模型对日尺度降水序列进行模拟预测。
LSTM、BiLSTM神经网络拓扑结构见图1。BiLSTM模型的结构由前向和后向的2个LSTM模型组成。在t时刻,输入信息传递到前向和后向的LSTM模型,输出由2个方向的LSTM模型输出共同确定。LSTM模型的基本架构由输入层、输出层和隐含层组成。其中,隐含层的基本单元被称为存储块。存储块包含3个门(输入门(i)、输出门(o)和遗忘门(f))和 1 个单元状态(c),用于控制信息的传递与更新,单元状态储存过去的信息。符号⊕和⊗分别代表 2 个向量的加法运算和点乘运算,σ代表 sigmoid 激活函数,tanh为双曲正切激活函数,计算见式(9)、(10):
图1 LSTM、BiLSTM神经网络拓扑结构
(9)
(10)
隐含层具体计算过程见式(11)—(16):
ft=σ(Wf·[ht-1,xt]+bf)
(11)
i=σ(Wi·[ht-1,xt]+bi)
(12)
ot=σ(Wo·[ht-1,xt]+bo)
(13)
(14)
(15)
ht=ot·tanh(Ct)
(16)
式中 “·”——遗忘门、输入门、输出门和单元状态的权重向量;Wf、Wi、Wo、Wc——遗忘门、输入门、输出门和单元状态的偏置向量;bf、bi、bo、bc——遗忘门、输入门、输出门和单元状态的偏置向量;xt、ht——t时刻输入层的输入、隐含层的输出。
1.2.4评价指标
首先,本文选取准确率(Accuracy)用于评价SVM的分类预测效果。其次,选取泰勒图来综合评价不同降水预测模型的预测能力。该图同时涵盖了均方根误差(Root Mean Square Error,RMSE)、标准差(Standard Deviation,σ)和皮尔逊相关系数(Pearson Correlation Coefficient,PCC)3 个指标,能从 3 个角度更加全面对比不同模型的预测性能[23-24]。其中,RMSE 反映预测精度,PCC 反映预测误差实际情况,σ反映模型的稳定性。
各个评价指标的计算见式(17)—(20):
(17)
(18)
(19)
(20)
2 SVM-CEEMDAN-BiLSTM耦合模型
2.1 模型结构
由于日尺度降水时间序列具有多变性与非线性的特征,单一模型在降水量变化的捕捉上存在局限性[10-11]。本研究首先采用二分类算法SVM对降水序列完成晴雨预测(日降水量大于0.1 mm定义为降雨日,反之为晴),以提高无雨日预测精度与减小模型工作量[25-26]。其次,针对降水序列的多变性,采用模态分解法CEEMDAN将原序列分解成若干不同尺度的IMF分量和1个残余分量,以提高对原降水序列变化规律的捕捉能力[27]。最后,引入BiLSTM网络对每一个分量序列进行降水序列预测。
2.2 模型构建步骤
模型构建分为4步(图2)。
图2 SVM-CEEMDAN-BiLSTM模型结构与构建流程
步骤一晴雨预测。将降水量(Pre)、0 cm地温(Gst)等气象因子时间序列作为输入,并以8∶2比例划分训练集与测试集。将SVM模型遍历寻优进行超参数组合优化,利用训练集拟合模型完成晴雨预测。在预测结果为降雨日时进行下一步骤,否则输出降水量预测结果为0。
步骤二降水序列分解。利用CEEMDAN模态分解法将非平稳的降水时间序列分解成多个本征模态分量IMF(1) 、…、IMF(k) 、…、IMF(n)和1个残余分量。分解后的序列相对稳定,且具有不同的局部特征信息[8]。
步骤三降水量预测。将分解后的降水子序列信息与气象数据作为输入,在归一化处理后以8∶2比例划分为训练集与测试集。通过参数优化,利用BiLSTM分别对分解后的子序列进行预测,获得各个子序列预测结果F(1)、…、F(k)、…、F(n+1)。将各个子序列预测结果累加便可获得最终降水预测结果。
步骤四结果输出。
2.3 BiLSTM模型参数优化
参数设定对BiLSTM模型预测结果的准确性影响较大。BiLSTM网络使用tanh为激活函数、adam为优化函数、RMSE为损失函数,采用Dropout方法防止过拟合。需要调整的超参数为输入、输出、隐含层节点数、训练次数、Dropout大小等。本研究采用试凑试验完成超参数确定。试凑试验指通过固定其他超参数试凑剩余的一个,并进行多次遍历,将不同组合的预测值与实测值进行对比,确定表1所示的超参数。
表1 BiLSTM网络超参数
3 结果与分析
3.1 预测结果对比分析
为探讨SVM-CEEMDAN-BiLSTM模型与LSTM模型的预测效果优劣,选用1957—2018年景德镇站、赣县站逐日气象数据完成降水预测模型的训练和测试,获得模型测试集逐日降水预测结果。图3为景德镇站、赣县站测试集预测与实测结果变化过程,其中左上角小图展示测试集不同模型预测结果变化过程,大图选取测试集中降水序列波动较大的时间段。由图3可知:①预测结果上,本研究提出的SVM-CEEMDAN-BiLSTM模型在预测结果上更接近于实测值,在极大值预测上有较大的提升;②模型对比上,SVM-CEEMDAN-BiLSTM模型在不同站点降水预测结果更接近于观测值。
为验证SVM-CEEMDAN-BiLSTM耦合模型无雨日预测精度,统计了景德镇站、赣县站不同模型测试集无雨日预测结果与实测结果,见表2。在景德镇站,耦合模型的无雨日预测误差率由LSTM模型的73.96%下降至10.71%;在赣县站,无雨日预测误差率由LSTM模型的86.72%下降至10.97%。可见,耦合模型的无雨日预测精度皆高于LSTM等模型。
表2 景德镇站、赣县站不同模型测试集无雨日预测结果
3.2 模型组合对比分析
为进一步验证耦合模型的降水预测效果,选取表3所示的不同组合模型在相同数据集(测试集)下的降水预测结果进行了分析,并选用泰勒图反映不同模型的预测情况。图4为不同组合降水预测对比。图中横轴和纵轴表示不同耦合模型测试集标准差、圆弧轴表示相关系数、弧线表示均方根误差。模型的降水预测效果越好,则在图中可观察到模型图示与观测值直线距离越短。
表3 不同方案降水预测结果的评价指标
a)景德镇站
下面展开2个方面的分析:①组合模型对比,耦合模型与观测点Observation直线距离在景德镇站与赣县站皆最短,表明耦合模型的降水预测效果优于其他组合;②气象站点对比,在赣县站,大部分模型与观测值直线距离小于景德镇站,这表明在赣县站的预测效果优于景德镇站。
由表3可知:①在景德镇站,耦合模型的评价指标RMSE由15.10下降至6.93,降低54.1%,PCC由0.28上升至0.90,提升221.4%,在赣县站,RMSE由10.24下降至3.85,降低62.4%,PCC由0.33上升至0.93,提升181.8%;②CEEMDAN-BiLSTM模型预测误差均小于SVM-BiLSTM模型,这表明CEEMDAN在提升BiLSTM预测效果上强于SVM。
综上,本研究提出的SVM-CEEMDAN-BiLSTM耦合模型在降水预测精度上高于传统的单一模型LSTM、BiLSTM和多项组合方案。
4 结论
为克服降水预测中极大值、无雨日预测精度低等问题,本研究将SVM、CEEMDAN、BiLSTM算法的优势结合起来,构建出SVM-CEEMDAN-BiLSTM耦合模型,并对不同气象站点日尺度降水量进行了预测。主要结论如下:①本研究提出的SVM-CEEMDAN-BiLSTM耦合模型的降水预测结果与LSTM等传统模型预测结果相比,在日尺度降水预测有一定的优势,降水预测结果与实测结果基本一致;②模拟效果上,SVM-CEEMDAN-BiLSTM耦合模型在日尺度降水序列极大值与无雨日方面的预测精度均较高;③从站点角度上看,在赣县站,不同预测模型的降水预测、晴雨预测误差均小于景德镇站,这可能与赣县站年内降水相比景德镇站更为均匀有一定关系。
针对日尺度降水预测,本研究提出的SVM-CEEMDAN-BiLSTM模型有效地提升了预测的准确性。在后续的研究中,将针对耦合模型的输入与输出、气象因子与模型相关性分析做进一步的试验和研究。