本发明涉及一种多元回归预测模型优化方法,尤其是涉及一种基于遗传编程的多元回归预测模型优化方法。
背景技术:
近年来,多元回归预测模型及其优化技术是信息服务学科的一个研究热点和重点,它广泛应用于智能交通、电子商务、生物信息、医疗健康和社会公共安全等领域。多元回归预测是指通过对两个或两个以上的自变量与一个因变量的相关分析,建立预测模型进行预测的方法。它的通用数学模型可以表示为:
其中,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个影响因素
步骤1.2:簇内各模型个体参数优化。从输入端获取数据样本集合
所述多元回归预测模型簇进化模块,通过5个步骤来实现:
步骤2.1:多元回归预测模型簇选择。从输入端获取选择率的取值s(0<s<1)和数据样本集合
步骤2.2:多元回归预测模型簇解析。以步骤2.1中的模型簇pm为输入,对于其中的每一个模型个体
步骤2.3:多元回归预测模型簇交叉。从输入端获取交叉率的取值c(0<c<1),并从步骤2.2获得的bm中选取
步骤2.4:多元回归预测模型簇变异。从输入端获取变异率的取值h(0<h<1),并从步骤2.3更新的bm中选取
步骤2.5:多元回归预测模型簇评估。将步骤2.4得到集合bm中的每一棵二叉解析树转换成多元回归预测模型个体,并合并步骤2.1得到的om,从而获得新的模型簇pm。从输入端获取数据样本集合
本发明具有以下优点:
1、本发明能够在多项式时间复杂度内获取最优的多元回归预测模型,从而具有较高的处理效率和较短的用户响应时间。
2、本发明基于遗传编程策略来实施多元回归预测模型最优解的获取,从而避免陷入局部最优,因此具有较高的准确度。
3、本发明分析、检测和挖掘不同长度、不同次幂的多元回归预测模型及其可能的组合,从而具有较强的泛化能力。
附图说明
图1本发明的技术框架图
具体实施方式
实施例
在初始多元回归预测模型簇构造模块的步骤1.1(多元回归预测模型簇生成)中,影响因素个数w设置为20,即
每个模型个体
1)产生一个[2,20]之间的随机数,并对该随机数取整数得到λ,并把λ赋值给自变量个数参数n[z],从而,
2)对于每个自变量xi(1≤i≤λ),采取无放回的方式从
3)对于每个自变量系数参数a[z]i(1≤i≤λ),产生一个
4)对于每个自变量次幂参数r[z]i(1≤i≤λ),产生一个1~6之间的随机数,并对该随机数取整数得到σi,并将σi赋值给r[z]i,从而,
经过上述的实施过程之后,本实施例将生成的100个多元回归预测模型个体
在初始多元回归预测模型簇构造模块的步骤1.2(簇内各模型个体参数优化)中,基于输入端获取的数据样本集合
1)在数据样本集合ψ的
2)以ψ’为训练数据集合,利用随机优化算法,如牛顿法或自适应矩估计(adam:adaptivemomentestimation)法,对
在多元回归预测模型簇进化模块的步骤2.1(多元回归预测模型簇选择)中,选择率的取值s设定为0.05。模型簇pm中每个模型个体
1)从输入数据样本集合
2)基于ω’,计算ac[z]:
其中e为自然常数,约等于2.72。
基于上述预测准确度的计算方式,本实施例从pm中选取
在多元回归预测模型簇进化模块的步骤2.2(多元回归预测模型簇解析)中,将模型簇pm中的每一个模型个体
1)利用平衡二叉树构建技术生成叶子节点数为n[z]的平衡二叉树b[z]。
2)将b[z]的叶子节点标记为乘法运算(即“×”号),并将非叶子节点标记为加法运算(即“+”号)。
3)从左到右,对b[z]中的每个叶子节点标记它的序号,序号从1开始。
4)对b[z]中的每个叶子节点nd增加两个子节点,即左子节点为a[z]t,右子节点为
5)对于b[z]中的每个右叶子节点
当所有模型个体转换完毕之后,本实施例将得到pm所对应的二叉解析树集合bm={bp[1],bp[2],…,bp[95]}。
在多元回归预测模型簇进化模块的步骤2.3(多元回归预测模型簇交叉)中,交叉率的取值c设定为0.9,并从步骤2.2更新的bm中随机选取
对于第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)转换成多元回归预测模型个体
合并bm和步骤2.1获取的om,从而得到新的模型簇
对pm中每个模型个体
在全部100个模型个体的预测准确度计算处理之后,获取其中ac[z]最高的模型个体