一种基于遗传规划算法的增量数据挖掘方法
技术领域
本发明涉及数据挖掘领域,特别是一种增量数据挖掘模型。采用样本批量学习模式,模型结合遗传规划与神经网络的优势,能够很好地实现增量数据挖掘。具体地说是一种基于遗传规划算法的增量数据挖掘方法。
背景技术
大数据时代聚集的大规模数据样本为商业模式创新和科学新发现提供可能,如何从大规模数据中发现有用的信息或资源成为大数据时代所需解决的最重要的问题,数据挖掘作为模型发现技术无疑是大数据时代中的核心技术。
在数据采样过程中,往往一定时间内采集的样本有限且局限性大,这时的学习模型往往也具有局限性。随着时间的积累,采集到的样本逐渐增加,样本覆盖范围更广泛,对应的模型也需相应的更新。传统的数据挖掘算法在解决这样的问题是,往往是基于新的样本群重新构建模型。主要原因在于此类算法需要针对数据群作为模型学习基础,数据间有很大的耦合性。而增量数据挖掘可以在原模型基础上进一步优化得到适应新样本的模型。
传统的遗传规划算法在学习过程中虽然样本间无耦合,但是因为编码方式和进化机理问题,算法解决增量数据时,无论增量数据规模大小,学习过程仍需很大的代价。且需要继续参考原样本集。这使得遗传规划算法在分类分析上的模型简单可读性高的优势被埋没。本发明利用遗传规划算法的通过重构由简单初等函数组成的函数式模型这一特点,实现算法在增量学习上的应用。
发明内容
本发明的目的是为了更好的解决增量数据挖掘中的学习能力问题。继承遗传规划算法的优势,学习过程中样本作为输入逐个处理,通过多个中间层的反馈过程,沿梯度下降方向逐步优化模型中的系数和偏移量。从而能够很好地提高学习能力提供种基于遗传规划算法的增量数据挖掘方法。
本发明的目的是按以下方式实现的,针对遗传规划算法增量数据挖掘的需求及高可读性与高分类准确度的优点,使用设计函数集并引入神经网络优化思想提取出替代交叉变异过程的全新搜索过程,设计优化算法搜索机理,实现增量数据挖掘任务;
遗传规划算法学习方法由常规初等函数、常数和变量组成的函数解析式,该解析式多阶可微,根据泰勒公式,可将其解析为形式相似的组分叠加,这样,原来的交叉变异过程简化为优化组分的系数和偏移量的过程,引入反馈网络和核函数模型,通过模型的输出结果与期望结果的偏差,反向调整叠加系数,通过逐步迭代得到预期的模型,步骤内容如下:
(1)确定输入层个数;确定中间层1的函数组成;批量样本数目N设置算法框架中的中间层2的个数;约定每次输入网络中进化的代数n;
(2)训练数据集获取,对已有类标数据样本筛选、去噪处理得到学习所需的训练数据集;
(3)随机生成中间层1与中间层2中的权重系数和偏移量;
(4)训练集中样本批量输入网络中,分别通过中间层1和中间层2的映射,最后经过投票***得出最终分类结果;
(5)计算投票***的输出结果与目标结果的距离;
(6)根据误差通过反馈网络优化网络参数;
(7)通过检查迭代次数检测优化过程是否完成,若未完成,进入步骤(4)继续优化参数;若完成则转向步骤(8);
(8)输入下一批次的样本,转向步骤(4),循环直至所有样本输入完毕;
(9)保存网络层1和网络层2的中间权重值和偏移量,核函数以及投票过程,学习过程结束,
(10)步骤(1)中所述的中间层1的函数选择,中间层2的核函数个数,按照如下方式进行:
根据泰勒公式,选取 的系数和作为一般函数表达式的近似表示,在中间层1,选择此五个元素作为节点元素,中间层2的节点个数为3-5个,作为决策前的空间提升过程,核函数选择sigmoid核函数;
步骤(2)中所述的样本筛选与去噪主要滤除原始数据样本集中出现的错误数据,防止学习过程中因此产生大的偏差,同时学习模型更加有效;
步骤(3)中所述的初始系数和偏移量,按照随机生成一组位于[-10,10]的实数作为各节点的系数,随机生成一组位于[-1,1]的实数作为中间层1各节点的偏移量,节点系数和偏移量将在优化中被逐渐调整,最终达到合适的值;
步骤(4)中所述的样本输入网络,按照如下方式进行:
网络的输入层,按照样本维度的大小设计输入层节点个数,根据顺序,样本的每一维度分别输入到网络的输入层中,输入层做系数与偏移量变换,将变换结果传递给中间层1,中间层1做函数映射并根据各节点的系数和偏移量计算结果作为输出传递到中间层2,如公式(1)所示;
公式(1): ,
其中为中间层1节点的输出,为输入到节点的系数,为节点的偏移量,为网络入口数;
中间层2经过大小缩放和核函数变换,将变换后结果传递给投票***;如公式(2)所示;
公式(2):,
其中为中间层2节点的输出,为中间层1的节点到节点的系数,为节点的偏移量,为中间层2的节点数,为中间层1的节点个数;
步骤(5)中描述的投票***,按照如下方式进行:
投票***根据输入值的分布,根据M个核函数节点的投票结果,选出命中类别最多的那一类作为输出结果,若各类标得票结果相同,按随机选择方式决定输出结果,决策最终的样本所属类别,计算最终类别与目标类别的误差,误差计算方法如公式(3)所示:
公式(3):,
其中,为第个样本的真实类别,为中间层2第个节点的输出;
步骤(6)中描述的根据误差调整网络参数的反馈网络,按照如下方式进行:
反馈网络的优化过程如下所示,根据中间层2的输出结果和目标值的误差,为使得优化过程能够按照梯度下降的方向进行,从而优化过程使得误差函数下降,计算中间层2的偏微分,得出其系数变化量和偏移量变化量,据此变化量更新二者的值:
反馈网络向前传递,中间层1的系数和偏移量变化按如下公式进行;
其中为优化速率,本方案中设为0.1;
步骤(7)中描述的迭代过程,按照如下所述的方式进行:
根据步骤(4)中系数与偏移量的更新方法,更新网络中的系数和偏移量,重新学习该批次样本,计算中间层2的输出与目标类别的误差,并再次进行前向反馈,如此迭代预设的n次,停止迭代过程;
在此n取值1000;
步骤(8)中描述的选择下一批次的样本,按照如下方式进行:
在本次样本集迭代终止后,网络保存个节点的参数,此时增量数据只需直接输入网络中,即实现网络对此增量样本的继续学习,学习过程从步骤(4)开始,逐层传递而后逐步回馈,迭代完成优化过程。
解析式简化部分,遗传规划算法将加减乘除以及开方、平方的函数作为函数集,采用深度可变的树形结构来优化学***方函数、立方函数、四次方函数组分组成网络的中间1层节点。
核函数模型,作为网络的中间2层,中间1层结果作为输入,核函数结果通过投票过程得到最终的模型输出,sigmoid函数作为网络中的中间层2;投票***做最终的分类决策,数据样本的每个维度数据作为各函数的输入,输入节点对输入数据通过系数和偏移量进行预处理,节点输出结果传递给中间层1,中间层1各节点根据自身所代表的函数计算出对应的映射关系,并将结果依据中间层1的系数和偏移量进一步处理,输出结果传递给中间2层,中间2层节点做空间变换映射,得出中间层2的输出结果,网络反馈过程中,沿梯度下降方向调整系数和偏移量。
通过检查迭代次数检测优化过程是否完成,是根据训练集中样本批量输入网络中的系数与偏移量的更新方法,更新网络中的系数和偏移量,重新学习该批次样本,计算中间层2的输出与目标类别的误差,并再次进行前向反馈,如此迭代预设的n次,停止迭代过程,在此n取值1000。
选择下一批次的样本,是在本次样本集迭代终止后,网络保存个节点的参数,此时增量数据只需直接输入网络中,即实现网络对此增量样本的继续学习,学习过程从训练集中样本批量输入网络中,分别通过中间层1和中间层2的映射,最后经过投票***得出最终分类结果,逐层传递而后逐步回馈,迭代完成优化过程。
本发明的目的有益效果是:增量数据挖掘能够完成数据样本由少到多的增量模型学习任务,将数据输入到模型,输入层对数据做线性映射,将结果传入中间层;中间层分别做非线性变换和空间提升映射,将结果输出到投票***;投票***确定所属类别;反馈***优化网络参数。多次迭代完成学习过程。处理增量数据时,新旧数据样本的耦合度低,挖掘新数据时不再考虑旧数据样本,有很好的继承性。
附图说明
图1是遗传规划算法增量数据挖掘模型拓扑结构示意图;
图2是遗传规划算法增量数据挖掘模型流程图。
具体实施方式
参照说明书附图对本发明的作以下详细地说明。
本发明的目的是为了更好的解决增量数据挖掘中的学习能力问题。继承遗传规划算法的优势,学习过程中样本作为输入逐个处理,通过多个中间层的反馈过程,沿梯度下降方向逐步优化模型中的系数和偏移量,从而能够很好地提高学习能力。
基于以上考虑,本发明的具体框架如下:
(1)确定输入层个数;确定中间层1的函数组成;批量样本数目N设置算法框架中的中间层2的个数;约定每次输入网络中进化的代数n;
(2)训练数据集获取,对已有类标数据样本筛选、去噪处理得到学习所需的训练数据集;
(3)随机生成中间层1与中间层2中的权重系数和偏移量;
(4)训练集中样本批量输入网络中,分别通过中间层1和中间层2的映射,最后经过投票***得出最终分类结果;
(5)计算投票***的输出结果与目标结果的距离 ;
(6)根据误差通过反馈网络优化网络参数;
(7)通过检查迭代次数检测优化过程是否完成,若未完成,进入步骤(4)继续优化参数;若完成则转向步骤(8);
(8)输入下一批次的样本,转向步骤(4),循环直至所有样本输入完毕;
(9)保存网络层1和网络层2的中间权重值和偏移量,核函数以及投票过程,学习过程结束;
(10)步骤(1)中所述的中间层1的函数选择,中间层2的核函数个数,按照如下方式进行:
根据泰勒公式,选取的系数和作为一般函数表达式的近似表示,在中间层1,选择此五个元素作为节点元素,中间层2的节点个数为3-5个,作为决策前的空间提升过程,核函数选择sigmoid核函数;
步骤(2)中所述的样本筛选与去噪主要滤除原始数据样本集中出现的错误数据,防止学习过程中因此产生大的偏差,同时学习模型更加有效;
步骤(3)中所述的初始系数和偏移量,按照随机生成一组位于[-10,10]的实数作为各节点的系数,随机生成一组位于[-1,1]的实数作为中间层1各节点的偏移量,节点系数和偏移量将在优化中被逐渐调整,最终达到合适的值;
步骤(4)中所述的样本输入网络,按照如下方式进行:
网络的输入层,按照样本维度的大小设计输入层节点个数,根据顺序,样本的每一维度分别输入到网络的输入层中,输入层做系数与偏移量变换,将变换结果传递给中间层1,中间层1做函数映射并根据各节点的系数和偏移量计算结果作为输出传递到中间层2,如公式(1)所示;
公式(1): ,
其中为中间层1节点的输出,为输入到节点的系数,为节点的偏移量,为网络入口数;
中间层2经过大小缩放和核函数变换,将变换后结果传递给投票***;如公式(2)所示;
公式(2):,
其中为中间层2节点的输出,为中间层1的节点到节点的系数,为节点的偏移量,为中间层2的节点数,为中间层1的节点个数;
步骤(5)中描述的投票***,按照如下方式进行:
投票***根据输入值的分布,根据M个核函数节点的投票结果,选出命中类别最多的那一类作为输出结果,若各类标得票结果相同,按随机选择方式决定输出结果,决策最终的样本所属类别,计算最终类别与目标类别的误差,误差计算方法如公式(3)所示:
公式(3):,
其中,为第个样本的真实类别,为中间层2第个节点的输出;
步骤(6)中描述的根据误差调整网络参数的反馈网络,按照如下方式进行:
反馈网络的优化过程如下所示,根据中间层2的输出结果和目标值的误差,为使得优化过程能够按照梯度下降的方向进行,从而优化过程使得误差函数下降,计算中间层2的偏微分,得出其系数变化量和偏移量变化量,据此变化量更新二者的值:
反馈网络向前传递,中间层1的系数和偏移量变化按如下公式进行;
其中为优化速率,本方案中设为0.1;
步骤(7)中描述的迭代过程,按照如下所述的方式进行:
根据步骤(4)中系数与偏移量的更新方法,更新网络中的系数和偏移量,重新学习该批次样本,计算中间层2的输出与目标类别的误差,并再次进行前向反馈,如此迭代预设的n次,停止迭代过程;
在此n取值1000;
步骤(8)中描述的选择下一批次的样本,按照如下方式进行:
在本次样本集迭代终止后,网络保存个节点的参数,此时增量数据只需直接输入网络中,即实现网络对此增量样本的继续学习,学习过程从步骤(4)开始,逐层传递而后逐步回馈,迭代完成优化过程。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。