基于择优分类的水质预测方法与流程

文档序号:16001293发布日期:2018-11-20 19:29阅读:312来源:国知局

本发明是一种基于择优分类的水质预测方法,涉及机器学习与水质预测领域。



背景技术:

水是人类经济社会发展的必要资源。我国水资源问题尤为突出:人均总量远低于平均水平,全国各大水系受污染程度严重。水污染防治一直是国家和社会关注的重点,其中水质预测是水资源污染控制的基础工作,准确预测水体污染物浓度的变化趋势尤为重要,而建立可靠的水质预测模型是水污染预测防治的关键。通过预测可以为我们赢得对污染的应急处理时间。

具体来说水质预测是建立在往常已经得到的水质数据,通过分析归纳特征与规律,预测未来的水质变化的研究。目前我国常用的水质预测方法存在训练速度慢,预测精度不足等缺点。随着机器学习领域的发展,我们发现可以使用机器学习的模型解决当前预测方法存在的问题,提高预测精度。

通过构造训练样本,以此来训练不同的机器学习模型,我们可以选择效果最好的模型,以此获得较为准确的预测值。该方法在技术上是可行的,同时具有很强的实际价值。



技术实现要素:

本申请提出了基于择优分类的水质预测方法,对于输入的数据,使用择优分类器选出对于该数据,Adaboost水质预测模型、RVM水质预测模型、BP神经网络水质预测模型中预测效果最好的模型,使用该模型进行准确的预测。

基于择优分类的水质预测方法,包括如下步骤:

步骤1:采集水质数据;

步骤2:对水质数据与对应的时间节点进行归一化处理;

步骤3:构造训练集Training与验证集Validation;

步骤4:分别构造RVM水质预测模型、BP神经网络水质预测模型、Adaboost水质预测模型;

步骤5:使用步骤3中构造的训练集分别训练步骤4中构造的RVM水质预测模型、BP神经网络水质预测模型、Adaboost水质预测模型;

步骤6:使用步骤5中训练好的三种水质预测模型在步骤3中构造的验证集Validation上进行预测,以此预测结果构造SVM择优分类器的训练集Training;

步骤7:构造SVM择优分类器,使用步骤6中构造出的训练集Training训练SVM择优分类器;

步骤8:输入新的数据,先通过步骤7中已经得到的SVM择优分类器选择出RVM水质预测模型、BP神经网络水质预测模型、Adaboost水质预测模型中最合适该数据的预测模型,再根据选择出的预测模型得到最终预测值。

进一步地,所述步骤1采集水质数据的具体方式为,监测一定时间内某一水域,获得某一水质指标按时间排序的数据集合W={w1,w2,…wi,…wN},其中N表示水质数据集合的元素数量,wi为第i个时间节点的水质指标数据。同时获得时间节点的集合T,T={t1,t2,…,ti,…,tN},其中N表示时间节点数据集合的元素数量,ti为第i个时间节点的时间。

进一步地,所述步骤2中,对采集到的水质数据进行整理,然后使用标准差标准化方法对每个时间节点的水质数据进行归一化处理:

其中,wi表示归一化之前第i个时间节点的水质数据,表示归一化后第i个时间节点的水质数据,μw与σw分别表示该水质数据样本的均值与标准差;

同样使用标准差标准化的方法对每个时间节点进行归一化处理:

其中,ti表示归一化之前第i个时间节点的时间,表示归一化后第i个时间节点的时间,μt与σt分别表示时间节点数据集合的均值与标准差。

最终获得归一化后的时间序列水质数据集合W*={w1*,w2*,…wi*,…wN*},其中N表示归一化后水质数据集合的元素数量,wi*为第i个时间节点归一化后的水质指标数据;和归一化后的时间节点数据集合其中N表示时间节点数据集合的元素数量,为归一化后的第i个时间节点的时间。

