CN106446964A - 一种增量式的梯度提升决策树更新方法 - Google Patents
一种增量式的梯度提升决策树更新方法 Download PDFInfo
- Publication number
- CN106446964A CN106446964A CN201610919285.8A CN201610919285A CN106446964A CN 106446964 A CN106446964 A CN 106446964A CN 201610919285 A CN201610919285 A CN 201610919285A CN 106446964 A CN106446964 A CN 106446964A
- Authority
- CN
- China
- Prior art keywords
- decision tree
- node
- attribute
- newest
- data set
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种增量式的梯度提升决策树更新方法,包括以下步骤:A:对增量数据集与原始数据集进行排序归并得到当前最新有序数据集;B:分别计算每个结点在当前最新有序数据集上的最新最佳分裂属性和分裂值;C:利用最新最佳分裂属性与新的数据块到来前该结点上最佳分裂属性的对比结果进行数据分类模型更新。本发明能够在新数据集批量到来的情况下,以增量式的方法快速更新已有数据分类模型,不需要重新训练一个新的梯度提升决策树分类模型,而是在现有模型的基础上进行更新,从而极大地减少了建立数据分类模型的时间,提高了模型的训练速度,节约了大量的时间成本。
Description
技术领域
本发明涉及一种数据分类模型的更新方法,尤其涉及一种增量式的梯度提升决策树更新方法。
背景技术
近年来,人们逐渐意识到数据分析的重要性,开始着手对数据进行分析和挖掘,发现数据潜在的价值。越来越多的领域如金融、电商、医疗和教育等已经开始使用数据挖掘技术来获得数据的潜在价值。
在这些应用和服务中,较为常见的需求是数据分类。在数据分类问题中,如何快速更新已有的数据分类模型,是一项重要的研究课题,也是当前很多需要实时处理数据的应用所面临的重要挑战。因为,新数据到来后,如果重新建立一个新的数据分类模型,将耗费大量的时间。
梯度提升决策树,即Gradient Boosting Decision Tree,是具有较高准确率的数据分类算法。梯度提升决策树的思想使其具有天然优势可以发现多种有区分性的模型以及模型组合。业界中,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’进行水平分裂,通过水平分裂得到左侧的子结点和右侧的子结点,再通过公式(1)再次计算损失值,记为Fi2,表示按照第i个属性Ti的第2个属性值分裂后计算得到的损失值;
b13:以此类推,依次计算按照属性Ti的其它属性值水平分裂最新有序数据集OriDatai’后的对应的损失值,分别对应记为Fi3,Fi4,……,Fin;
b14:从Fi1,Fi2Fi3,Fi4,……,Fin中选择其中最大的损失值,记为Fik,1≤k≤n,并记录下Fik对应的分裂值。
所述的步骤C包括以下具体步骤:
C1:对单棵决策树进行更新,具体方法如下:
对该决策树的根结点,利用步骤B计算得到该结点在当前最新有序数据集上的最新最佳分裂属性进行判断:
如果决策树中根结点上的最新最佳分裂属性与原有的分裂属性相同,则仅更新根结点上该属性的分裂值;然后,对根结点的左子结点和右子结点,按照步骤B分别计算子结点上的最新最佳分裂属性,如果该子结点上的最新最佳分裂属性和该子结点上原有的分裂属性相同,则仅更新该子结点上该属性的分裂值;依次类推,按照深度优先或广度优先的策略,递归地更新每一个子结点,直到所有结点更新完成,最终对一棵决策树完成快速更新;
如果决策树中某结点的最新最佳分裂属性和原有的分裂属性不相同,则进一步判断该结点是中间结点还是根结点,如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;
C2:计算最新残差,最新残差的具体计算方法如下:
基于梯度提升决策树算法中决策树的集成方法,对新的数据块到达后已更新过的所有决策树进行集成,使用该集成模型对合并了新的数据块后的当前数据集中的每一个实例的目标列的值进行预测,得到的预测值与该实例在目标列上的真实值相减,得到该实例对应的残差值;所有实例的残差值计算完毕后,这些最新的残差值的集合即为最新残差;
其中,梯度提升决策树算法中决策树的集成方法如下:
某个实例的预测结果=第1棵决策树对该实例的预测结果+第2棵决策树对该实例的预测结果*学习率+第3棵决策树对该实例的预测结果*学习率+…+最新更新过的决策树对该实例的预测结果*学习率;
其中,学习率是由用户定义的用于控制分类模型的收敛速度的一个数值型参数,学习率的取值范围是(0,1];
C3:按照步骤C1依次对剩余的每棵决策树进行更新,每更新完一棵决策树后,都按照步骤C2计算最新残差,并将得到的该最新残差作为下一棵决策树的预测目标;以此类推,迭代地对每棵决策树进行更新,直到所有决策树都更新完成,最终完成对数据分类模型的更新。
本发明通过设置排序归并增量数据集、查找最佳分裂属性和分裂值以及更新数据分类模型三个步骤,能够在新数据集批量到来的情况下,以增量式的方法快速更新已有数据分类模型。当一个新的数据块到达后,本方法不需要重新训练一个新的梯度提升决策树分类模型,而是在现有模型的基础上进行更新,从而极大地减少了建立数据分类模型的时间,提高了模型的训练速度,节约了大量的时间成本。本发明可广泛应用于需要对数据进行实时分类的诸多应用领域。
附图说明
图1为本发明的流程示意图;
图2为实施例中使用排序归并策略进行合并过程的示意图。
具体实施方式
以下结合附图和实施例对本发明作以详细的描述:
如图1所示,本发明所述的增量式的梯度提升决策树更新方法,包括以下步骤:
A:对增量数据集与原始数据集进行排序归并,形成合并了新的数据块后的当前最新有序数据集。
步骤A包含以下具体步骤:
A1:在一个或多个新的数据块实时到达后,首先对新的数据块上的各个属性进行单独排序,然后为每个属性独立生成一个排序后的数据集;
A2:使用排序归并策略,依次将新的数据块上为每个属性独立生成的排序后的数据集和该属性原有的基于原始数据集排序的数据集进行合并,合并方法如下:
为每个属性Ti原有的基于原始数据集排序的数据集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:分别计算每个结点在当前最新有序数据集上的最新最佳分裂属性和分裂值。
计算最新最佳分裂属性和分裂值的过程,是对结点对应的数据集进行尝试水平分裂,使其分裂后具有最小的损失值。由于在进行排序归并前,新的数据块上为每个属性独立生成的排序后的数据集和该属性原有的基于原始数据集排序的数据集均为根节点的数据集,因此最新有序数据集OriDatai’对应每棵决策树的根结点,并且最新有序数据集OriDatai’目标列的数值会通过步骤C不断地更新为最新的残差值。
在数据挖掘应用中,目标列指的是一个数据集中,最终需要预测其取值或类别的一个属性。通常使用部分或全部非目标列的属性,来预测目标列属性的取值或类别。目标列为本领域现有专业名词,属于本领域公知技术,在此不再赘述。
步骤B包括以下具体步骤:
B1:对每个属性Ti,在根据步骤A得到属性Ti所对应的最新有序数据集OriDatai’后,利用基于CART决策树算法中构建二叉决策树的方法,计算每个属性Ti在最新有序数据集OriDatai’的最佳分裂值,具体方法如下:
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’进行水平分裂,通过水平分裂得到左侧的子结点和右侧的子结点,再通过公式(1)再次计算损失值,记为Fi2,表示按照第i个属性Ti的第2个属性值分裂后计算得到的损失值;
b13:以此类推,依次计算按照属性Ti的其它属性值水平分裂最新有序数据集OriDatai’后的对应的损失值,分别对应记为Fi3,Fi4,……,Fin。
b14:从Fi1,Fi2Fi3,Fi4,……,Fin中选择其中最大的损失值,记为Fik,1≤k≤n,并记录下Fik对应的分裂值。
B2:从所有属性中,挑选出最大损失值对应的属性Tj,Tj即为根结点上的最佳分裂属性,若多个属性所对应的损失值大小一致,则任选其中一个属性作为根结点上的最佳分裂属性;使用属性Tj及其对应的分裂值,在根结点上水平分裂对应的数据集OriDataj’,完成对当前结点上最新最佳分裂属性的计算,数据集OriDataj’为属性Tj所对应的经排序归并后的最新有序数据集。
B3:使用步骤B1和B2所述的方法,按照深度优先或广度优先的策略,继续分别在父结点的左子结点和右子结点所对应的数据集nodeDatal’及nodeDatar’上计算最新最佳分裂属性和分裂值,直到满足自定义的分裂停止条件为止,使用深度优先所对应的分裂停止条件为自定义的树的深度,使用广度优先策略所对应的分裂停止条件为自定义的叶子节点数。
C:更新数据分类模型。
对决策树中的每个结点,基于合并了新的数据块后的当前最新有序数据集,首先利用步骤B计算得到的最新最佳分裂属性,与新的数据块到来前该结点上最佳分裂属性进行对比;当最新最佳分裂属性和新的数据块到来前该结点上的最佳分裂属性相同时,仅更新该结点上该属性的分裂值,否则进一步判断该结点是决策树的中间结点还是根结点;
如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;
如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;然后,对于剩余的每棵决策树,结合前一棵决策树对应的最新残差,重新训练一棵新的决策树,替代当前的整棵决策树;
每当更新完一个决策树,使用已更新完的决策树对新数据集的目标列进行残差更新,迭代地更新每一棵决策树及新数据集目标列的残差值,直到数据分类模型更新完毕。
步骤C包括以下具体步骤:
C1:对单棵决策树进行更新;具体方法如下:
首先,对该决策树的根结点,利用步骤B计算得到该结点在当前最新有序数据集上的最新最佳分裂属性进行判断:
如果决策树中根结点上的最新最佳分裂属性与原有的分裂属性相同,则仅更新根结点上该属性的分裂值;然后,对根结点的左子结点和右子结点,按照步骤B分别计算子结点上的最新最佳分裂属性,如果该子结点上的最新最佳分裂属性和该子结点上原有的分裂属性相同,则仅更新该子结点上该属性的分裂值;依次类推,按照深度优先或广度优先的策略,递归地更新每一个子结点,直到所有结点更新完成,最终对一棵决策树完成快速更新;此种情况下,仅仅对结点的分裂值进行更新,与原有的梯度提升决策树相比,省去了重新建立决策树的过程,加快了最新决策树的建立,整体上促进了数据分类模型的建立速度。
如果决策树中某结点的最新最佳分裂属性和原有的分裂属性不相同,则进一步判断该结点是中间结点还是根结点,如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;然后,对于剩余的每棵决策树,结合前一棵决策树对应的最新残差,重新训练一棵新的决策树,替代当前的整棵决策树。
C2:计算最新残差,最新残差的具体计算方法如下:
基于梯度提升决策树算法中决策树的集成方法,对新的数据块到达后已更新过的所有决策树进行集成,使用该集成模型对合并了新的数据块后的当前数据集中的每一个实例的目标列的值进行预测,得到的预测值与该实例在目标列上的真实值相减,得到该实例对应的残差值。所有实例的残差值计算完毕后,这些最新的残差值的集合即为最新残差。
其中,梯度提升决策树算法中决策树的集成方法如下:
某个实例的预测结果=第1棵决策树对该实例的预测结果+第2棵决策树对该实例的预测结果*学习率+第3棵决策树对该实例的预测结果*学习率+…+最新更新过的决策树对该实例的预测结果*学习率。
上述方法中,学习率是由用户定义的用于控制分类模型的收敛速度的一个数值型参数,学习率的取值范围是(0,1]。
C3:按照步骤C1依次对剩余的每棵决策树进行更新,每更新完一棵决策树后,都按照步骤C2计算最新残差,并将得到的该最新残差作为下一棵决策树的预测目标;以此类推,迭代地对每棵决策树进行更新,直到所有决策树都更新完成,最终完成对数据分类模型的更新。
以下结合具体实施例对本发明所述的增量式的梯度提升决策树更新方法进行进一步阐释:
假定在初始训练数据集上,基于梯度提升决策树算法,已经建立了一个数据分类模型,如表1所示,所有已排序属性对应的初始数据集中的一个初始数据集Dold,其中属性“online time”表示每天上网时长,并且其所有属性值已排序;属性“play time”表示每天玩游戏时长;属性“income”表示月收入;属性“age”表示年龄,且属性“age”为需要预测的目标列。每当新的数据块到来时,使用增量式的梯度提升决策树算法,快速更新一个已有数据分类模型。
表1
A:对增量数据集与原始数据集进行排序归并,形成合并了新的数据块后的当前最新有序数据集。
步骤A包含以下具体步骤:
A1:在一个或多个新的数据块实时到达后,首先对新的数据块上的各个属性进行单独排序,然后为每个属性独立生成一个排序后的数据集;如表2所示,是对属性“onlinetime”排序后对应的新数据集Dnew。使用此种策略便于后续步骤中利用多线程或并行的方法同时对多个属性进行最佳分裂值的计算,以加快最佳分裂属性和分裂值的计算速度。
Online time | Play time | income | age |
0.5 | 0 | 2000 | 70 |
2 | 0.5 | 4500 | 30 |
4 | 1 | 3800 | 25 |
表2
A2:使用排序归并策略,依次将新的数据块上为每个属性独立生成的排序后的数据集和该属性原有的基于原始数据集排序的数据集进行合并,合并方法如下:
为每个属性Ti原有的基于原始数据集排序的数据集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’。
本实施例中,将属性“online time”已排序的数据集Dnew和数据集Dold按照排序归并策略进行合并。排序归并策略如图2所示,其中M1表示数据集Dold中已排序的初始属性值,M2表示数据集Dnew中已排过序的新属性值,P1为指向M1的指针,P2为指向M2的指针;
首先使用P2指向M2的第一个属性值0.5,与M1的属性值从头开始(此时属性值为1)进行比较,此时P2指向的属性值0.5小于P1所指向的属性值1,则将P2指向的属性值0.5,直接插入P1所指向的属性值1的位置之前,指针P1位置不变,即指针P1仍指向原属性值1,然后指针P2向前移动指向数据集Dnew的下一个属性值2,此时P1所指向的属性值为1;
由于此时指针P2指向的属性值2大于P1指向的属性值1,因此指针P1向前移动,指向下一个属性值3;此时指针P2指向的属性值2小于P1所指向的属性值3,则将P2指向的属性值2插入P1所指向的属性值3的位置之前,指针P1位置不变,即P1仍指向原有属性值3,然后指针P2向前移动指向数据集Dnew的下一个属性值4,此时P1所指向的属性值为3;
由于此时指针P2指向的属性值4大于P1指向的属性值3,因此指针P1向前移动,指向下一个属性值3;由于此时指针P2指向的属性值4仍然大于P1指向的属性值3,因此指针P1继续向前移动,指向下一个属性值5;
由于此时指针P2指向的属性值4小于P1所指向的属性值5,因此将P2指向的属性值4直接插入到P1所指向的属性值5的位置上,指针P1指向最新属性值4的位置。由于此时M2中的属性值已经完全插入M1中,最后得到的数据集M1即为合并后的数据集,如表3所示,记为Dall。
Online time | Play time | income | age |
0.5 | 0 | 2000 | 70 |
1 | 0 | 3000 | 63 |
2 | 0.5 | 4500 | 30 |
3 | 0 | 5000 | 50 |
3 | 1 | 6000 | 32 |
4 | 1 | 3800 | 25 |
5 | 2 | 4000 | 28 |
表3
B:分别计算每个结点在当前最新有序数据集上的最新最佳分裂属性和分裂值。
步骤B包括以下具体步骤:
B1:对每个属性Ti,在根据步骤A得到属性Ti所对应的最新有序数据集OriDatai’后,利用基于CART决策树算法中构建二叉决策树的方法,计算每个属性Ti在最新有序数据集OriDatai’的最佳分裂值,具体方法如下:
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’进行水平分裂,通过水平分裂得到左侧的子结点和右侧的子结点,再通过公式(1)再次计算损失值,记为Fi2,表示按照第i个属性Ti的第2个属性值分裂后计算得到的损失值;
b13:以此类推,依次计算按照属性Ti的其它属性值水平分裂最新有序数据集OriDatai’后的对应的损失值,分别对应记为Fi3,Fi4,……,Fin。
b14:从Fi1,Fi2Fi3,Fi4,……,Fin中选择其中最大的损失值,记为Fik,1≤k≤n,并记录下Fik对应的分裂值。
本实施例中,对数据集Dall中属性“onlinetime”计算其最佳分裂值,其依据是按照该属性的某个值分裂后具有最大损失值。
首先父结点包含数据集Dall的所有实例,则父结点中实例的个数为7,其所有实例中,位于目标列数值的平均值为42.57。若父结点尝试按照属性“online time”的第一个值尝试分裂,则实例(0.5,0,2000,70)被水平分割到左子结点,左子结点中所有实例目标列的平均值为70,实例(1,0,3000,63),(2,0.5,4500,30),(3,0,5000,50),(3,1,6000,32),(4,1,3800,25)和(5,2,4000,28)共6个实例被水平分割到右子结点,右子结点中所有实例目标列的平均值是38。根据公式(1),此时的损失值为(1×702+6×382)-7×42.572=878.5657;若父结点按照属性“onlinetime”的第2个值尝试分裂,则实例(0.5,0,2000,70),(1,0,3000,63)被水平分割到左子结点,左子结点中所有实例目标列的平均值为66.5,实例(2,0.5,4500,30),(3,0,5000,50),(3,1,6000,32),(4,1,3800,25),(5,2,4000,28)共5个实例被水平分割到右子结点,右子结点中所有实例目标值的平均值是33。根据公式(1),此时的损失值为(2×66.52+5×332)-7×382=4181.5。按照此方法尝试对属性“online time”的其他值分裂,分裂后得到的损失值分别为3304.58,3642.58,3301.5,2826.0,2578.29。最后选取最大损失值4181.5对应的值1为属性“online time”的最佳分裂值。
对数据集Dall其他属性,按照步骤B1计算各个属性最大损失值及对应的分裂值。按照公式(1)计算其他属性的最大损失值,属性“play time”的最大损失值为4181.5,此时对应的分裂值为0,属性“income”的最大损失值为4181.5,此时对应的分裂值为3000。
B2:从所有属性中,挑选出最大损失值对应的属性Tj,Tj即为根结点上的最佳分裂属性,若多个属性所对应的损失值大小一致,则任选其中一个属性作为根结点上的最佳分裂属性;使用属性Tj及其对应的分裂值,在根结点上水平分裂对应的数据集OriDataj’,完成对当前结点上最新最佳分裂属性的计算,数据集OriDataj’为属性Tj所对应的经排序归并后的最新有序数据集。
B3:使用步骤B1和B2所述的方法,按照深度优先或广度优先的策略,继续对父结点的左子结点和右子结点分别计算最新最佳分裂属性和分裂值,直到满足自定义的分裂停止条件为止,使用深度优先所对应的分裂停止条件为自定义的树的深度,使用广度优先策略所对应的分裂停止条件为自定义的叶子节点数。
本实施例中,对数据集Dall其他属性,按照步骤B1计算各个属性最大损失值及对应的分裂值。按照公式(1)计算其他属性的最大损失值,属性“play time”的最大损失值为4181.5,此时对应的分裂值为0,属性“income”的最大损失值为4181.5,此时对应的分裂值为3000。通过比较3个属性对应的最大损失值可知,3个属性的最大损失值相等,则随机挑选其中一个属性为最佳分裂属性即可,如选择最佳分裂属性是“income”,最佳分裂值为3000,即对应的分裂实例是(1,0,3000,63)。
C:更新数据分类模型。
对决策树中的每个结点,基于合并了新的数据块后的当前最新有序数据集,首先利用步骤B计算得到的最新最佳分裂属性,与新的数据块到来前该结点上最佳分裂属性进行对比;当最新最佳分裂属性和新的数据块到来前该结点上的最佳分裂属性相同时,仅更新该结点上该属性的分裂值,否则进一步判断该结点是决策树的中间结点还是根结点;如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;每当更新完一个决策树,使用已更新完的决策树对新数据集的目标列进行残差更新,迭代地更新每一棵决策树及新数据集目标列的残差值,直到数据分类模型更新完毕。
步骤C包括以下具体步骤:
C1:对单棵决策树进行更新;具体方法如下:
首先,对该决策树的根结点,利用步骤B计算得到该结点在当前最新有序数据集上的最新最佳分裂属性进行判断:
如果决策树中根结点上的最新最佳分裂属性与原有的分裂属性相同,则仅更新根结点上该属性的分裂值;然后,对根结点的左子结点和右子结点,按照步骤B分别计算子结点上的最新最佳分裂属性,如果该子结点上的最新最佳分裂属性和该子结点上原有的分裂属性相同,则仅更新该子结点上该属性的分裂值;依次类推,按照深度优先或广度优先的策略,递归地更新每一个子结点,直到所有结点更新完成,最终对一棵决策树完成快速更新;此种情况下,仅仅对结点的分裂值进行更新,与原有的梯度提升决策树相比,省去了重新建立决策树的过程,加快了最新决策树的建立,整体上促进了数据分类模型的建立速度。
如果决策树中某结点的最新最佳分裂属性和原有的分裂属性不相同,则进一步判断该结点是中间结点还是根结点,如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;然后,对于剩余的每棵决策树,结合前一棵决策树对应的最新残差,重新训练一棵新的决策树,替代当前的整棵决策树。此种情况下,原有的梯度提升决策树相比,减少了重新建立决策树的深度或个数,同样加快了整体数据分类模型的建立速度。
C2:计算最新残差,最新残差的具体计算方法如下:
基于梯度提升决策树算法中决策树的集成方法,对新的数据块到达后已更新过的所有决策树进行集成,使用该集成模型对合并了新的数据块后的当前数据集中的每一个实例的目标列的值进行预测,得到的预测值与该实例在目标列上的真实值相减,得到该实例对应的残差值。所有实例的残差值计算完毕后,这些最新的残差值的集合即为最新残差。
其中,梯度提升决策树算法中决策树的集成方法如下:
某个实例的预测结果=第1棵决策树对该实例的预测结果+第2棵决策树对该实例的预测结果*学习率+第3棵决策树对该实例的预测结果*学习率+…+最新更新过的决策树对该实例的预测结果*学习率。
上述方法中,学习率是由用户定义的用于控制分类模型的收敛速度的一个数值型参数,学习率的取值范围是(0,1]。
C3:按照步骤C1依次对剩余的每棵决策树进行更新,每更新完一棵决策树后,都按照步骤C2计算最新残差,并将得到的该最新残差作为下一棵决策树的预测目标;以此类推,迭代地对每棵决策树进行更新,直到所有决策树都更新完成,最终完成对数据分类模型的更新。
Claims (6)
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将最新有序数据集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’进行水平分裂,通过水平分裂得到左侧的子结点和右侧的子结点,再通过公式(1)再次计算损失值,记为Fi2,表示按照第i个属性Ti的第2个属性值分裂后计算得到的损失值;
b13:以此类推,依次计算按照属性Ti的其它属性值水平分裂最新有序数据集OriDatai’后的对应的损失值,分别对应记为Fi3,Fi4,……,Fin;
b14:从Fi1,Fi2Fi3,Fi4,……,Fin中选择其中最大的损失值,记为Fik,1≤k≤n,并记录下Fik对应的分裂值。
6.根据权利要求1所述的增量式的梯度提升决策树更新方法,其特征在于,所述的步骤C包括以下具体步骤:
C1:对单棵决策树进行更新,具体方法如下:
对该决策树的根结点,利用步骤B计算得到该结点在当前最新有序数据集上的最新最佳分裂属性进行判断:
如果决策树中根结点上的最新最佳分裂属性与原有的分裂属性相同,则仅更新根结点上该属性的分裂值;然后,对根结点的左子结点和右子结点,按照步骤B分别计算子结点上的最新最佳分裂属性,如果该子结点上的最新最佳分裂属性和该子结点上原有的分裂属性相同,则仅更新该子结点上该属性的分裂值;依次类推,按照深度优先或广度优先的策略,递归地更新每一个子结点,直到所有结点更新完成,最终对一棵决策树完成快速更新;
如果决策树中某结点的最新最佳分裂属性和原有的分裂属性不相同,则进一步判断该结点是中间结点还是根结点,如果该结点是决策树的中间结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,从该中间结点起重新训练一棵新的子树,替代原有的以该中间结点作为根结点的子树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;如果该结点是根结点,则基于CART决策树算法中构建二叉决策树的方法,使用前一棵决策树对应的最新残差,重新训练一个新的决策树,替代原有的、当前根结点所在的整棵决策树,若该结点所在决策树为第一棵决策树,则使用当前最新有序数据集中每一个实例目标列的值减去所有实例目标列的平均值作为最新残差;然后,对于剩余的每棵决策树,结合前一棵决策树对应的最新残差,重新训练一棵新的决策树,替代当前的整棵决策树;
C2:计算最新残差,最新残差的具体计算方法如下:
基于梯度提升决策树算法中决策树的集成方法,对新的数据块到达后已更新过的所有决策树进行集成,使用该集成模型对合并了新的数据块后的当前数据集中的每一个实例的目标列的值进行预测,得到的预测值与该实例在目标列上的真实值相减,得到该实例对应的残差值;所有实例的残差值计算完毕后,这些最新的残差值的集合即为最新残差;
其中,梯度提升决策树算法中决策树的集成方法如下:
某个实例的预测结果=第1棵决策树对该实例的预测结果+第2棵决策树对该实例的预测结果*学习率+第3棵决策树对该实例的预测结果*学习率+…+最新更新过的决策树对该实例的预测结果*学习率;
其中,学习率是由用户定义的用于控制分类模型的收敛速度的一个数值型参数,学习率的取值范围是(0,1];
C3:按照步骤C1依次对剩余的每棵决策树进行更新,每更新完一棵决策树后,都按照步骤C2计算最新残差,并将得到的该最新残差作为下一棵决策树的预测目标;以此类推,迭代地对每棵决策树进行更新,直到所有决策树都更新完成,最终完成对数据分类模型的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610919285.8A CN106446964B (zh) | 2016-10-21 | 2016-10-21 | 一种增量式的梯度提升决策树更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610919285.8A CN106446964B (zh) | 2016-10-21 | 2016-10-21 | 一种增量式的梯度提升决策树更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106446964A true CN106446964A (zh) | 2017-02-22 |
CN106446964B CN106446964B (zh) | 2018-04-03 |
Family
ID=58175648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610919285.8A Active CN106446964B (zh) | 2016-10-21 | 2016-10-21 | 一种增量式的梯度提升决策树更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106446964B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133692A (zh) * | 2017-04-16 | 2017-09-05 | 信阳师范学院 | 基于加号模型的光伏发电功率预测方法 |
CN107203866A (zh) * | 2017-06-26 | 2017-09-26 | 北京京东尚科信息技术有限公司 | 订单的处理方法以及装置 |
CN107330464A (zh) * | 2017-06-30 | 2017-11-07 | 众安信息技术服务有限公司 | 数据处理方法和装置 |
CN108536650A (zh) * | 2018-04-03 | 2018-09-14 | 北京京东尚科信息技术有限公司 | 生成梯度提升树模型的方法和装置 |
CN108717548A (zh) * | 2018-04-10 | 2018-10-30 | 中国科学院计算技术研究所 | 一种面向传感器动态增加的行为识别模型更新方法及系统 |
CN109726766A (zh) * | 2019-01-04 | 2019-05-07 | 三峡大学 | 一种基于集成决策树的电力系统在线动态安全评估方法 |
CN112118259A (zh) * | 2020-09-17 | 2020-12-22 | 四川长虹电器股份有限公司 | 一种基于提升树的分类模型的越权漏洞检测方法 |
WO2021114676A1 (zh) * | 2019-12-13 | 2021-06-17 | 浪潮电子信息产业股份有限公司 | 一种硬盘预测模型的更新方法、装置、设备及介质 |
CN113497785A (zh) * | 2020-03-20 | 2021-10-12 | 深信服科技股份有限公司 | 恶意加密流量检测方法、系统、存储介质和云端服务器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354588A (zh) * | 2015-09-28 | 2016-02-24 | 北京邮电大学 | 一种构造决策树的方法 |
CN105808582A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 基于分层策略的决策树并行生成方法和装置 |
-
2016
- 2016-10-21 CN CN201610919285.8A patent/CN106446964B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808582A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 基于分层策略的决策树并行生成方法和装置 |
CN105354588A (zh) * | 2015-09-28 | 2016-02-24 | 北京邮电大学 | 一种构造决策树的方法 |
Non-Patent Citations (1)
Title |
---|
DIMITRI P. BERTSEKAS: "Incremental Gradient, Subgradient, and Proximal Methods for Convex Optimization: A Survey", 《REPORT LIDS》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133692A (zh) * | 2017-04-16 | 2017-09-05 | 信阳师范学院 | 基于加号模型的光伏发电功率预测方法 |
CN107203866B (zh) * | 2017-06-26 | 2021-02-26 | 北京京东尚科信息技术有限公司 | 订单的处理方法以及装置 |
CN107203866A (zh) * | 2017-06-26 | 2017-09-26 | 北京京东尚科信息技术有限公司 | 订单的处理方法以及装置 |
CN107330464A (zh) * | 2017-06-30 | 2017-11-07 | 众安信息技术服务有限公司 | 数据处理方法和装置 |
WO2019001359A1 (zh) * | 2017-06-30 | 2019-01-03 | 众安信息技术服务有限公司 | 数据处理方法和数据处理装置 |
CN108536650A (zh) * | 2018-04-03 | 2018-09-14 | 北京京东尚科信息技术有限公司 | 生成梯度提升树模型的方法和装置 |
CN108536650B (zh) * | 2018-04-03 | 2022-04-26 | 北京京东尚科信息技术有限公司 | 生成梯度提升树模型的方法和装置 |
CN108717548A (zh) * | 2018-04-10 | 2018-10-30 | 中国科学院计算技术研究所 | 一种面向传感器动态增加的行为识别模型更新方法及系统 |
CN109726766A (zh) * | 2019-01-04 | 2019-05-07 | 三峡大学 | 一种基于集成决策树的电力系统在线动态安全评估方法 |
WO2021114676A1 (zh) * | 2019-12-13 | 2021-06-17 | 浪潮电子信息产业股份有限公司 | 一种硬盘预测模型的更新方法、装置、设备及介质 |
CN113497785A (zh) * | 2020-03-20 | 2021-10-12 | 深信服科技股份有限公司 | 恶意加密流量检测方法、系统、存储介质和云端服务器 |
CN113497785B (zh) * | 2020-03-20 | 2023-05-12 | 深信服科技股份有限公司 | 恶意加密流量检测方法、系统、存储介质和云端服务器 |
CN112118259A (zh) * | 2020-09-17 | 2020-12-22 | 四川长虹电器股份有限公司 | 一种基于提升树的分类模型的越权漏洞检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106446964B (zh) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106446964B (zh) | 一种增量式的梯度提升决策树更新方法 | |
CN104573359B (zh) | 一种基于任务难度与标注者能力的众包标注数据整合方法 | |
CN108764597A (zh) | 一种基于集成学习的产品质量控制方法 | |
CA2152211C (en) | System and method for automated interpretation of input expressions using novel a posteriori probability measures and optimally trained information processing networks | |
CN108804784A (zh) | 一种基于贝叶斯高斯混合模型的即时学习软测量建模方法 | |
CN106709754A (zh) | 一种用基于文本挖掘的电力用户分群方法 | |
CN107169001A (zh) | 一种基于众包反馈和主动学习的文本分类模型优化方法 | |
CN107506823A (zh) | 一种用于对话生成的混合神经网络模型的构建方法 | |
CN108647583A (zh) | 一种基于多目标学习的人脸识别算法训练方法 | |
CN104951987B (zh) | 基于决策树的作物育种评价方法 | |
CN106202891A (zh) | 一种面向医疗质量评价的大数据挖掘方法 | |
CN106022473A (zh) | 一种融合粒子群和遗传算法的基因调控网络构建方法 | |
CN110599839A (zh) | 一种基于智能组卷和文本分析评阅的在线考试方法和系统 | |
CN107680018A (zh) | 一种基于大数据及人工智能的高考志愿填报系统及方法 | |
CN107292785A (zh) | 一种出题方法及系统 | |
KR102593835B1 (ko) | 휴리스틱 가우스 클라우드 변환에 기반하는 얼굴인식 기술 | |
CN104463221A (zh) | 适用于支持向量机训练的不平衡样本加权方法 | |
CN105740354A (zh) | 自适应潜在狄利克雷模型选择的方法及装置 | |
CN110289987A (zh) | 基于表征学习的多智能体系统网络抗攻击能力评估方法 | |
CN110263232A (zh) | 一种基于广度学习和深度学习的混合推荐方法 | |
CN110008332A (zh) | 通过强化学习提取主干词的方法及装置 | |
CN111950195A (zh) | 一种基于画像系统与深度回归模型的工程进度预测方法 | |
CN104572900B (zh) | 一种作物育种评价的性状特征选择方法 | |
CN116502943A (zh) | 一种熔模铸造产品质量追溯方法 | |
CN103294828A (zh) | 数据挖掘模型维度的验证方法和验证装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |