基于阴阳对算法优化的随机森林与支持向量机组合模型及径流预测实例
2019-03-28,
,
(1.云南省水文水资源局文山分局,云南文山663099;2.云南省文山州水务局,云南文山663099)
提高径流预测精度一直是水文预测预报中的热点和难点。目前,除常规回归分析、数理统计等方法用于径流预测外,BP、GRNN、RBF等神经网络法[1-3]、支持向量机法[4-5]、集对分析法[6-7]、投影寻踪回归法[8]、小波分解混合法[9-10]以及随机森林法[11]等非常规方法尝试用于径流预测,并取得了较好的预测效果。然而,由于受自然条件、人类活动等众多确定性因素和随机因素的影响,致使径流的形成和变化过程异常复杂,仅依靠单一的常规或非常规方法进行径流预测,往往难以达到理想的预测效果和精度。上述各种常规和非常规预测方法均有其优点及不足,组合预测法就是利用组合预测的思想,有效综合各组合单元优势,同时克服组合单元在应用上的不足,从而达到提高组合模型预测精度和泛化能力的目的[12]。随机森林(Random Forest,RF)是由Leo Breiman提出的一种集成机器学习方法,可应用于分类问题、回归问题以及特征选择问题,其主要利用Bootsrap重抽样方法从原始样本中抽取多个样本,对每个Bootsrap样本进行决策树建模,然后组合多棵决策树通过投票方式得出最终评价结果[13]。由于RF是基于决策树分类器的融合算法,可以看成由很多弱分类器(决策树)集成的强分类器,可有效避免“过拟合”和“欠拟合”现象的发生,对解决多变量预测具有很好的效果,被誉为当前最好的机器学习算法之一[14-15],已在各领域及径流预测[11]中得到应用。支持向量机(Support Vector Machines,SVM)基于结构风险最小化原则,能有效避免维数灾、过拟合等问题,具有高容错性、智能化和自学习等优点,已在各行业领域及水文预测预报[16-17]中得到广泛应用。在实际应用中,RF决策树数量ntree、分裂属性个数mtry和SVM惩罚因子C、核函数参数g等参数是决定RF、SVM预测性能的关键。目前普遍采用试凑法或网络搜索法[12,16]确定RF、SVM关键参数,但预测效果往往不理想。
为有效提高径流预测精度,本文提出一种基于阴阳对(Yin-Yang-pair Optimization,YYPO)算法优化的RF-SVM组合预测方法,利用YYPO算法对RF、SVM关键参数和组合权重系数进行优化,构建YYPO-RF-SVM预测模型,并构建基于YYPO算法优化关键参数的YYPO-RF、YYPO-SVM模型及人工试凑法确定关键参数的RF、SVM模型作对比分析模型,以云南省某水文站年径流预测为例进行实例研究,旨在验证YYPO-RF-SVM模型在提高径流预测精度应用中的可行性和有效性。
1 YYPO-RF-SVM预测模型
1.1 阴阳对优化算法
阴阳对优化(YYPO)算法是Varun Punnathanam等人于2016年基于阴阳平衡原理提出的一种新型元启发式优化算法。该算法基于2个点集(P1和P2),其中P1设计为专注于开发变量空间,P2设计为专注于探索变量空间,通过开发与探索2个矛盾行为之间的相互协调、补充达到平衡,并利用分裂、存储2个阶段进行迭代更新来求解最优化问题,目前已在函数、多目标优化等领域得到应用,文献[18]证明了YYPO算法具有较好的收敛速度和全局极值寻优能力,寻优效果优于传统遗传算法、粒子群优化算法等。参考文献[18],YYPO算法数学描述简述如下。
1.1.1设置待优化
设置待优化问题维度D,随机初始化2个点集P1={P11,P12,P13,…,P1D}和P2={P21,P22,P23,…,P2D}。对点集P1和P2进行归一化处理,即0≤(P1j,P2j)≤1,其中,j=1,2,3,…,D。
1.1.2分裂阶段
a) 单向分裂:在YYPO算法中,点P的二维相同副本被存储为S,其可以被认为是尺寸为2D×D的矩阵。S中每个点的一个变量用下面的公式修改:
(1)
式中 下标——点号;上标——正被修改的决策变量号;r——在0和1之间的随机数,对于S中任意点的每个变量产生新的r,共需2D×D个0和1之间的随机数;δ——搜索半径。
b)D向分裂:在YYPO算法中,点P的2D相同副本被存储为S,其可以被认为是2D×D大小的矩阵,生成包含长度为D的二维随机二进制矩阵B,使得每个二进制串是唯一的。随后,使用以下等式来修改任意点的每个变量:
(2)
式中 下标——点号(或行);上标——决策变量号(或列);r、δ意义同上;二进制矩阵B通过随机选择0~2D-1之间的唯一整数并转换成长度为D的二进制串来组成。
1.1.3存储阶段
存储阶段是在满足所需数量的存储更新之后启动,且该存储阶段包含2I个点(I为存储阶段的更新次数大小),对应于在分裂阶段前每个更新中添加的2个点P1、P2。若存储中的最佳点比点P1、P2更合适,则与点P1、P2交换。存储阶段因此保持精英主义并且确保算法的单调收敛(即在任何迭代中确定的最佳点不会丢失)。在存储阶段结束时,存储矩阵设置为空,并且在其指定范围Imin和Imax(Imin和Imax分别为存储更新的最小数和最大数)内随机生成存储更新I的新值。搜索半径δ1和δ2的更新公式如下:
(3)
式中δ1、δ2——点集P1、P2的搜索半径;a——扩张/收缩因子。
YYPO算法的特点在于随机生成的点集数量取决于问题维度,针对高维优化问题将生成较多的点,这种自适应能力能有效解决不同维度问题并获得待优化问题的最优解。
1.2 随机森林算法
随机森林(RF)是由Leo Breiman提出的一种集成机器学习方法,该法通过随机的方法建立一个由许多决策树组成的森林,每棵决策树之间没有关联;每棵决策树均采用bootstrap方法进行采样,随机产生k个训练集,利用每个训练集生成对应的决策树;然后再从所有M个决策属性中随机抽取m个属性进行预测;在训练过程中,一般m的取值维持不变;训练结束后,当测试样本输入时,每棵决策树均对测试样本进行预测,并将所有决策树中出现最多的投票结果作为最终预测结果,具体算法步骤见文献[19-20]。
假设对于一个测试样本x,第l棵决策树的输出为ftree,l(x)=i,i=1,2,…,c,即为其对应的输出值,l=1,2,…,L,L为RF中的决策树棵数,则RF的输出可表示为:
fRF(x)=argmax{I(ftree,l(x)=i)}i=1,2,…,c
(4)
式中I(·)——满足括号中表达式的样本个数。
研究表明,决策树数量ntree和分裂属性个数mtry的合理选取是提高RF预测精度的关键,ntree设置过小易使RF训练不充分而导致模型“欠拟合”,设置太大又易使RF过度训而导致“过拟合”;同样,mtry设置太小易使RF过度训练而导致“过拟合”,设置太大会使得RF训练不充分而导致模型“欠拟合”。“过拟合”“欠拟合”均会降低RF模型的预测或分类性能[21]。
1.3 支持向量机
SVM原理是通过核函数将低维空间中非线性回归问题映射到高维特征空间,然后在高维特征空间中求解凸优化问题。设含有l个训练样本的集合为{(xi,yi),i=1,2,…,l},xi(xi∈Rd)为第i个训练样本输入列向量,yi∈R为对应输出值[22-23]。则在高维特征空间中建立的线性回归函数为:
f(x)=wΦ(x)+b
(5)
式中Φ(x)——非线性映射函数;w——超平面的法向量;b——超平面的偏移量。
(6)
式中ε——线性不敏感损失函数。
最终回归函数为:
(7)
选择径向基核函数作为SVM核函数,径向基核函数表达式为:
K(x,xi)=exp(-g‖x-xi‖2)
(8)
式中,g>0。
研究表明,惩罚因子C、核函数参数g和不敏感系数ε的合理选取决定着混合核SVM性能。C取值过小则易导致网络欠拟合,训练样本误差大,取值过大则网络过拟合,导致网络泛化能力差;g取值小则拟合误差小,但过小的g值会导致模型过拟合;ε值用于控制模型的预测能力,ε值小易导致模型欠拟合,ε值大则易导致模型过拟合。“过拟合”“欠拟合”均会降低SVM模型的预测或分类性能。
1.4 YYPO-RF-SVM预测实现步骤
本文预测模型构建基本思路是:基于YYPO算法及RF、SVM单元,构建YYPO-RF-SVM组合预测模型,确定组合模型待优化目标函数、关键参数及组合权重系数的搜索范围,利用YYPO算法同时对YYPO-RF-SVM模型决策树数量ntree、分裂属性个数mtry、惩罚因子C、核函数参数g、不敏感系数ε和权重系数ωRF进行优化,将优化获得的最佳参数和权重系数代入组合模型进行预测。YYPO-RF-SVM组合模型预测实现步骤可归纳如下。
Step1合理划分实例训练样本、检验样本和预测样本。设定YYPO-RF-SVM模型决策树数量ntree、分裂属性个数mtry、惩罚因子C、核函数参数g、不敏感系数ε和RF模型单元权重系数ωRF的搜寻范围。
Step2确定组合模型适应度函数。选用检验样本的平均相对误差绝对值之和作为适应度函数。适应度函数f描述如下:
(9)
Step3初始化参数。设置YYPO算法最大迭代次数T,存储更新最大、最小数Imax和Imin,扩展/收缩因子a,初始搜索半径δ1=0.5、δ2=0.5。设置当前迭代次数i=0,利用YYPO算法对式(9)进行优化。
Step4随机初始化2个点集P1={P11,P12,P13,…,P1D}和P2={P21,P22,P23,…,P2D},并初始化点集P1、P2搜索半径δ1和δ2;在Imin和Imax之间随机生成I。
Step5利用目标函数评估点集P1、P2的适应度值,若P1优于P2,则P1、P2互换;存储P1、P2,并令i=i+1。
Step6利用式(1)、(2)分别执行P1、P2分裂和存储操作,并获得更新的P1、P2以及对应的适应度值;若存储中的最佳点比点P1、P2更合适,则与点P1、P2交换。
Step7利用式(3)更新点集P1、P2的搜索半径δ1和δ2。
Step8存储矩阵设置为空,并在其指定范围Imin和Imax内随机生成存储更新I的新值,存储阶段结束。
Step9判断算法是否达到最大迭代次数T,若是,输出最佳点适应度值及所处空间位置,即待优化问题最优解,算法结束;否则重复Step4—9。
Step10利用YYPO算法优化获得的决策树数量ntree、分裂属性个数mtry、惩罚因子C、核函数参数g、不敏感系数ε和权重系数ωRF代入YYPO-RF-SVM模型对预测样本进行预测。
2 应用实例
2.1 数据来源及分析
实例数据来源于云南省某水文站1952—2005年共54 a的水文资料。经分析,该水文站年均径流量与同期1—11月月径流存在相关关系,见表1。
表1 年均径流量与同年1—11月月相关系数
注:加粗内容为所选输入向量序列
从表1来看,该水文站年均径流量与同期1—11月月径流相关系数在0.333~0.822之间,具有较好的相关性。本文选取6—10月月均径流量作为影响因子预测同期年均径流量,并利用该站1952—1981年实测资料作为训练样本,1982—1995年作为检验样本,1996—2005年作为预测样本。
2.2 参数设置
YYPO算法最大迭代次数T=200,存储更新最小数Imin=1、最大数Imax=4,扩展/收缩因子a=50,初始搜索半径δ1=0.5、δ2=0.5。YYPO-RF-SVM模型待优化参数搜索空间设置为:决策树数量ntree∈[1,1000],分裂属性个数mtry∈[1,30],惩罚因子C∈[2-10,210],核函数参数g∈[2-10,210],不敏感系数ε∈[2-10,210],交叉验证参数V=5,权重系数ωRF∈[0,1]。利用YYPO算法优化RF、SVM的参数搜索空间同YYPO-RF-SVM模型。
2.3 模型构建及预测
基于上述分析,构建5输入1输出的年径流预测模型(对SVM输入数据需进行[0,1]归一化处理,RF输入数据无需处理)。选取平均相对误差绝对值MRE、最大相对误差绝对值MaxRE和确定性系数DC作为评价指标,利用YYPO-RF-SVM、YYPO-RF、YYPO-SVM、RF、SVM模型对实例年径流进行预测,见表2。绘制训练—检验—预测的相对误差及径流效果,见图1、2。
2.4 结果优化
利用YYPO算法对RF-SVM组合模型关键参数和权重系数进行优化,结果为:决策树数量ntree=17.171 0,分裂属性个数mtry=3.863 2,惩罚因子C=24.8616、核函数参数g=2-5.6558、不敏感系数ε=2-6.3376、权重系数ωRF=0.301 0。依据表1、2及图1、2可以得出以下结论。
a) YYPO-RF-SVM模型对实例训练、检验和预测样本的MRE分别为2.76%、4.64%和3.02%,精度高于YYPO-SVM、YYPO-RF模型,远高于RF、SVM模型,表明本文提出的YYPO-RF-SVM模型具有更高的预测精度和泛化能力,不但可作为径流预测的有效工具,而且可为相关预测研究提供参考。
表2 年径流训练—检验—预测结果及其比较
注:加粗内容为最优预测指标值
图1 实例年径流训练—检验—预测相对误差效果
图2 实例年径流训练—检验—预测效果
b) 从YYPO算法优化RF-SVM模型获得的权重系数ωRF=0.301 0来看,SVM模型单元占主导地位;但从YYPO-RF-SVM模型较好的拟合、预测效果来看,RF、SVM模型单元具有较好的互补性,预测模型能够有效综合RF、SVM模型单元优点而克服二者在应用上的不足,从而提高YYPO-RF-SVM模型的预测精度和泛化能力。
c) 从MaxRE和DC评价指标来看,除SVM模型拟合训练样本的MaxRE略优于YYPO-RF-SVM模型外,其他无论是检验样本、预测样本还是序列DC,YYPO-RF-SVM模型均优于其他4种模型,再次验证了YYPO-RF-SVM模型较好的拟合、预测效果。
d) 从同一模型对实例训练、检验和预测的MRE和图1、2来看,RF、SVM模型训练样本的精度远优于检验样本和预测样本,呈“过拟合”特征,表明利用人工试凑的方法很难获得理想的RF、SVM模型参数,从而难以获得好的预测精度。
3 结论
a) 基于阴阳对(YYPO)算法、随机森林(RF)和支持向量机(SVM)三者优点,提出YYPO-RF-SVM预测模型及方法。本文提出的模型及方法可为水文预测预报及相关预测研究提供参考和借鉴。
b) 通过云南省某水文站年径流预测实例对YYPO-RF-SVM模型的验证,并与YYPO-RF、YYPO-SVM模型及RF、SVM模型的预测结果作对比。结果表明,YYPO-RF-SVM模型具有较好的预测精度和泛化能力,能够有效综合RF、SVM模型单元优点,克服各自在应用上的不足,将其用于径流预测是可行的,是提高径流预测精度的有效方法。