进一步地,所述步骤3中,将水质数据按照时间顺序划分为训练集Training、验证集Validation,其划分比例为70%和30%;其构造训练集、验证集的具体步骤如下:

步骤3-1:构造训练集合Training={(xi,yi)};设置d为窗口大小,xi表示第i个时间节点下的训练样本的输入,表示归一化后第i个时间节点的水质指标数据,为归一化后的第i个时间节点的时间;样本在第i个时间节点下的训练标签为yi,令表示归一化后第i个时间节点的水质指标数据;

步骤3-2:将剩余30%的水质数据以步骤3-1的方法构造验证集合Validation={(xi,yi)}。

进一步地,所述步骤4中分别设置三种模型的相关参数,具体步骤如下:

步骤4-1:构造RVM水质预测模型,具体步骤如下:

步骤4-1-1:设置RVM预测模型的核函数K(x,xi)为RBF核函数:

其中,单调函数k(||x-xi||)表示空间内任意一个坐标到第i个时间节点下的输入xi的欧式距离。γ为函数宽度;

步骤4-1-2:设置模型所需的适合当前数据集的最优参数噪声方差σ2

步骤4-1-3:设置训练轮数为1000;

步骤4-2:构造BP神经网络水质预测模型,具体步骤如下:

步骤4-2-1:设置神经网络的结构;设置1个输入层,2个隐含层,1个输出层;输入层设置2d个神经元,每个隐含层设置d个神经元,输出层设置一个神经元;其中,d为步骤3中的窗口大小。层与层之间采用全连接的方式连接;

步骤4-2-2:设置当前层神经元对下一层神经元的初始影响权重为0-1之间的随机数,表示第k层第i个神经元与第k+1层第j个神经元的影响权重;

步骤4-2-3:设置激活函数为Sigmoid函数,其形式为:a表示当前神经层的输入,f(a)表示传递到下一层神经层的输出;

步骤4-2-4:设置训练轮次为1000;

步骤4-3:构造Adaboost水质预测模型,具体步骤如下:

步骤4-3-1:初始化训练集的权值分布n表示训练集中的样本数,其中表示第i个样本对应的初始权值;

步骤4-3-2:设置训练轮数为1000。

进一步地,所述步骤5的训练步骤如下:

步骤5-1:训练RVM水质预测模型,用步骤3中构造的训练集Training训练步骤4-1中构造的RVM模型,得到超参数α与噪声方差σ2,具体步骤如下:

步骤5-1-1:初始化超参数向量α与噪声方差σ2

其中y=[y1…yj…yn]T,yi表示第i个时间点训练样本的输出;Ψ=[ψ1…ψj…ψn]表示权值向量,ψj表示第j个权值系数,Φ=[Φ(x1),Φ(x2),…,Φ(xn)]T,n为训练样本的数量,Φ(xn)=[1,K(xn,x1),K(xn,x2)…K(xn,xj)…K(xn,xn)]T,xj表示第j个时间节点下的输入,K(xn,xj)表示核函数;α=[α0,α1…αi…αn]T,αi是超参数向量中第i个值;

步骤5-1-2:计算权重向量Ψ的后验方差∑与均值θ;权重向量Ψ的后验概率分布为:x=[x1…xi…xn]T,xi为第i个时间节点下的输入。其中后验方差与均值分别为:

其中,A=diag(α0,α1,…,αN),表示元素是α0,α1,…,αn的对角矩阵;

步骤5-1-3:不断迭代1000次,更新αi,θi表示第i个均值θ,为方差∑的对角线上的第i个元素;删除超参数α中大于或等于αmax(本方法取e9)所对应的权重系数,通过最大似然方法得到最终超参数αMP与噪声方差将步骤3中构造好的训练集Training输入;

步骤5-1-4:完成模型的训练;

