基于遗传编程的多元回归预测模型优化方法与流程

文档序号:11231406阅读:811来源:国知局

本发明涉及一种多元回归预测模型优化方法,尤其是涉及一种基于遗传编程的多元回归预测模型优化方法。



背景技术:

近年来,多元回归预测模型及其优化技术是信息服务学科的一个研究热点和重点,它广泛应用于智能交通、电子商务、生物信息、医疗健康和社会公共安全等领域。多元回归预测是指通过对两个或两个以上的自变量与一个因变量的相关分析,建立预测模型进行预测的方法。它的通用数学模型可以表示为:

其中,y表示因变量,为模型的预测值,x1~xn为n个与因变量紧密相关的自变量,代表n个不同的抽象特征或影响因素,a1~an为n个自变量的系数,即模型的n个参数,r1~rn为自变量x1~xn的次幂。当r1=r2=…=rn=1时,该模型为多元线性回归预测模型。在实际应用中,通常都会涉及到多元非线性回归预测模型,即r1~rn中,至少有一个次幂大于1。

目前多元回归预测模型的检验主要有如下六种方式:1)模型拟合程度测定,2)标准误差评估,3)回归方程的显著性检验,4)回归系数的显著性检验,5)多重共线性判别以及6)杜宾-瓦特森(d-w:durbin-watson)检验。

在实际应用中,与支持向量机(svm:supportvectormachine)、人工神经网络(ann:artificialneuralnetwork)、随机森林(rf:randomforest)、贝叶斯网络(bn:bayesiannetwork)、隐马尔可夫模型(hmm:hiddenmarkovmodel)等预测方法相比,基于多元回归模型预测模型的预测方法具有简单方便、灵活以及速度快等优点。但是现有的模型优化方法仍然存在准确度不高、容易过拟合以及泛化能力弱等缺陷。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于遗传编程策略、高效且泛化能力强的多元回归预测模型优化方法,技术框架如图1所示。

本发明主要由初始多元回归预测模型簇构造和多元回归预测模型簇进化两个模块组成。

所述初始多元回归预测模型簇构造模块,通过2个步骤来实现:

步骤1.1:多元回归预测模型簇生成。从输入端获取所要预测问题的w个影响因素以及模型个体数量参数值m(m为正整数),顺序产生m个多元回归预测模型个体分别表示为:其中y[z](1≤z≤m)为第z个模型个体的因变量,即该模型个体的预测值;n[z]为第z个模型个体的自变量个数,且n[z]≤w;a[z]i为第z个模型个体第i(1≤i≤n[z])个自变量的系数;r[z]i为第z个模型个体第i个自变量的次幂。每个模型个体中的自变量均取自且不重复。从而,这m个多元回归预测模型个体构成一个集合pm,即为多元回归预测模型簇。

步骤1.2:簇内各模型个体参数优化。从输入端获取数据样本集合其中每个数据样本均由两部分组成,为w个影响因素的取值,为实际预测值。然后,对于pm中的每一个模型个体基于ψ,对中的n[z]个自变量系数a[z]1~a[z]n[z]进行迭代优化,并最终产生最优的多元回归预测模型个体。

所述多元回归预测模型簇进化模块,通过5个步骤来实现:

步骤2.1:多元回归预测模型簇选择。从输入端获取选择率的取值s(0<s<1)和数据样本集合计算模型簇pm中每个模型个体的预测准确度,并从中选取个预测准确度最高的模型个体,将它们组成集合om,表示取上限整数,并从pm中删除om中的模型个体。

步骤2.2:多元回归预测模型簇解析。以步骤2.1中的模型簇pm为输入,对于其中的每一个模型个体将其转换成一棵二叉解析树bp[z]。bp[z]需要同时满足如下6个条件:1)任一个节点至多包含两个子节点,2)左叶子节点为自变量系数,3)右叶子节点为自变量及其次幂,4)叶子节点的父节点为乘法运算(即“×”号),5)其余节点为加法运算(即“+”号),6)右叶子节点关联中的一个影响因素标识符。从而,当所有模型个体转换完毕之后,将得到pm所对应的二叉解析树集合bm。

步骤2.3:多元回归预测模型簇交叉。从输入端获取交叉率的取值c(0<c<1),并从步骤2.2获得的bm中选取棵二叉解析树,如果为奇数,那么再从bm中选取一棵,使得最终共选取偶数棵(记为q)二叉解析树,然后,将所选取的二叉解析树分成q/2个组,每组包含两棵二叉解析树。接着,对每个分组所包含的两棵树进行交叉处理,即分别在这两个棵树上选取一个相容节点,然后互换以相容节点为根节点的子树,从而得到两棵新的二叉解析树。两个节点称为相容节点,它们需要满足:1)运算符号相同,或者2)均为左叶子节点,或者3)均为右叶子节点。当所有q/2个分组处理完毕之后,得到q棵新的二叉解析树,并将它们取代bm中原先q棵旧的树,从而得到更新后的集合bm。

