当前位置: 首页 > 专利查询>河南大学专利>正文

一种增量式的梯度提升决策树更新方法技术

技术编号:14680860 阅读:124 留言:0更新日期:2017-02-22 14:01
本发明专利技术公开了一种增量式的梯度提升决策树更新方法,包括以下步骤:A:对增量数据集与原始数据集进行排序归并得到当前最新有序数据集;B:分别计算每个结点在当前最新有序数据集上的最新最佳分裂属性和分裂值;C:利用最新最佳分裂属性与新的数据块到来前该结点上最佳分裂属性的对比结果进行数据分类模型更新。本发明专利技术能够在新数据集批量到来的情况下,以增量式的方法快速更新已有数据分类模型,不需要重新训练一个新的梯度提升决策树分类模型,而是在现有模型的基础上进行更新,从而极大地减少了建立数据分类模型的时间,提高了模型的训练速度,节约了大量的时间成本。

【技术实现步骤摘要】

本专利技术涉及一种数据分类模型的更新方法,尤其涉及一种增量式的梯度提升决策树更新方法
技术介绍
近年来,人们逐渐意识到数据分析的重要性,开始着手对数据进行分析和挖掘,发现数据潜在的价值。越来越多的领域如金融、电商、医疗和教育等已经开始使用数据挖掘技术来获得数据的潜在价值。在这些应用和服务中,较为常见的需求是数据分类。在数据分类问题中,如何快速更新已有的数据分类模型,是一项重要的研究课题,也是当前很多需要实时处理数据的应用所面临的重要挑战。因为,新数据到来后,如果重新建立一个新的数据分类模型,将耗费大量的时间。梯度提升决策树,即GradientBoostingDecisionTree,是具有较高准确率的数据分类算法。梯度提升决策树的思想使其具有天然优势可以发现多种有区分性的模型以及模型组合。业界中,Facebook使用其来自动发现有效的模型、特征模型,来作为逻辑回归模型中的模型,以提高点击率预估的准确性。但是当新数据到来后,现有的梯度提升决策树需要在所有的数据集上重新训练一个数据分类模型,并没有充分利用在原始数据集上已建立的数据分类模型,对此,我们设计了一个增量式的梯度提升决策树方法,在新数据集到来时,快速更新在原始数据集上已建立的数据分类模型。
技术实现思路
本专利技术的目的是提供一种增量式的梯度提升决策树更新方法,能够在一个或多个新的数据块实时到达后,直接在已有的基于梯度提升决策树算法的数据分类模型上进行快速更新,极大地减少了建立数据分类模型的时间,提高了更新效率。本专利技术采用下述技术方案:一种增量式的梯度提升决策树更新方法,依次包括以下步骤:A:对增量数据集与原始数据集进行排序归并,形成合并了新的数据块后的当前最新有序数据集;B:分别计算每个结点在当前最新有序数据集上的最新最佳分裂属性和分裂值;C:对决策树中的每个结点,基于合并了新的数据块后的当前最新有序数据集,首先利用步骤B计算得到的最新最佳分裂属性,与新的数据块到来前该结点上最佳分裂属性进行对比;当最新最佳分裂属性和新的数据块到来前该结点上的最佳分裂属性相同时,仅更新该结点上该属性的分裂值,否则进一步判断该结点是决策树的中间结点还是根结点;如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;然后,对于剩余的每棵决策树,结合前一棵决策树对应的最新残差,重新训练一棵新的决策树,替代当前的整棵决策树;每当更新完一个决策树,使用已更新完的决策树对新数据集的目标列进行残差更新,迭代地更新每一棵决策树及新数据集目标列的残差值,直到数据分类模型更新完毕。所述的步骤A包括以下步骤:A1:在一个或多个新的数据块实时到达后,首先对新的数据块上的各个属性进行单独排序,然后为每个属性独立生成一个排序后的数据集;A2:使用排序归并策略,依次将新的数据块上为每个属性独立生成的排序后的数据集和该属性原有的基于原始数据集排序的数据集进行合并。所述的步骤A2中合并方法如下:为每个属性原有的基于原始数据集排序的数据集OriDatai设置指针P1,为新的数据块上对该属性独立生成的排序后的数据集NewDatai设置指针P2;首先使用指针P2获得数据集NewDatai中的第一个值V2,并与指针P1所指向的数据集OriDatai中的第一个值V1进行比较:如果V2大于V1,则指针P1向前移动,指向数据集OriDatai的下一个值,直到P1所指向的值大于或等于V2,此时将指针P2获得的数据集NewDatai中的当前值V2即新属性值,插入数据集OriDatai中P1所指向的位置上,即指针P1指向插入的新属性值,然后指针P2向前移动指向数据集NewDatai的下一个值;如果V2小于或等于V1,则将指针P2获得的数据集NewDatai中的当前值V2即新属性值,直接插入到数据集OriDatai中P1所指向的位置之前,指针P1位置不变即指针P1仍指向原属性值V1,且数据集NewDatai上的指针P2向前移动指向数据集NewDatai中的下一个值;迭代执行上述过程,直到数据集NewDatai中的值完全插入数据集OriDatai中,即新的数据集NewDatai与原数据集OriDatai的合并完成,最后得到的数据集OriDatai即为该属性Ti对应的最新有序数据集OriDatai’。所述的步骤B包括以下具体步骤:B1:对每个属性,在根据步骤A得到属性所对应的最新有序数据集后,利用基于CART决策树算法中构建二叉决策树的方法,计算每个属性在最新有序数据集的最佳分裂值;B2:从所有属性中,挑选出最大损失值对应的属性作为根结点上的最佳分裂属性,若多个属性所对应的损失值大小一致,则任选其中一个属性作为根结点上的最佳分裂属性;使用最佳分裂属性及其对应的分裂值,在根结点上水平分裂该最大损失值对应的属性所对应的经排序归并后的最新有序数据集,完成对当前结点上最新最佳分裂属性的计算;B3:使用步骤B1和B2所述的方法,按照深度优先或广度优先的策略,继续分别在父结点的左子结点和右子结点对应的数据集上计算最新最佳分裂属性和分裂值,直到满足自定义的分裂停止条件为止,使用深度优先所对应的分裂停止条件为自定义的树的深度,使用广度优先策略所对应的分裂停止条件为自定义的叶子节点数。所述的步骤B1包括以下步骤:b11:对于每个属性Ti,从最新有序数据集OriDatai’的第1个属性值V开始,按照第1个属性值V将最新有序数据集OriDatai’进行水平分裂,将最新有序数据集OriDatai’中在Ti属性上的取值小于或等于V的实例分裂到左侧的子结点,形成左子结点对应的数据集nodeDatal’,下角标l为left的首字母;将最新有序数据集OriDatai’中在Ti属性上的取值大于V的实例划分到右侧的子结点,形成右子结点对应的数据集nodeDatar’,下角标r为right的首字母;然后通过公式(1)计算此时的损失值,记为Fi1,表示按照第i个属性Ti的第1个属性值分裂后计算得到的损失值其中,μl为左子结点中的所有实例在目标列的取值的平均值,下角标l为left的首字母;L表示父结点按照所选取的属性值分裂后,分裂到左子结点中实例的个数;μr为右子结点中的所有实例在目标列的取值的平均值,下角标r为right的首字母;R表示父结点按照所选取的属性值分裂后,分裂到右子结点中实例的个数;μ表示父结点中所有实例在目标列的取值的平均值,N表示父结点中所有实例的个数;b12:对于每个属性Ti,按照步骤b11的方法使用属性Ti的第2个属性值对最新有序数据集OriDatai’进行水平分裂,通过水平分裂得到左侧的子结点和右侧的子结点,本文档来自技高网...
一种增量式的梯度提升决策树更新方法