步骤5-2:训练BP神经网络水质预测模型,用步骤3中构造的训练集Training训练步骤4-2中构造好的BP神经网络水质预测模型,输入xi,通过模型得到对应输出的与期望的输出yi做对比;然后使用反向传播算法更新相邻神经元之间的影响权重,训练步骤如下:

步骤5-2-1:根据公式计算得到每个神经元的输出,其中表示第k层第j个神经元的输出,表示第k-1层第i个神经元对第k层第j个神经元的影响权重,m代表第k-1层神经元的个数,f表示激活函数;

步骤5-2-2:根据公式来计算实际数据与期望输出的误差,其中表示第i个时间节点下模型输出层的输出,即表示yi表示第i个时间节点下的期望输出,利用反向传播算法更新每条连接线的权值

步骤5-2-3:不断迭代1000次,得到每两相邻的神经元之间的最终影响权值

步骤5-2-4:完成模型训练;

步骤5-3:训练Adaboost水质预测模型,用步骤3中构造的训练集Training训练步骤4-3中构造好的Adaboost水质预测模型,通过迭代训练得到训练集的最终权值分布;训练步骤如下:

步骤5-3-1:不断迭代1000次,对每一轮次的权值Dm,m=1,2,…,1000,通过使用具有权值分布的训练数据集通过回归树学习模型得到基本回归分类器:Gm(x),当输入为xi时,模型输出基本回归分类器在训练集上根据公式计算回归模型的权重系数其中εm表示基本回归分类器Gm(x)在训练集上的回归误差率,yi是样本的标签,n表示样本数,表示当时I=1,时I=0;通过规范化因子重新计算并更新得到训练集中的权值其中,表示第i个水质数据对应的第m+1轮训练得到的权值;

步骤5-3-2:根据步骤5-3-1中训练m=1000次得到的1000个权重系数及其对应的基础回归模型Gm(x),x={x1,x2…xn};线性组合出最终模型:

步骤5-3-3:完成模型的训练。

进一步地,所述步骤6中,分别使用训练好的RVM水质预测模型、BP神经网络水质预测模型、Adaboost水质预测模型在验证集Validation上进行预测,构造SVM择优分类器的训练集,其SVM择优分类器训练集的构造步骤如下:

步骤6-1:对于验证集中每一个时间节点i,利用步骤5中训练好的RVM模型得到该时间点下的水质预测值P1i,利用步骤5中训练好的BP神经网络模型得到该时间点下的水质预测值P2i,利用步骤5中训练好的Adaboost模型得到该时间点下的水质预测值P3i;

步骤6-2:将P1i,P2i,P3i代入函数用来选择预测效果最好的预测模型;构造标签集合L={l1,l2,…,li,…lN},li=f(i)∈{1,2,3}表示第i个时间节点下预测效果最好的模型;当预测值P1i效果最佳,即RVM为预测效果最好模型时,li=1;当预测值P2i效果最佳,即BP神经网络为预测效果最好模型时,li=2;当预测值P3i效果最佳,即Adaboost模型为预测效果最好模型,li=3;

步骤6-3:构造SVM择优分类器的训练集Training′={(xi,li)},xi为第i个时间节点下的样本输入,li表示第i个时间节点下的样本标签。

进一步地,所述步骤7分类器的构造与训练的步骤如下:

步骤7-1:将步骤6-3中的训练集Training′={(xi,li)},作为SVM择优分类器的训练集;

步骤7-2:使用RBF核函数作为分类器的核函数:

其中,xc表示每个分类平面的中心点,单调函数k(||x-xc||)表示任意一种训练的输入到每个分类平面中心点的距离,ξ为函数的宽度参数,设置ξ;用核函数将空间映射到更高维度来分类非线性数据;

步骤7-3:找到最优超平面,完成模型训练。

进一步地,步骤8分为如下步骤:

步骤8-1:使用历史数据,得到输入值Ii=[(wi-1,ti-1),(wi-2,ti-2),…,(wi-2,ti-d)],d表示为窗口大小,wi表示第i个时间节点下的水质数据,ti表示第i个时间节点时间;