步骤2.4:多元回归预测模型簇变异。从输入端获取变异率的取值h(0<h<1),并从步骤2.3更新的bm中选取棵二叉解析树。对于每棵被选取的二叉解析树进行变异处理,即执行如下4个变异操作中的任意一个操作:1)修改某一个左叶子节点所对应的自变量系数,2)修改某一个右叶子节点所对应的自变量次幂,3)删除以“×”号为根节点的子树,同时删除“×”号的父节点,4)删除以“+”号为根节点的子树,同时删除“+”号的父节点。当所有棵二叉解析树处理完毕之后,将它们取代bm中原先棵旧的树,从而得到更新后的集合bm。

步骤2.5:多元回归预测模型簇评估。将步骤2.4得到集合bm中的每一棵二叉解析树转换成多元回归预测模型个体,并合并步骤2.1得到的om,从而获得新的模型簇pm。从输入端获取数据样本集合对pm中的每个模型个体进行预测准确度评估,获取预测准确度最高的模型个体然后,从输入端获取预测准确度阈值γ(0<γ<1),如果的预测准确度达到γ,那么将返回给用户,否则转到步骤2.1,进行下一轮的迭代处理。

本发明具有以下优点:

1、本发明能够在多项式时间复杂度内获取最优的多元回归预测模型,从而具有较高的处理效率和较短的用户响应时间。

2、本发明基于遗传编程策略来实施多元回归预测模型最优解的获取,从而避免陷入局部最优,因此具有较高的准确度。

3、本发明分析、检测和挖掘不同长度、不同次幂的多元回归预测模型及其可能的组合,从而具有较强的泛化能力。

附图说明

图1本发明的技术框架图

具体实施方式

实施例

在初始多元回归预测模型簇构造模块的步骤1.1(多元回归预测模型簇生成)中,影响因素个数w设置为20,即而模型个体的数量参数值m设定为100,即本发明顺序生成100个初始的多元回归预测模型个体

每个模型个体生成的具体方式如下:

1)产生一个[2,20]之间的随机数,并对该随机数取整数得到λ,并把λ赋值给自变量个数参数n[z],从而,可表示为

2)对于每个自变量xi(1≤i≤λ),采取无放回的方式从中抽取一个影响因素从而,可表示为

3)对于每个自变量系数参数a[z]i(1≤i≤λ),产生一个之间的随机数μi,并将μi赋值给a[z]i,从而,可进一步表示为

4)对于每个自变量次幂参数r[z]i(1≤i≤λ),产生一个1~6之间的随机数,并对该随机数取整数得到σi,并将σi赋值给r[z]i,从而,最后可表示为

经过上述的实施过程之后,本实施例将生成的100个多元回归预测模型个体组织成一个模型簇pm,即

在初始多元回归预测模型簇构造模块的步骤1.2(簇内各模型个体参数优化)中,基于输入端获取的数据样本集合pm中的每一个模型个体的λ个自变量系数优化的具体实施方式如下:

1)在数据样本集合ψ的部分中,识别出的λ个自变量所对应影响因素的取值并删除中其它20-λ个影响因素的取值,即ψ变换为新的数据样本集合

2)以ψ’为训练数据集合,利用随机优化算法,如牛顿法或自适应矩估计(adam:adaptivemomentestimation)法,对的λ个自变量系数μ1,μ2,…,μλ进行迭代优化1000次,并最终产生最优的多元回归预测模型个体。

在多元回归预测模型簇进化模块的步骤2.1(多元回归预测模型簇选择)中,选择率的取值s设定为0.05。模型簇pm中每个模型个体的预测准确度ac[z]计算如下:

1)从输入数据样本集合中随机选取min({|ψ|,500})个数据样本并构成集合ω,其中|ψ|为ψ所包含的数据样本数量,min()为取最小值的函数。进而,在ω的部分中,识别出的n[z]个自变量所对应影响因素的取值并删除中其它20-n[z]个影响因素的取值,即ω变换为新的数据样本集合

2)基于ω’,计算ac[z]:

其中e为自然常数,约等于2.72。

基于上述预测准确度的计算方式,本实施例从pm中选取个预测准确度最高的模型个体,将它们组成集合om,并从pm中删除这5个具有最高预测准确度的模型个体。

在多元回归预测模型簇进化模块的步骤2.2(多元回归预测模型簇解析)中,将模型簇pm中的每一个模型个体转换成一棵二叉解析树bp[z],具体实施方式如下:

1)利用平衡二叉树构建技术生成叶子节点数为n[z]的平衡二叉树b[z]。

2)将b[z]的叶子节点标记为乘法运算(即“×”号),并将非叶子节点标记为加法运算(即“+”号)。

3)从左到右,对b[z]中的每个叶子节点标记它的序号,序号从1开始。

4)对b[z]中的每个叶子节点nd增加两个子节点,即左子节点为a[z]t,右子节点为其中t为nd的序号,此时,nd成为非叶子节点,而它的左右子节点成为叶子节点。

5)对于b[z]中的每个右叶子节点识别出它所对应的影响因素并在该节点中关联一个标识符此时的平衡二叉树b[z]即为二叉解析树bp[z]。

