具体实施方式
本发明提出的水质预测模型,通过使用小波变换等数据处理方法,将水质时间序列变换到多个尺度上,有效的减小了瞬变数据对建模的影响;其次,结合遗传算法对支持向量回归机的参数进行寻优,比传统的基于多次单因素实验寻找最优参数的方法更高效;最后,用对平稳序列具有良好预测效果的灰色模型,对分解后的尺度序列进行预测。通过少量的数据建立灰色预测模型,避免模型受到历史数据变化趋势的影响,从而提高预测精度。
下面将结合附图,对本发明的优选实施例进行详细的描述。
图1为本发明所述水质预测方法的流程图,如图所示,本方法包括5个步骤,1)对采集的数据集进行小波分解;2)将步骤一中经过分解处理得到的细节子序列进行平移,并进行相空间重构;3)根据步骤二中经过相空间重构的细节子序列建立各细节子序列的预测模型;4)根据步骤一中经过分解处理得到的尺度子序列建立尺度子序列预测模型;5)输入数据进行预测,将得到的细节子序列的预测值进行反向平移,并将尺度序列模型和细节序列模型得到的预测值进行重构,得到最终预测结果。
小波多分辨率分析的主要思想是用不同的分辨率来逐级逼近待分析序列。任意一个初始时间序列为S(t),t=1,2,…,n。通过高通和低通滤波器对S(t)的一步分解可以将其变换为低频部分cA1和高频部分cD1。可以继续对低频部分cA1进行分解,当进行尺度1,2,…,N步分解后,就得到一个低频部分cAN和N个高频部分cD1,cD2,…,cDN。为使得分解序列与初始时间序列在时间上具有一一对应的关系,根据小波多分辨分析的分解和重构特性,将低频部分cAN和高频部分cD1,cD2,…,cDN进行单支重构,可以得到低频部分的尺度子序列AN和高频部分的细节子序列D1,D2,…,DN。分解后细节系数D1为随机分量,呈现无规律的波动;系数D2,…,DN数量级较小,有较强的规律性,一定程度上表示原始曲线的峰值;尺度系数AN波形平滑,数值较大,表示原始序列的趋势走向。
初始时间序列S(t)可以由分解序列AN,D1,D2,…,DN表示:
由小波变换对原始的时间序列S(t)进行多分辨分解,得到N阶分解下的尺度子序列AN,细节子序列D1,D2,…,DN。
在各子序列分别进行模型训练前,细节子序列D1,D2,…,DN中数据由于存在多位小数,且存在数量级的差别,为减小小数部分的拟合预测误差、降低数量级差,将序列中的数据统一平移到正数区域。若原始序列为Di={d1,d2,d3,…,dn},i=1,2,…,N,对序列做平移处理后的序列为:
Di +={d1+Q,d2+Q,d3+Q,…,dn+Q}Q∈N+,i=1,2,…,N
式中平移因子Q的值为使得序列Di +中的所有数据为正数的最小正整数。
细节子序列{x1,x2,x3,…,xn}进行模型训练前,需根据Takens理论进行相空间重构,转化成矩阵的形式,获得数据之间的关联关系来得到尽可能多的信息量:
式中m为重构相空间的嵌入维数。重构相空间的嵌入维数m反映重构矩阵的信息量,不同的m值对模型的预测效果有不同的影响,可以根据预测误差值的大小来优化选取相空间的嵌入维数。
设
为预测的目标值,将之前的目标值X
t={x
t-m,x
t-m+1,x
t-m+2,…,x
t-1}作为相关量,建立自相关输入X
t与输出
之间一一映射的关系:f:R
m→R,使得:
在本发明所述步骤中用到了灰色理论模型GM:
GM(1,1)模型可以用一个单变量的一阶微分方程表示:
已知拥有n个时间序列数据的原始序列为:x(0)=(x(0)(1),x(0)(2),...,x(0)(n))
首先进行一阶累加生成新的序列:
x(1)=(x(1)(1),x(1)(2),...,x(1)(n))
其中: 根据一阶微分方程得到估计参数向量 其中a是发展灰数参数,u是控制灰数参数,可以得到:
其中 微分方程的解为:
对
进行逆累加生成还原,可得到
预测值,即为GM(1,1)预测模型:
在本发明中还用到了支持向量回归算法:若给出一个训练样本集{(Xi,Yi)|i=1,2,…,l},其中Xi∈RN为N维向量,Yi∈R为相对应的输出变量。支持向量回归的基本思想是将非线性的原始数据Xi,i=1,2,…,l,映射到高维的特征空间H(Hibert空间),即达到将低维空间的非线性问题转化为高维空间的线性问题。当给出新的测试样本数据时,然后找出一个最优回归超平面(OptimalHyper-plane),能够通过回归超平面函数得到目标值。
其中ε-SVR支持向量机求解最优回归超平面的问题,为一个二次凸规划问题:
上两式中ω,ω∈R
N为可调的权值函数;C为惩罚因子,为模型的复杂度与拟合精度之间的折衷;ε为不敏感损失值,是拟合允许的误差;b为阈值;
为X
i在高维特征空间的映射值;ξ
i,
是超出误差ε的溢出样本点偏差值。
由Lagrange优化方法将(1)式转化为对偶优化问题:
高维空间中的向量点积
可以由满足Mercer条件的对称核函数K(X
i,X
j)代替,从而巧妙地降低了非线性映射的计算量。常用的核函数有多项式核函数、径向基核函数和Sigmoid核函数等。由于径向基核函数在非线性系统识别方面更具有优势,本发明因此选取径向基核函数:
最后得到最优回归超平面的近似函数:
并且再由KTT条件可以求得阈值:
式中NSV为支持向量总数,SV为支持向量集,说明最优回归超平面的构建是基于支持向量。
在本发明中,结合遗传算法对支持向量回归机的参数进行寻优,比传统的基于多次单因素实验寻找最优参数的方法更高效。
遗传算法是以自然选择和遗传理论为基础,模拟了生物进化过程中适者生存规则与群体内部染色体的随机信息交换机制,在模式定理和积木块假设保证能够找到全局最优解的条件下,能自适应的控制搜索过程的高效全局搜索算法。本发明基于遗传算法的思想,建立适应度函数,来解决支持向量机参数寻优这类多元单峰值的优化问题。
K-折交叉检验及遗传算法的适应度函数:
在K-折交叉检验中,首先将训练集分为K个数量相同的子集,然后取其中的一个子集作为模型测试集,剩下的K-1个子集作为模型训练集。这样重复K次,使得训练集中的所有样本都能够被模型预测一次。通过交叉验证分割训练集进行训练测试的方法,充分验证了训练集中各数据的特性,使得预测结果更好地反映了模型实际效果,因此能够防止被选择的模型出现过拟合的情况。目前在进行支持向量回归模型训练的时候,也采用交叉验证的方法。
通过遗传算法优化支持向量回归模型的参数时,需要比较种群个体的适应度大小,这里适应度函数定义为负的均方误差(MSE):
式中N为训练样本的数目;Y
i为实际值;
为使用交叉验证方法获得的预测值。
遗传算法参数优化步骤为:
惩罚因子用C表示、损失值用E表示、径向基核函数的参数用G表示。
步骤1:设置初始值:最大进化代数、种群规模和交叉验证折数K等。随机初始化一个种群Init_Pop,进行模型训练,求得种群中各个体适应度值Valu_F;
步骤2:根据父代种群Init_Pop中个体,计算最高适应度,并选取适应度最高时的C、E、G值,然后将它们分别作为当前最佳适应度值Best_Fit、最佳Best_C、Best_E、Best_G值;
步骤3:选择算子:从种群Init_Pop中选出一部分适应度高的优良个体构成一个新的种群;
步骤4:交叉算子:基于步骤3得到的种群,完成种群中的个体染色体的交叉重组,形成一个新的种群;
步骤5:变异算子:基于步骤4得到的种群,完成种群中个体染色体的基因突变,而增加群体多样性,形成一个新的种群,然后进行模型训练,求得到该种群中各个体适应度值Valu_M;
步骤6:形成子代种群:比较种群Init_Pop和步骤5得到的种群个体适应度值Valu_F和Valu_M,将步骤5得到种群中适应度值高的个体替代种群Init_Pop中适应度低的个体,得到适应度水平更高的新种群Init_Pop。此时Init_Pop更新作为子代,并求的该子代种群此时的最高适应度Max_Fit和取最高适应度的C、E、G值。
步骤7:比较步骤6中的最高适应度Max_Fit与当前最佳适应度值Best_Fit,若Max_Fit大于Best_Fit,则更新最佳适应度值Best_Fit和最佳Best_C、Best_E、Best_G值;否则不做任何操作,转向下一步继续执行。
步骤8:未达到最大进化代数,转向步骤3;否则算法停止,求得最优Best_C、Best_E、Best_G值。
下面通过具体实施例对本发明所述预测方法的步骤进行详细说明,图2为预测模型建立过程示意图,其过程如图所示:
步骤1在构建水质预测模型时,首先对数据集进行小波分解,首先选择合适的小波基函数。研究表明,Daubechies小波基能较好地分析时间序列问题,故本发明选取DbN小波函数。进行小波分解时,不同的分解级数会影响模型构建的消耗与预测的精度,需根据实验以最小拟合误差为目标给出。若初始的水质时间序列为S(t),t=1,2,…,n,首先将S(t)进行N阶小波分解,得到一个低频序列cAN和N个高频序列cD1,cD2,…,cDN。再将分解序列进行单支重构,得到重构子序列AN,D1,D2,…,DN。
步骤2将步骤1得到的细节子序列D1,D2,…,DN按公式:
D
i +={d
1+Q,d
2+Q,d
3+Q,…,d
n+Q}Q∈N+,i=1,2,…,N,分别平移到正数区域。再根据相空间重构理论,将其按
的形式进行相空间重构,即转化成矩阵的形式。
步骤3将经过相空间重构的细节子序列分别输入支持向量机模型,结合遗传算法进行参数优化,建立各细节子序列的预测模型。采用窗口滑动的形式,将尺度子序列xt-m,xt-m+1,xt-m+2,…,xt-1输入灰色理论模型训练,预测t时刻的值,其中m为嵌入维数,建立尺度子序列预测模型。
步骤4在进行预测分析时,根据步骤1和步骤2对数据进行处理,然后使用步骤3得到的子序列预测模型进行预测。如输入的向量为Xt={xt-m,xt-m+1,xt-m+2,…,xt-1}时,
根据 此时可以得到第t时刻的尺度子序列的预测值:
根据
式的最优回归函数,此时可以得到第t时刻的细节子序列的预测值:
步骤5最后,将细节子序列进行反向平移,将尺度序列模型及细节序列模型得到预测的值根据公式
进行重构,最终得到预测结果。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。