步骤8-2:将向量Ii输入步骤7中已经训练好的SVM择优分类器,得到标签li,li∈{1,2,3}代表适合该数据的最优预测模型;当li=1时,选择RVM水质预测模型;当li=2时,选择BP神经网络水质预测模型;当li=3时,选择Adaboost水质预测模型;

步骤8-3:对应已经得到的li,将输入值Ii带入步骤5中训练好的最优模型,得到预测值Pi,将Pi作为最终预测值。

本申请对历史的水质指标数据进行归一化处理后,构造训练集,使用训练集分别对Adaboost水质预测模型、RVM水质预测模型、BP神经网络水质预测模型进行训练。然后使用一部分的数据集分别使用三种模型进行预测,结合每个数据使用不同模型得到的实际值与预测值的对比,训练基于SVM的择优分类器。对于新的数据,通过择优分类器可以选出最佳模型,使用最佳模型得到效果最好的预测值。此方法可以极大的提高预测的准确率。

附图说明

图1为本申请所述基于择优分类的水质预测方法流程示意图。

具体实施方式

下面结合说明书附图对本发明的技术方案做进一步的详细说明。

基于择优分类的水质预测方法,包括如下步骤:

步骤1:采集水质数据。

监测一定时间内某一水域,获得某一水质指标按时间排序的数据集合W={w1,w2,…wi,…wN},其中N表示水质数据集合的元素数量,wi为第i个时间节点的水质指标数据。同时获得时间节点的集合T,T={t1,t2,…,ti,…,tN},其中N表示时间节点数据集合的元素数量,ti为第i个时间节点的时间。

步骤2:对水质数据与对应的时间节点进行归一化处理。

对采集到的水质数据进行整理,然后使用标准差标准化方法对每个时间节点的水质数据进行归一化处理:

其中,wi表示归一化之前第i个时间节点的水质数据,表示归一化后第i个时间节点的水质数据,μw与σw分别表示该水质数据样本的均值与标准差。

同样使用标准差标准化的方法对每个时间节点进行归一化处理:

其中,ti表示归一化之前第i个时间节点的时间,表示归一化后第i个时间节点的时间,μt与σt分别表示时间节点数据集合的均值与标准差。

最终获得归一化后的时间序列水质数据集合W*={w1*,w2*,…wi*,…wN*},其中N表示归一化后水质数据集合的元素数量,wi*为第i个时间节点归一化后的水质指标数据;和归一化后的时间节点数据集合其中N表示时间节点数据集合的元素数量,为归一化后的第i个时间节点的时间。

步骤3:构造训练集Training与验证集Validation。

将水质数据按照时间顺序划分为训练集Training、验证集Validation,其划分比例为70%和30%;其构造训练集、验证集的具体步骤如下:

步骤3-1:构造训练集合Training={(xi,yi)};设置d为窗口大小,xi表示第i个时间节点下的训练样本的输入,表示归一化后第i个时间节点的水质指标数据,为归一化后的第i个时间节点的时间;样本在第i个时间节点下的训练标签为yi,令表示归一化后第i个时间节点的水质指标数据。

步骤3-2:将剩余30%的水质数据以步骤3-1的方法构造验证集合Validation={(xi,yi)}。

步骤4:分别构造RVM水质预测模型、BP神经网络水质预测模型、Adaboost水质预测模型。

具体步骤如下:

步骤4-1:构造RVM水质预测模型,具体步骤如下:

步骤4-1-1:设置RVM预测模型的核函数K(x,xi)为RBF核函数:

其中,单调函数k(||x-xi||)表示空间内任意一个坐标到第i个时间节点下的输入xi的欧式距离。γ为函数宽度。

步骤4-1-2:设置模型所需的适合当前数据集的最优参数噪声方差σ2

步骤4-1-3:设置训练轮数为1000。