当所有模型个体转换完毕之后,本实施例将得到pm所对应的二叉解析树集合bm={bp[1],bp[2],…,bp[95]}。

在多元回归预测模型簇进化模块的步骤2.3(多元回归预测模型簇交叉)中,交叉率的取值c设定为0.9,并从步骤2.2更新的bm中随机选取棵二叉解析树,然后,将这86棵树平均分成43组,使得每组包含两棵树。

对于第1-9组中的每个组,对它所包含的两棵二叉解析树bp[1]和bp[2]进行如下交叉处理:

1)定位bp[1]的根节点rt[1];

2)定位bp[2]的根节点rt[2];

3)将bp[1]中根节点rt[1]的左子树与bp[2]的根节点rt[2]的左子树互换,从而得到两棵新的二叉解析树bp’[1]和bp’[2]。

对于第10-18组中的每个组,对它所包含的两棵二叉解析树bp[3]和bp[4]进行如下交叉处理:

1)定位bp[3]第二层的右节点rt[3];

2)定位bp[4]第三层的右节点rt[4];

3)将bp[3]中以rt[3]为根节点的右子树和bp[4]中以rt[4]为根节点的右子树互换,从而得到两棵新的二叉解析树bp’[3]和bp’[4]。

对于第19-27组中的每个组,对它所包含的两棵二叉解析树bp[5]和bp[6]进行如下交叉处理:

1)定位bp[5]倒数第二层(即“×”号所在层)的第2个节点rt[5];

2)定位bp[6]倒数第二层(即“×”号所在层)的第4个节点rt[5];

3)将bp[5]中以rt[5]为根节点子树和bp[6]中以rt[6]为根节点的子树互换,从而得到两棵新的二叉解析树bp’[5]和bp’[6]。

对于第28-36组中的每个组,对它所包含的两棵二叉解析树bp[7]和bp[8]进行如下交叉处理:

1)定位bp[7]叶子节点层的第3个左叶子节点rt[7];

2)定位bp[8]叶子节点层的第5个左叶子节点rt[8];

3)将bp[7]中的rt[7]和bp[8]中的rt[8]互换,从而得到两棵新的二叉解析树bp’[7]和bp’[8]。

对于第37-43组中的每个组,对它所包含的两棵二叉解析树bp[9]和bp[10]进行如下交叉处理:

1)定位bp[9]叶子节点层的第2个右叶子节点rt[9];

2)定位bp[10]叶子节点层的第3个右叶子节点rt[10];

3)将bp[9]中的rt[9]和bp[10]中的rt[10]互换,从而得到两棵新的二叉解析树bp’[9]和bp’[10]。

当所有43个分组处理完毕之后,得到86棵新的二叉解析树,并将它们取代bm中原先86棵旧的树,从而得到更新后的集合bm。

在多元回归预测模型簇进化模块的步骤2.4(多元回归预测模型簇变异)中,变异率的取值h设定为0.2,并从步骤2.3更新的bm中随机选取棵二叉解析树。

对于第1-5棵中的每一棵二叉解析树bp[11]进行如下变异处理:定位bp[11]叶子节点层的第1个左叶子节点rt[11],并将它所对应的自变量系数乘上(e-1)/e=0.63。

对于第6-10棵中的每一棵二叉解析树bp[12]进行如下变异处理:定位bp[12]叶子节点层的第3个右叶子节点rt[12],并将它所对应的自变量次幂加上1。

对于第11-15棵中的每一棵二叉解析树bp[13]进行如下变异处理:定位bp[13]倒数第二层(即“×”号所在层)的第3个节点rt[13],删除以rt[13]为根节点的子树,同时删除rt[13]的父节点。

对于第15-19棵中的每一棵二叉解析树bp[14]进行如下变异处理:定位bp[13]倒数第三层(即“+”号所在层)的倒数第2个节点rt[14],删除以rt[14]为根节点的子树,同时删除rt[14]的父节点。

当所有19棵二叉解析树处理完毕之后,将它们取代bm中原先19棵旧的树,从而得到更新后的集合bm。

在多元回归预测模型簇进化模块的步骤2.5(多元回归预测模型簇评估)中,将步骤2.4得到集合bm中的每一棵二叉解析树bp[z](1≤z≤96)转换成多元回归预测模型个体具体实施方式为:首先初始化一个变量y=0,然后从左到右顺序访问bp[z]的叶子节点层中的每对左、右叶子节点a[z]t和将它们组合成并将加到y中,即当所有叶子节点处理完毕之后,得到模型个体

合并bm和步骤2.1获取的om,从而得到新的模型簇

对pm中每个模型个体进行预测准确度评估的方式与步骤2.1相同,即基于输入数据样本集合计算出的预测准确度的具体值ac[z]。

在全部100个模型个体的预测准确度计算处理之后,获取其中ac[z]最高的模型个体并将预测准确度阈值γ设定为1.5。然后,判断的预测准确度是否达到1.5,如果达到或超过,那么将返回给用户,否则转到步骤2.1,进行下一轮的迭代处理。

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