【技术保护点】
一种增量式的梯度提升决策树更新方法,其特征在于,依次包括以下步骤:A:对增量数据集与原始数据集进行排序归并,形成合并了新的数据块后的当前最新有序数据集;B:分别计算每个结点在当前最新有序数据集上的最新最佳分裂属性和分裂值;C:对决策树中的每个结点,基于合并了新的数据块后的当前最新有序数据集,首先利用步骤B计算得到的最新最佳分裂属性,与新的数据块到来前该结点上最佳分裂属性进行对比;当最新最佳分裂属性和新的数据块到来前该结点上的最佳分裂属性相同时,仅更新该结点上该属性的分裂值,否则进一步判断该结点是决策树的中间结点还是根结点;如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;每当更新完一个决策树,使用已更新完的决策树对新数据集的目标列进行残差更新,迭代地更新每一棵决策树及新数据集目标列的残差值,直到数据分类模型更新完毕。...

【技术特征摘要】
1.一种增量式的梯度提升决策树更新方法,其特征在于,依次包括以下步骤:A:对增量数据集与原始数据集进行排序归并,形成合并了新的数据块后的当前最新有序数据集;B:分别计算每个结点在当前最新有序数据集上的最新最佳分裂属性和分裂值;C:对决策树中的每个结点,基于合并了新的数据块后的当前最新有序数据集,首先利用步骤B计算得到的最新最佳分裂属性,与新的数据块到来前该结点上最佳分裂属性进行对比;当最新最佳分裂属性和新的数据块到来前该结点上的最佳分裂属性相同时,仅更新该结点上该属性的分裂值,否则进一步判断该结点是决策树的中间结点还是根结点;如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;每当更新完一个决策树,使用已更新完的决策树对新数据集的目标列进行残差更新,迭代地更新每一棵决策树及新数据集目标列的残差值,直到数据分类模型更新完毕。2.根据权利要求1所述的增量式的梯度提升决策树更新方法,其特征在于,所述的步骤A包括以下步骤:A1:在一个或多个新的数据块实时到达后,首先对新的数据块上的各个属性进行单独排序,然后为每个属性独立生成一个排序后的数据集;A2:使用排序归并策略,依次将新的数据块上为每个属性独立生成的排序后的数据集和该属性原有的基于原始数据集排序的数据集进行合并。3.根据权利要求2所述的增量式的梯度提升决策树更新方法,其特征在于,所述的步骤A2中合并方法如下:为每个属性原有的基于原始数据集排序的数据集OriDatai设置指针P1,为新的数据块上对该属性独立生成的排序后的数据集NewDatai设置指针P2;首先使用指针P2获得数据集NewDatai中的第一个值V2,并与指针P1所指向的数据集OriDatai中的第一个值V1进行比较:如果V2大于V1,则指针P1向前移动,指向数据集OriDatai的下一个值,直到P1所指向的值大于或等于V2,此时将指针P2获得的数据集NewDatai中的当前值V2即新属性值,插入数据集OriDatai中P1所指向的位置上,即指针P1指向插入的新属性值,然后指针P2向前移动指向数据集NewDatai的下一个值;如果V2小于或等于V1,则将指针P2获得的数据集NewDatai中的当前值V2即新属性值,直接插入到数据集OriDatai中P1所指向的位置之前,指针P1位置不变即指针P1仍指向原属性值V1,且数据集NewDatai上的指针P2向前移动指向数据集NewDatai中的下一个值;迭代执行上述过程,直到数据集NewDatai中的值完全插入数据集OriDatai中,即新的数据集NewDatai与原数据集OriDatai的合并完成,最后得到的数据集OriDatai即为该属性Ti对应的最新有序数据集OriDatai’。4.根据权利要求1所述的增量式的梯度提升决策树更新方法,其特征在于,所述的步骤B包括以下具体步骤:B1:对每个属性,在根据步骤A得到属性所对应的最新有序数据集后,利用基于CART决策树算法中构建二叉决策树的方法,计算每个属性在最新有序数据集的最佳分裂值;B2:从所有属性中,挑选出最大损失值对应的属性作为根结点上的最佳分裂属性,若多个属性所对应的损失值大小一致,则任选其中一个属性作为根结点上的最佳分裂属性;使用最佳分裂属性及其对应的分裂值,在根结点上水平分裂该最大损失值对应的属性所对应的经排序归并后的最新有序数据集,完成对当前结点上最新最佳分裂属性的计算;B3:使用步骤B1和B2所述的方法,按照深度优先或广度优先的策略,继续分别在父结点的左子结点和右子结点所对应的数据集上计算最新最佳分裂属性和分裂值,直到满足自定义的分裂停止条件为止,使用深度优先所对应的分裂停止条件为自定义的树的深度,使用广度优先策略所对应的分裂停止条件为自定义的叶子节点数。5.根据权利要求4所述的增量式的梯度提升决策树更新方法,其特征在于,所述的步骤B1包括以下步骤:b11:对于每个属性Ti,从最新有序数据集OriDatai’的第1个属性值V开始,按照第1个属性值V将最新有序数据...

【专利技术属性】
技术研发人员:张重生凡高娟张愿
申请(专利权)人:河南大学
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1