步骤4-2:构造BP神经网络水质预测模型,具体步骤如下。

步骤4-2-1:设置神经网络的结构;设置1个输入层,2个隐含层,1个输出层;输入层设置2d个神经元,每个隐含层设置d个神经元,输出层设置一个神经元;其中,d为步骤3中的窗口大小。层与层之间采用全连接的方式连接。

步骤4-2-2:设置当前层神经元对下一层神经元的初始影响权重为0-1之间的随机数,表示第k层第i个神经元与第k+1层第j个神经元的影响权重。

步骤4-2-3:设置激活函数为Sigmoid函数,其形式为:a表示当前神经层的输入,f(a)表示传递到下一层神经层的输出。

步骤4-2-4:设置训练轮次为1000。

步骤4-3:构造Adaboost水质预测模型,具体步骤如下:

步骤4-3-1:初始化训练集的权值分布n表示训练集中的样本数,其中表示第i个样本对应的初始权值。

步骤4-3-2:设置训练轮数为1000。

步骤5:使用步骤3中构造的训练集分别训练步骤4中构造的RVM水质预测模型、BP神经网络水质预测模型、Adaboost水质预测模型。

所述训练步骤如下:

步骤5-1:训练RVM水质预测模型,用步骤3中构造的训练集Training训练步骤4-1中构造的RVM模型,得到超参数α与噪声方差σ2,具体步骤如下:

步骤5-1-1:初始化超参数向量α与噪声方差σ2

其中y=[y1…yj…yn]T,yi表示第i个时间点训练样本的输出;Ψ=[ψ1…ψj…ψn]表示权值向量,ψj表示第j个权值系数,Φ=[Φ(x1),Φ(x2),…,Φ(xn)]T,n为训练样本的数量,Φ(xn)=[1,K(xn,x1),K(xn,x2)…K(xn,xj)…K(xn,xn)]T,xj表示第j个时间节点下的输入,K(xn,xj)表示核函数;α=[α0,α1…αi…αn]T,αi是超参数向量中第i个值。

步骤5-1-2:计算权重向量Ψ的后验方差∑与均值θ;权重向量Ψ的后验概率分布为:x=[x1…xi…xn]T,xi为第i个时间节点下的输入。其中后验方差与均值分别为。

其中,A=diag(α0,α1,…,αN),表示元素是α0,α1,…,αn的对角矩阵。

步骤5-1-3:不断迭代1000次,更新αi,θi表示第i个均值θ,为方差∑的对角线上的第i个元素;删除超参数α中大于或等于αmax(本方法取e9)所对应的权重系数,通过最大似然方法得到最终超参数αMP与噪声方差将步骤3中构造好的训练集Training输入。

步骤5-1-4:完成模型的训练。

步骤5-2:训练BP神经网络水质预测模型,用步骤3中构造的训练集Training训练步骤4-2中构造好的BP神经网络水质预测模型,输入xi,通过模型得到对应输出的与期望的输出yi做对比;然后使用反向传播算法更新相邻神经元之间的影响权重,训练步骤如下:

步骤5-2-1:根据公式计算得到每个神经元的输出,其中表示第k层第j个神经元的输出,表示第k-1层第i个神经元对第k层第j个神经元的影响权重,m代表第k-1层神经元的个数,f表示激活函数;

步骤5-2-2:根据公式来计算实际数据与期望输出的误差,其中表示第i个时间节点下模型输出层的输出,即表示yi表示第i个时间节点下的期望输出,利用反向传播算法更新每条连接线的权值

步骤5-2-3:不断迭代1000次,得到每两相邻的神经元之间的最终影响权值

步骤5-2-4:完成模型训练。

步骤5-3:训练Adaboost水质预测模型,用步骤3中构造的训练集Training训练步骤4-3中构造好的Adaboost水质预测模型,通过迭代训练得到训练集的最终权值分布;训练步骤如下:

