发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于经验模态分解的中长期水文预报方法,其方法步骤简单、实现方便且操作简便、使用效果好,能有效解决现有水文预报方法预测精度较低的问题。
为解决上述技术问题,本发明采用的技术方案是:一种基于经验模态分解的中长期水文预报方法,其特征在于该方法包括以下步骤:
步骤一、水文预报模型建立,采用数据处理设备建立所预报流域的水文预报模型,过程如下:
步骤101、经验模态分解:调用经验模态分解模块,对所预报流域的水文时间序列s(t)进行经验模态分解,获得n个本征模态函数分量Fj和一个趋势项rn,且n个本征模态函数分量Fj和一个趋势项rn均为离散函数;
其中,且其包含所预报流域连续M年的年径流量实测数据,(y0+i)为年份且y0为初始年份,为水文时间序列s(t)中的第i个年径流量数据且其为年份(y0+i)的年径流量实测数据,i为整数且i=0、1、2、…、M-1;水文时间序列s(t)的经验模态分解结果为: 式(1)中Fj为第j个本征模态函数分量,j为正整数且j=1、2、…、n;
步骤102、核主成分分析:调用核主成分分析模块,对步骤101中n个本征模态函数分量Fj和一个趋势项rn进行核主成分分析,并从n个本征模态函数分量Fj和一个趋势项rn提取出p个主成分F'k;其中,k为正整数且k=1、2、…、p;
步骤103、训练样本集构建:根据步骤102中提取出的p个主成分F'k构建训练样本集,所述训练样本集中包括m个训练样本;其中,m为正整数且m≤M;m个训练样本分别为所预报流域自年份y1起连续m年的年径流量训练样本,其中y1≥y0;
所述训练样本集中的第h个训练样本记作(xh,yh)且其为年份(y1+h-1)的年径流量训练样本,h为正整数且h为1、2、…、m;其中,xh为第h个训练样本的特征参数,xh={F'1h、F'2h、…、F'ph},其中F'kh为步骤102中提取出的主成分F'k在年份(y1+h-1)时的函数值;yh为第h个训练样本的分类号,yh为水文时间序列s(t)中年份(y1+h-1)的年径流量数据且
步骤104、支持向量机模型建立,过程如下:
步骤1041、核函数选取:选用径向基函数作为支持向量机模型的核函数;
步骤1042、支持向量机模型确定:对惩罚参数C与步骤1041中所选用径向基函数的核参数σ进行确定,并获得支持向量机模型;
步骤105、支持向量机模型训练:将步骤103中所述训练样本集中的m个训练样本,输入到步骤1042中所述支持向量机模型进行训练,训练完成后所获得的支持向量机模型为水文预报模型;
所述水文预报模型的输入量为需预测年份的特征参数且其输出量为需预测年份的年径流量数据;
步骤二、利用步骤105中所述水文预报模型对需预测年份的年径流量数据进行预测。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:步骤1042中对惩罚参数C与步骤1041中所选用径向基函数的核参数σ进行确定时,采用交叉验证法进行确定,并获得优化后的惩罚参数C与核参数σ。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:步骤105中进行支持向量机模型训练后,还需根据训练结果对步骤1042中所述支持向量机模型的预测精度进行评价;
对所述支持向量机模型的预测精度进行评价时,采用相对误差R进行评价,过程如下:
步骤Ⅰ、模型预测精度判断:
先根据公式计算得出当前所评价支持向量机模型的相对误差R;当计算得出的相对误差R≤R0时,说明当前所评价支持向量机模型的预测精度满足设计精度要求,之后进入步骤二;否则,对当前所评价支持向量机模型的惩罚参数C与核参数σ进行调整,并根据调整后的惩罚参数C与核参数σ重新建立支持向量机模型,再进入步骤Ⅱ;
式(2)中,sr(y1+h-1)为年份(y1+h-1)的年径流量实测数据且ss(y1+h-1)为当前所评价支持向量机模型输出的年份(y1+h-1)的年径流量预测数据;R0为预先设定的误差阈值且R0>0;
步骤Ⅱ、新建模型预测精度判断:按照步骤Ⅰ中所述的方法,对重新建立的支持向量机模型的预测精度进行判断;
步骤Ⅲ、多次重复步骤Ⅱ,直至获得预测精度满足设计精度要求的支持向量机模型。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:步骤Ⅰ中对模型预测精度进行判断时,还需根据公式
和分别计算得出当前所评价支持向量机模型的NASH效率系数和相关系数C相关;式(3)和(4)中,sr(y1+h-1)为年份(y1+h-1)的年径流量实测数据且ss(y1+h-1)为当前所评价支持向量机模型输出的年份(y1+h-1)的年径流量预测数据,为所预测流域自年份y1起连续m年的年径流量实测数据的平均值,为当前所评价支持向量机模型输出的自年份y1起连续m年的年径流量预测数据的平均值;
本步骤中,计算得出当前所评价支持向量机模型的NASH效率系数和相关系数C后,还需判断|NASH-1|是否小于ε且C相关是否大于C0:当计算得出的相对误差R≤R0、|NASH-1|≤ε且C相关≥C0时,说明当前所评价支持向量机模型的预测精度满足设计精度要求,之后进入步骤二;否则,对当前所评价支持向量机模型的惩罚参数C与核参数σ进行调整,并根据调整后的惩罚参数C与核参数σ重新建立支持向量机模型,再进入步骤Ⅱ;
其中,ε为预先设定的NASH效率系数的判断阈值且ε>0,C0为预先设定的相关系数C相关的判断阈值且C0>0。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:步骤101中对所预报流域的水文时间序列s(t)进行经验模态分解时,过程如下:
步骤1011、将水文时间序列s(t)定义为临时信号X,且临时信号X=s(t);
步骤1012、对临时信号X进行逐点搜索,找出临时信号X的所有极值点,包括极大值点和极小值点;
步骤1013、根据步骤1012中找出的临时信号X的极大值点和极小值点,且采用三次样条函数拟合出临时信号X的下包络线emin和上包络线emax;
步骤1014、计算得出临时信号X的包络均值
步骤1015、从临时信号X中减去包络均值eav得到信号h1=X-eav,并对临时信号X进行更新,且更新后的临时信号X=h1;
步骤1016、多次重复步骤1012至步骤1015,直至更新后的临时信号X为本征模态函数,便获得第一个本征模态函数分量F1和剩余的差值序列r1=s(t)-F1,其中F1=X;
步骤1017、按照步骤1011至步骤1016所述的方法,对步骤1016中所述的差值序列r1迭代进行经验模态分解,获得一个趋势项rn和n个本征模态函数分量Fj。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:步骤1015中对临时信号X进行第一次更新,对临时信号X进行第一次更新后的信号记作X1,步骤1016中第一个本征模态函数分量F1为对临时信号X进行第T次更新后的信号XT;
步骤1016中,判断第T次更新后的信号XT是否为本征模态函数时,根据公式进行判断,当0.2≤SD≤0.3时,式(4)中为步骤1016中Xt为对临时信号X进行第t次更新后的信号,Xt-1为对临时信号X进行第t-1次更新后的信号,且X0=s(t);
步骤1017中对步骤1016中所述的差值序列r1迭代进行经验模态分解,过程如下:
步骤10171、第二个本征模态函数分量F2及差值序列r2获取:首先,步骤1011中将步骤1016中所述的差值序列r1定义为临时信号X;之后,按照步骤1012至步骤1016中所述的方法,获得第二个本征模态函数分量F2和剩余的差值序列r2,其中r2=r1-F2;
步骤10172、下一个本征模态函数分量Fq获取:首先,步骤1011中将上一个本征模态函数分量Fq-1获取后剩余的差值序列rq-1定义为临时信号X;之后,按照步骤1012至步骤1016中所述的方法,获得第q个本征模态函数分量Fq和差值序列rq,其中rq=rq-1-Fq;其中,q为正整数且q=3、4、…、n;
步骤10173、多次重复步骤10172,直至获得一个趋势项rn和n个本征模态函数分量Fj。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:步骤102中进行核主成分分析时,先根据步骤101中n个本征模态函数分量Fj和一个趋势项rn,获取所预报流域自年份y1起连续m年的年径流量特征参数矩阵V,其中年径流量特征参数矩阵V为m×(n+1)矩阵,年径流量特征参数矩阵V中第h行数据为{F1h、F2h、…、Fnh、rnh},其中Fjh为本征模态函数分量Fj在年份(y1+h-1)时的函数值,rnh为趋势项rn在年份(y1+h-1)时的函数值;之后,调用核主成分分析模块,对年径流量特征参数矩阵V进行降维,并获得降维后的特征参数矩阵Vnew,特征参数矩阵Vnew为m×p矩阵,特征参数矩阵Vnew中第h行数据为{F'1h、F'2h、…、F'ph}。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:调用核主成分分析模块,对年径流量特征参数矩阵V进行降维,过程如下:
步骤1021、将年径流量特征参数矩阵V中的第j列数据{Fj1、Fj2、…、Fjm}记作F″j,将年径流量特征参数矩阵V中的第(n+1)列数据{rn1、rn1、…、rnm}记作F″n+1,其中,j为正整数且j=1、2、…、n;年径流量特征参数矩阵V={F″1、F″2、…、F″n、F″n+1};
步骤1022、通过非线性映射函数Φ将年径流量特征参数矩阵V={F″1、F″2、…、F″n、F″n+1}映射到高维特征空间,并计算出核矩阵K,核矩阵K为T×T矩阵,其中T=n+1;非线性映射函数Φ所采用的核函数为高斯径向基函数;
步骤1023、根据方程K α=T λα (5),计算得出核矩阵K的特征值λ1、λ2、…、λT和对应的特征向量α1、α2、…、αT;式(5)中,α=[α1、α2、…、αT]T,[]T表示矩阵的转置,特征值λ1、λ2、…、λT由大到小排列且λ1>λ2>…>λT;
步骤1024、根据公式计算得出p,并从步骤1023中所述的特征值λ1、λ2、…、λT和对应的特征向量α1、α2、…、αT,选取出p个特征值λ1、λ2、…、λp和对应的特征向量α1、α2、…、αp;
式(6)中,η0为预先设定的比较阈值且η0=0.85~0.99;
步骤1025、根据步骤1024中选取的p个特征向量α1、α2、…、αp,对年径流量特征参数矩阵V进行降维,降维后的特征参数矩阵Vnew={v1、v2、…、vp},其中式(7)中,K(F″d,F″)为步骤1022中所采用高斯径向基函数的回归函数,其中d为正整数且d=1、2、…、T。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:步骤103中完成训练样本集构建后,还需对所述训练样本集中的m个训练样本进行分析;
对m个训练样本进行分析时,对m个训练样本的特征参数xh进行分析,并得出所预报流域自年份y1起连续m年的特征参数xh的变化规律,即引起特征参数xh变化的所有影响因素及各影响因素的影响关系;
步骤二中对需预测年份的年径流量数据进行预测时,先对需预测年份的特征参数进行确定,再根据所确定的需预测年份的特征参数,并利用步骤105中所述水文预报模型对需预测年份的年径流量数据进行预测;
对需预测年份的特征参数进行确定时,先对需预测年份存在的引起特征参数变化的所有影响因素和各影响因素的影响程度进行确定,之后再根据分析得出的各影响因素的影响关系,并结合自年份y1起连续m年的特征参数xh,对需预测年份的特征参数进行确定。
上述一种基于经验模态分解的中长期水文预报方法,其特征是:步骤1042中对惩罚参数C与步骤1041中所选用径向基函数的核参数σ进行确定时,0<C≤1000,σ=D-1,0.01<D≤50。
本发明与现有技术相比具有以下优点:
1、方法步骤简单、设计合理且实现方便,投入成本较低。
2、将经验模态分解(Empirical Mode Decomposition,简称EMD)、核主成分分析(Kernel principal component analysis,简称KPCA)和支持向量机模型(Support VectorMachine,简称SVM)耦合,建立了针对复杂水文时间序列的水文预报模型:即在应用EMD揭示复杂水文时间序列的多重演化模式的基础上,将水文时间序列分解为不同水文演化分量序列(即n个本征模态函数分量Fj和一个趋势项rn),应用KPCA模型筛选和重构预报模式集合,作为SVM预测模型的多元输入,最后输出水文时间序列的预报值。依据流域水文特性,不同时期水文演化为外界因素与内在因素相互重叠则形成复合过程,应用EMD方法将水文时间序列分解为多个不同频率尺度的演化分量和低频项,这样便能简便分析出各分量代表的不同时间尺度的演化过程,不同变化频率在长期的演化模式的变化特征,及影响水文过程长期演化的主要因子与各演化模式之间的响应关系;之后,根据各演化模式分量的变化特性,应用KPCA提取影响水文序列变化的主要模式分量,剔除水文演化中无贡献率的干扰因素;然后,依据水文演化分量与水文时间序列间的映射关系,根据SVM模型模拟和预测要求,重新筛选和重构成新的互相无关的演化分量,并根据确定的演化模式组合,然后建立多元输入的核主成分-支持向量机模型,对水文时间序列进行模拟预测,得到水文时间序列的预测值。其中,预报的时间尺度范围为水文时间序列长度的2-3倍。考虑到不同时间尺度上序列变化的时频规律,建立可以反映水文变化机理的非线性水文预报模型,本发明所建立模型的模拟及预报精度明显提高,预报更加合理,且预报时长为模拟时段的2-3倍,避免过度模拟、预测预报精度降低较快等问题,并且模型参数采用交叉验证法自动优化,提高预报效率,具有更强的实用性能。综上,本发明掌握水文序列变化的整体演化特征及流域水文演化过程中外界和内在变化,确定主要影响因素,序列整体存在的时频特征;然后针对不同演化模式的时频变化过程,外界影响因素与水文演化分量之间的响应关系,即对应分析外界干扰与分解后水文演化分量变化的关系;最后将水文序列整体、内部演化模式与外界干扰的变化特性进行整体,得到水文序列变化的多时间尺度变化特征(即训练样本中的特征参数),实际进行预测时,采用所建立的水文预报模型,并以特征参数作为输入量进行预测。因而,本发明所建立的模型能揭示受多重因素作用以及复杂水文时间序列所具有的多时间尺度、多频率、动态变化、自记忆性等特征,模型预报时段长,具有更高的预测准确性和实践应用价值。
3、以NASH效率系数、自相关系数和相对误差作为模拟预测精度的判断标准,进行模型参数确定,因而所建立模型的预测精度高,能有效解决单一指标评价结果很难反映和指导长时期的水文序列模拟的问题。
4、使用效果好,针对现有水文预报模型存在的问题,建立经验模态分解与核主成分分析、支持向量机模型的耦合智能预报模型,应用于复杂性较强的水文过程预报中。依据流域水文特性,分析多个不同频率尺度的水文演化分量、低频项的演化过程,及主要影响因素与各演化分量之间的响应关系,从整体和局部把握水文演化过程,为水文预报模型奠定良好的机理基础。根据各演化分量的变化特性,提取影响水文序列变化的主要分量,剔除水文演化中无贡献率的干扰因素。减少支持向量机模型预报过程中的盲目性,因而预报时段长度和预报精度有较大提高。相比传统的预报方法,本发明所建立的中长期水文预报模型具有预报精度高、预报有效时段长、可以定量的分析和描述不同时间尺度水文演化分量对水文预报的不确定性影响,因此预报结果更加客观合理,具有更强的扩展性和实用价值。综上,本发明经经验模态分解获得本征模态函数分量和趋势项,并经过核主成分分析剔除重复相关及噪声项分量的影响,且在满足累计方差贡献率要求的同时,达到较好的数据降维效果,然后进行模型参数优化和模拟计算,最终得到较好的预报精度,能克服现有水文预报模型对水文演化非平稳性、水文演化机理考虑不足等问题,应用于复杂性水文过程的中长期预报中。由于中长期水文预报是流域水资源管理的重要依据。全面准确的把握未来水文情势变化,有助于合理科学的解决流域水资源紧缺、水资源开发利用不合理等问题。由于水文变化长期受到气候变化及人类活动等多重因素影响,水文系统内部发生变化,水文演化过程呈现复杂和多变特征,传统水文预报方法的预报效果难以满足社会经济发展的需求。而本发明所建立的水文预报模型能体现出很好的非线性信息处理能力,对非线性的水文时间序列具有较好的拟合和预报能力。
综上所述,本发明方法步骤简单、实现方便且操作简便、使用效果好,能有效解决现有水文预报方法预测精度较低的问题。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
如图1所示的一种基于经验模态分解的中长期水文预报方法,包括以下步骤:
步骤一、水文预报模型建立,采用数据处理设备建立所预报流域的水文预报模型,过程如下:
步骤101、经验模态分解:调用经验模态分解模块,对所预报流域的水文时间序列s(t)进行经验模态分解,获得n个本征模态函数分量Fj和一个趋势项rn,且n个本征模态函数分量Fj和一个趋势项rn均为离散函数。
其中,且其包含所预报流域连续M年的年径流量实测数据,(y0+i)为年份且y0为初始年份,为水文时间序列s(t)中的第i个年径流量数据且其为年份(y0+i)的年径流量实测数据,i为整数且i=0、1、2、…、M-1;水文时间序列s(t)的经验模态分解结果为: 式(1)中Fj为第j个本征模态函数分量,j为正整数且j=1、2、…、n。
本实施例中,步骤101中对所预报流域的水文时间序列s(t)进行经验模态分解时,过程如下:
步骤1011、将水文时间序列s(t)定义为临时信号X,且临时信号X=s(t)。
步骤1012、对临时信号X进行逐点搜索,找出临时信号X的所有极值点,包括极大值点和极小值点。
步骤1013、根据步骤1012中找出的临时信号X的极大值点和极小值点,且采用三次样条函数拟合出临时信号X的下包络线emin和上包络线emax;
步骤1014、计算得出临时信号X的包络均值
步骤1015、从临时信号X中减去包络均值eav得到信号h1=X-eav,并对临时信号X进行更新,且更新后的临时信号X=h1。
步骤1016、多次重复步骤1012至步骤1015,直至更新后的临时信号X为本征模态函数,便获得第一个本征模态函数分量F1和剩余的差值序列r1=s(t)-F1,其中F1=X。
步骤1017、按照步骤1011至步骤1016所述的方法,对步骤1016中所述的差值序列r1迭代进行经验模态分解,获得一个趋势项rn和n个本征模态函数分量Fj。
本实施例中,步骤1015中对临时信号X进行第一次更新,对临时信号X进行第一次更新后的信号记作X1,步骤1016中第一个本征模态函数分量F1为对临时信号X进行第T次更新后的信号XT。
步骤1016中,判断第T次更新后的信号XT是否为本征模态函数时,根据公式进行判断,当0.2≤SD≤0.3时,式(4)中为步骤1016中Xt为对临时信号X进行第t次更新后的信号,Xt-1为对临时信号X进行第t-1次更新后的信号,且X0=s(t)。
本实施例中,步骤1017中对步骤1016中所述的差值序列r1迭代进行经验模态分解,过程如下:
步骤10171、第二个本征模态函数分量F2及差值序列r2获取:首先,步骤1011中将步骤1016中所述的差值序列r1定义为临时信号X;之后,按照步骤1012至步骤1016中所述的方法,获得第二个本征模态函数分量F2和剩余的差值序列r2,其中r2=r1-F2;
步骤10172、下一个本征模态函数分量Fq获取:首先,步骤1011中将上一个本征模态函数分量Fq-1获取后剩余的差值序列rq-1定义为临时信号X;之后,按照步骤1012至步骤1016中所述的方法,获得第q个本征模态函数分量Fq和差值序列rq,其中rq=rq-1-Fq;其中,q为正整数且q=3、4、…、n;
步骤10173、多次重复步骤10172,直至获得一个趋势项rn和n个本征模态函数分量Fj。
实际使用时,经验模态分解方法对实际信号进行时频分析时的假设条件为:信号由多个本征模态信号(Intrinsic Mode Signal,简称IMS)或本征模态函数(IntrinsicMode Function,简称IMF)组成,如果本征模态信号相互重叠则形成复合信号。应用经验模态分解方法(即EMD方法),可以将水文时间序列分解为多个本征模态函数分量(即IMF分量)和趋势项,IMF分量代表不同特征尺度(频率)的数据序列,可以是线性的也可以是非线性的。经验模态分解得到的n个本征模态函数分量Fj趋和势项rn均为随年份变化的函数。
步骤102、核主成分分析:调用核主成分分析模块,对步骤101中n个本征模态函数分量Fj和一个趋势项rn进行核主成分分析,并从n个本征模态函数分量Fj和一个趋势项rn提取出p个主成分F'k;其中,k为正整数且k=1、2、…、p。其中,p为正整数且p<(n+1)。
步骤103、训练样本集构建:根据步骤102中提取出的p个主成分F'k构建训练样本集,所述训练样本集中包括m个训练样本;其中,m为正整数且m≤M;m个训练样本分别为所预报流域自年份y1起连续m年的年径流量训练样本,其中y1≥y0。
所述训练样本集中的第h个训练样本记作(xh,yh)且其为年份(y1+h-1)的年径流量训练样本,h为正整数且h为1、2、…、m;其中,xh为第h个训练样本的特征参数,xh={F'1h、F'2h、…、F'ph},其中F'kh为步骤102中提取出的主成分F'k在年份(y1+h-1)时的函数值;yh为第h个训练样本的分类号,yh为水文时间序列s(t)中年份(y1+h-1)的年径流量数据且
本实施例中,步骤102中进行核主成分分析时,先根据步骤101中n个本征模态函数分量Fj和一个趋势项rn,获取所预报流域自年份y1起连续m年的年径流量特征参数矩阵V,其中年径流量特征参数矩阵V为m×(n+1)矩阵,年径流量特征参数矩阵V中第h行数据为{F1h、F2h、…、Fnh、rnh},其中Fjh为本征模态函数分量Fj在年份(y1+h-1)时的函数值,rnh为趋势项rn在年份(y1+h-1)时的函数值;之后,调用核主成分分析模块,对年径流量特征参数矩阵V进行降维,并获得降维后的特征参数矩阵Vnew,特征参数矩阵Vnew为m×p矩阵,特征参数矩阵Vnew中第h行数据为{F'1h、F'2h、…、F'ph}。
本实施例中,调用核主成分分析模块,对年径流量特征参数矩阵V进行降维,过程如下:
步骤1021、将年径流量特征参数矩阵V中的第j列数据{Fj1、Fj2、…、Fjm}记作F″j,将年径流量特征参数矩阵V中的第(n+1)列数据{rn1、rn1、…、rnm}记作F″n+1,其中,j为正整数且j=1、2、…、n;年径流量特征参数矩阵V={F″1、F″2、…、F″n、F″n+1}。
步骤1022、通过非线性映射函数Φ将年径流量特征参数矩阵V={F″1、F″2、…、F″n、F″n+1}映射到高维特征空间,并计算出核矩阵K,核矩阵K为T×T矩阵,其中T=n+1;非线性映射函数Φ所采用的核函数为高斯径向基函数。
此处,所采用的核函数记作Kdg=K(F″d,F″g),其中d为正整数且d=1、2、…、T,g为正整数且g=1、2、…、T。
其中,
步骤1023、根据方程K α=T λα (5),计算得出核矩阵K的特征值λ1、λ2、…、λT和对应的特征向量α1、α2、…、αT;式(5)中,α=[α1、α2、…、αT]T,[]T表示矩阵的转置,特征值λ1、λ2、…、λT由大到小排列且λ1>λ2>…>λT。
步骤1024、根据公式计算得出p,并从步骤1023中所述的特征值λ1、λ2、…、λT和对应的特征向量α1、α2、…、αT,选取出p个特征值λ1、λ2、…、λp和对应的特征向量α1、α2、…、αp。
式(6)中,η0为预先设定的比较阈值且η0=0.85~0.99。
式(6)中,η为特征值的方差贡献率,当时,即可将前p个特征值所对应的特征向量构成的空间作为低维投影空间,完成p个主成分提取。
步骤1025、根据步骤1024中选取的p个特征向量α1、α2、…、αp,对年径流量特征参数矩阵V进行降维,降维后的特征参数矩阵Vnew={v1、v2、…、vp},其中式(7)中,K(F″d,F″)为步骤1022中所采用高斯径向基函数的回归函数,其中d为正整数且d=1、2、…、T。
其中,vk为特征参数矩阵Vnew中的第k列数据。核函数Kdg=K(F″d,F″g)的回归函数记作式中α'd和b均为回归参数。
步骤104、支持向量机模型建立,过程如下:
步骤1041、核函数选取:选用径向基函数作为支持向量机模型的核函数。
此处,所述径向基函数为高斯径向基函数。
步骤1042、支持向量机模型确定:对惩罚参数C与步骤1041中所选用径向基函数的核参数σ进行确定,并获得支持向量机模型。
步骤105、支持向量机模型训练:将步骤103中所述训练样本集中的m个训练样本,输入到步骤1042中所述支持向量机模型进行训练,训练完成后所获得的支持向量机模型为水文预报模型。
所述水文预报模型的输入量为需预测年份的特征参数且其输出量为需预测年份的年径流量数据。
本实施例中,特征参数矩阵Vnew中第h行数据为{F'1h、F'2h、…、F'ph}记作F* h。
本实施例中,步骤1041中所采用的径向基函数为径向基函数Khf=K(F* h,F* f)的回归函数记作K(F* h,F*),其中h为正整数且h为1、2、…、m,f为正整数且f为1、2、…、m。步骤105中所获得支持向量机模型的回归函数记作:其中α* h和b*均为回归参数,b*为偏置项。
本实施例中,步骤1042中对惩罚参数C与步骤1041中所选用径向基函数的核参数σ进行确定时,采用交叉验证法进行确定,并获得优化后的惩罚参数C与核参数σ。
在所述训练样本集确定后,支持向量机模型的性能取决于其核函数的类型和两个超参数的选择,两个超参数分别为惩罚因子C与核参数σ,支持向量机模型的分类精度与超参数的选择相关,核参数σ2表示径向基函数的宽度且其与支持向量机模型的光滑性能有很大关系;惩罚因子C也称为正则化参数。控制对错误样本的惩罚程度,其与支持向量机模型的复杂度以及训练样本的匹配程度紧密相关。
本实施例中,步骤1042中对惩罚参数C与步骤1041中所选用径向基函数的核参数σ进行确定时,0<C≤1000,σ=D-1,0.01<D≤50。
实际对惩罚参数C与所选用径向基函数的核参数σ进行确定时,也可以采用网格搜索法进行确定,并利用步骤103中所述训练样本集中的m个训练样本,且采用K折交叉验证法对所建立的支持向量机模型进行验证。
本实施例中,步骤105中进行支持向量机模型训练后,还需根据训练结果对步骤1042中所述支持向量机模型的预测精度进行评价;
对所述支持向量机模型的预测精度进行评价时,采用相对误差R进行评价,过程如下:
步骤Ⅰ、模型预测精度判断:
先根据公式计算得出当前所评价支持向量机模型的相对误差R;当计算得出的相对误差R≤R0时,说明当前所评价支持向量机模型的预测精度满足设计精度要求,之后进入步骤二;否则,对当前所评价支持向量机模型的惩罚参数C与核参数σ进行调整,并根据调整后的惩罚参数C与核参数σ重新建立支持向量机模型,再进入步骤Ⅱ。
式(2)中,sr(y1+h-1)为年份(y1+h-1)的年径流量实测数据且ss(y1+h-1)为当前所评价支持向量机模型输出的年份(y1+h-1)的年径流量预测数据;R0为预先设定的误差阈值且R0>0。
步骤Ⅱ、新建模型预测精度判断:按照步骤Ⅰ中所述的方法,对重新建立的支持向量机模型的预测精度进行判断。
步骤Ⅲ、多次重复步骤Ⅱ,直至获得预测精度满足设计精度要求的支持向量机模型。
本实施例中,步骤Ⅰ中对模型预测精度进行判断时,还需根据公式
和分别计算得出当前所评价支持向量机模型的NASH效率系数和相关系数C相关;式(3)和(4)中,sr(y1+h-1)为年份(y1+h-1)的年径流量实测数据且ss(y1+h-1)为当前所评价支持向量机模型输出的年份(y1+h-1)的年径流量预测数据,为所预测流域自年份y1起连续m年的年径流量实测数据的平均值,为当前所评价支持向量机模型输出的自年份y1起连续m年的年径流量预测数据的平均值。
本步骤中,计算得出当前所评价支持向量机模型的NASH效率系数和相关系数C后,还需判断|NASH-1|是否小于ε且C相关是否大于C0:当计算得出的相对误差R≤R0、|NASH-1|≤ε且C相关≥C0时,说明当前所评价支持向量机模型的预测精度满足设计精度要求,之后进入步骤二;否则,对当前所评价支持向量机模型的惩罚参数C与核参数σ进行调整,并根据调整后的惩罚参数C与核参数σ重新建立支持向量机模型,再进入步骤Ⅱ;
其中,ε为预先设定的NASH效率系数的判断阈值且ε>0,C0为预先设定的相关系数C相关的判断阈值且C0>0。
考虑到水文序列非平稳性和阶段性趋势变化,单一指标评价结果很难反映和指导长时期的水文序列模拟,因而,本发明专利申请中,采用相对误差R、NASH效率系数和相关系数C相关综合进行评价。其中,相对误差R的值越小,表明所评价支持向量机模型的模拟结果(即预测结果)与实测的径流总量越接近。NASH效率系数表示所评价支持向量机模型输出的径流预报值与实测值之间的吻合程度,NASH效率系数越接近1,则所评价支持向量机模型的模拟流量过程越接近观测,模拟与实测序列的相关性较好,同时模拟误差较小。相关系数C相关越大,表明模型所评价支持向量机模型的模拟结果与观测序列的对应关系越好。
本实施例中,所检测的支持向量机模型为KPCA-LSSVM水文预报模型。其中,KPCA为核主成分分析的英文简称,LSSVM为最小二乘支持向量机的英文简称。
步骤二、利用步骤105中所述水文预报模型对需预测年份的年径流量数据进行预测。
本实施例中,所述数据处理设备为台式PC机。
本实施例中,步骤103中完成训练样本集构建后,还需对所述训练样本集中的m个训练样本进行分析。
对m个训练样本进行分析时,对m个训练样本的特征参数xh进行分析,并得出所预报流域自年份y1起连续m年的特征参数xh的变化规律,即引起特征参数xh变化的所有影响因素及各影响因素的影响关系。
步骤二中对需预测年份的年径流量数据进行预测时,先对需预测年份的特征参数进行确定,再根据所确定的需预测年份的特征参数,并利用步骤105中所述水文预报模型对需预测年份的年径流量数据进行预测。
对需预测年份的特征参数进行确定时,先对需预测年份存在的引起特征参数变化的所有影响因素和各影响因素的影响程度进行确定,之后再根据分析得出的各影响因素的影响关系,并结合自年份y1起连续m年的特征参数xh,对需预测年份的特征参数进行确定。
本实施例中,步骤101中所预报流域为黄河花园口水文站,水文时间序列s(t)为1919年~2004年共计86年的年径流量统计数据,详见图2。黄河花园口水文站位于黄河中、下游的分界点附近,上距河源约4696km,下距河口767.7km,集水面积73万km2,占黄河流域总面积的97%,是黄河下游最重要的水沙控制站。近年来,由于黄河上、中流域气候变化和水资源开发利用强度提高等原因,黄河下游水量减少,河道过洪能力锐减。区域水文过程受人类活动干扰较大,水文时间序列的变化规律复杂,水文预报的不确定性强。
本实施例中,初始年份y0=1919年,M=86年。首先,采用经验模态分解(EMD)方法分析在多重因素长期影响下,年径流数据的多时间尺度变化情况,并基于经验模态分解(EMD)后的分解序列(具体是5个本征模态函数分量Fj和一个趋势项r5),之后建立KPCA-LSSVM水文预报模型。
如图3所示,对采用经验模态分解方法对图2中水文时间序列进行分解后所获得的第一个本征模态函数分量F1、第二个本征模态函数分量F2、第三个本征模态函数分量F3、第四个本征模态函数分量F4和第五个本征模态函数分量F5分部记作IMF1、IMF2、IMF3、IMF4和IMF5,分解后所获得的趋势项为趋势项r5。图3中的横坐标表示年份,其中0代表初始年份(即1919年),其中,100表示2019年,上述5个本征模态函数分量Fj代表不同时间尺度的年径流量数据演化过程,5个本征模态函数分量Fj有不同的变化频率,并且变化频率在长期的演化过程中有所改变。趋势项r5说明径流量序列自上世纪90年代,已经较长时间处于缓慢下降过程中。IMF1分量变化频率较高,认为是随机因素影响的结果。IMF2、IMF3、IMF4、IMF5和趋势项r5(即低频项)具有较大时间尺度的变化过程,其反映了年径流量与影响其长期演化的主要因子(即影响因素)之间的响应关系,即影响因素的影响关系。从长期变化过程看,不同频段的演化过程均从上世纪90年代开始发生较大变化,年径流序列(即水文时间序列)的各IMF分量的振动频率和振幅均出现明显减弱现象,主要变化周期呈现衰减过程。结合已有研究成果(主要包括曹鸿兴、郑小康、杨志峰等,《黄河天然径流量变化趋势及其影响分析》[J],北京师范大学学报(自然科学版),2009,45(1):80-85;和郑红星、刘昌明,《黄河流域水资源演化模式分析》[J],地理学报,2004,59(2):267-273),认为径流序列变化与其影响因素作用相对应,由于黄河流域水资源开发利用强度的提高、流域水资源需求量逐年增加、产汇流下垫面条件改变以及近几十年的气候变化等因素的影响,已经使年径流序列的演化模式发生改变。
本实施例中,通过核主成分分析,选取累计方差贡献率大于90%(即η0=0.9)的特征重构,即所提取的p个主成分F'k分别为IMF2、IMF3、IMF4、IMF5和趋势项r5,以所提取的p个主成分F'k作为所建立的KPCA-LSSVM水文预报模型的输入项。首先,采用所建立的KPCA-LSSVM水文预报模型进行30年(即1919年~1948年)模拟,即m=30,选取30个训练样本进行模拟,并相应进行模型参数调整,即对惩罚参数C与核参数σ进行调整。本实施例中,惩罚参数c优选值为28.2378,模拟结果详见图4。并且,采用所建立的KPCA-LSSVM水文预报模型进行56年(即1948年~2004年)预测,预测结果详见图5。同时,采用相对误差R、NASH效率系数和相关系数C相关进行结果评定。依据《水文情报预报规范》(SL250-2000,水文情报预报规范[S])要求,径流预报以实测径流的误差20%作为许可精度,评价所建立KPCA-LSSVM水文预报模型的模拟与预测效果是否满足要求,详见表1:
表1中长期水文预报模型模拟及预测结果评价表
此处,将本发明所建立KPCA-LSSVM水文预报模型(即基于经验模态分解的多元非线性预报模型)与一般单输入单输出SVM预报模型的预测结果进行对比,对比结果详见表2:
表2中长期水文预报模型模拟及预测结果检验
由表2可以看出:本发明所建立KPCA-LSSVM水文预报模型的预测结果明显优于一般SVM模型模型,主要原因在于水文时间序列变化是人类活动、气候变化影响等叠加作用,变化特性十分复杂,水文预报的不确定性大。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。