步骤5-3-1:不断迭代1000次,对每一轮次的权值Dm,m=1,2,…,1000,通过使用具有权值分布的训练数据集通过回归树学习模型得到基本回归分类器:Gm(x),当输入为xi时,模型输出基本回归分类器在训练集上根据公式计算回归模型的权重系数其中εm表示基本回归分类器Gm(x)在训练集上的回归误差率,yi是样本的标签,n表示样本数,表示当时I=1,时I=0;通过规范化因子重新计算并更新得到训练集中的权值其中,表示第i个水质数据对应的第m+1轮训练得到的权值。

步骤5-3-2:根据步骤5-3-1中训练m=1000次得到的1000个权重系数及其对应的基础回归模型Gm(x),x={x1,x2…xn};线性组合出最终模型:

步骤5-3-3:完成模型的训练。

步骤6:使用步骤5中训练好的三种水质预测模型在步骤3中构造的验证集Validation上进行预测,以此预测结果构造SVM择优分类器的训练集Training。

分别使用训练好的RVM水质预测模型、BP神经网络水质预测模型、Adaboost水质预测模型在验证集Validation上进行预测,构造SVM择优分类器的训练集,其SVM择优分类器训练集的构造步骤如下:

步骤6-1:对于验证集中每一个时间节点i,利用步骤5中训练好的RVM模型得到该时间点下的水质预测值P1i,利用步骤5中训练好的BP神经网络模型得到该时间点下的水质预测值P2i,利用步骤5中训练好的Adaboost模型得到该时间点下的水质预测值P3i。

步骤6-2:将P1i,P2i,P3i代入函数用来选择预测效果最好的预测模型。构造标签集合L={l1,l2,…,li,lN},li=f(i)∈{1,2,3}表示第i个时间节点下预测效果最好的模型。当预测值P1i效果最佳,即RVM为预测效果最好模型时,li=1。当预测值P2i效果最佳,即BP神经网络为预测效果最好模型时,li=2;当预测值P3i效果最佳,即Adaboost模型为预测效果最好模型,li=3。

步骤6-3:构造SVM择优分类器的训练集Training′={(xi,li)},xi为第i个时间节点下的样本输入,li表示第i个时间节点下的样本标签。

步骤7:构造SVM择优分类器,使用步骤6中构造出的训练集Training训练SVM择优分类器。

分类器的构造与训练的步骤如下:

步骤7-1:将步骤6-3中的训练集Training′={(xi,li)},作为SVM择优分类器的训练集。

步骤7-2:使用RBF核函数作为分类器的核函数:

其中,xc表示每个分类平面的中心点,单调函数k(||x-xc||)表示任意一种训练的输入到每个分类平面中心点的距离,ξ为函数的宽度参数,设置ξ;用核函数将空间映射到更高维度来分类非线性数据。

步骤7-3:找到最优超平面,完成模型训练。

步骤8:输入新的数据,先通过步骤7中已经得到的SVM择优分类器选择出RVM水质预测模型、BP神经网络水质预测模型、Adaboost水质预测模型中最合适该数据的预测模型,再根据选择出的预测模型得到最终预测值。

步骤8分为如下步骤:

步骤8-1:使用历史数据,得到输入值Ii=[(wi-1,ti-1),(wi-2,ti-2),…,(wi-2,ti-d)],d表示为窗口大小,wi表示第i个时间节点下的水质数据,ti表示第i个时间节点时间。

步骤8-2:将向量Ii输入步骤7中已经训练好的SVM择优分类器,得到标签li,li∈{1,2,3}代表适合该数据的最优预测模型;当li=1时,选择RVM水质预测模型;当li=2时,选择BP神经网络水质预测模型;当li=3时,选择Adaboost水质预测模型。

步骤8-3:对应已经得到的li,将输入值Ii带入步骤5中训练好的最优模型,得到预测值Pi,将Pi作为最终预测值。

以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1