一种基于随机森林的模型训练方法和装置制造方法及图纸

技术编号:16456949 阅读:24 留言:0更新日期:2017-10-25 21:10
本申请实施例提供了一种基于随机森林的模型训练方法和装置,该方法包括:将工作节点划分成一个或多个分组;由每个分组中的工作节点从预置的样本数据中进行随机采样,获得目标样本数据;由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象。本申请实施例不需要扫描一次完整的样本数据,大大降低了数据的读取量,减少了耗费的时间,进而减少模型的迭代更新时间、提高训练效率。

A method and device for model training based on random forest

The embodiment of the invention provides a method and device for training model based on random forest, the method includes: the work node is divided into one or more packets; by the nodes in each group from the sample data preset in random sampling, obtain the target sample data; the training sample data of a target one or more objects used by decision tree nodes in each group. The application example does not need to scan a complete sample data, greatly reduces the amount of data reading, reduces the time spent, thereby reducing the iterative update time of the model and improving the training efficiency.

【技术实现步骤摘要】
一种基于随机森林的模型训练方法和装置
本申请涉及计算机处理的
,特别是涉及一种基于随机森林的模型训练方法和一种基于随机森林的模型训练装置。
技术介绍
随着互联网的快速发展,人们生活的方方面面都与互联网产生了联系,在人们使用互联网的相关功能时,产生了海量的数据。目前,经常使用随机森林(Randomforest)算法进行模型训练,对这些海量的数据进行挖掘,从而进行分类、推荐等操作。随机森林是一个树型分类器{h(x,k),k=1,…}的集合,元分类器h(x,k)一般是用CART(ClassificationAndRegressionTree,分类回归树)算法构建的没有剪枝的决策树,其中,x是输入向量,k是独立同分布的随机向量,决定了单颗树的生长过程,速记森林的输出通常采用多数投票法得到。由于样本数据的规模达到几亿甚至几十亿,单机版的随机森林已经不能处理海量规模的,通常使用并行版的随机森林。假设样本数据的全集为D,要训练100棵决策树,并行实现方案一般如下:1、样本随机采样;同时启动100个工作节点worker,每个worker从D中随机采样出一个样本数据的子集S,S的大小一般远远小于D,单台计算机可处理。2、单个worker基于S、应用CART算法训练决策树。在训练决策树时,对于非连续特征,一般是计算该特征的基尼系数Gini,基于最佳基尼系数Gini进行分裂。在这种方案中,由于每个worker都是从样本数据的全集中采样子集,因此,需要扫面一次样本数据的全集,数据读取量大,耗费较多的时间进行读取,使得模型的迭代更新时间较长、训练效率较低。在计算基尼系数Gini时,通常需要使用穷举法,即假设有n个特征,且CART树是二分类的,则所有分支的组合有(2n-1-1)种,需要计算(2n-1-1)次基尼系数Gini,复杂度为O(2n-1-1),计算的复杂度为指数级别,在训练决策树时耗费大量的时间,同样使得使得模型的迭代更新时间较长、训练效率较低。
技术实现思路
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于随机森林的模型训练方法和相应的一种基于随机森林的模型训练装置。为了解决上述问题,本申请实施例公开了一种基于随机森林的模型训练方法,包括:将工作节点划分成一个或多个分组;由每个分组中的工作节点从预置的样本数据中进行随机采样,获得目标样本数据;由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象。优选地,每个分组中的工作节点包括一个或多个第一工作节点以及一个或多个第二工作节点;所述由每个分组中的工作节点从预置的样本数据中进行随机采样的,获得目标样本数据步骤包括:在每个分组中,由每个第一工作节点从预置的样本数据中读取部分样本数据;由每个第一工作节点将读取的部分样本数据随机分发至每个第二工作节点中,以分发至第二工作节点的样本数据作为目标样本数据。优选地,所述由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象的步骤包括:在每个分组中,由每个第二工作节点采用所述目标样本数据训练一个决策树对象。优选地,所述由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象的步骤包括:当所述目标样本数据的属性信息的值为枚举值时,计算所述属性信息的值的权重;按照所述权重对所述属性信息的值进行排序;采用排序后的属性信息的值计算基尼系数;按照所述基尼系数针对决策树对象的树节点进行分裂处理。优选地,所述计算所述属性信息的值的权重的步骤包括:当所述属性信息的分类列为二分类时,计算所述属性信息的值对于所述分类列的频率;对所述频率进行归一化,获得权重。优选地,所述计算所述属性信息的值的权重的步骤包括:当所述属性信息的分类列为多分类时,计算所述属性信息的值针对所述分类列的权重概率矩阵,其中,所述权重概率矩阵的横坐标为所述属性信息的值、纵坐标为所述分类列的值;对所述权重概率矩阵进行主成分分析,获得最大特征值对应的特征向量;将所述权重概率矩阵乘以所述特征向量,获得权重。优选地,所述采用排序后的属性信息的值计算基尼系数的步骤包括:按照排序的顺序依次将排序后的属性信息的值划分为两个属性子集;依次采用所述两个属性子集计算基尼系数。本申请实施例还公开了一种基于随机森林的模型训练装置,包括:分组划分模块,用于将工作节点划分成一个或多个分组;随机采样模块,用于由每个分组中的工作节点从预置的样本数据中进行随机采样,获得目标样本数据;决策树训练模块,用于由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象。优选地,每个分组中的工作节点包括一个或多个第一工作节点以及一个或多个第二工作节点;所述随机采样模块包括:部分数据读取子模块,用于在每个分组中,由每个第一工作节点从预置的样本数据中读取部分样本数据;数据随机分发子模块,用于由每个第一工作节点将读取的部分样本数据随机分发至每个第二工作节点中,以分发至第二工作节点的样本数据作为目标样本数据。优选地,所述决策树训练模块包括:节点训练子模块,用于在每个分组中,由每个第二工作节点采用所述目标样本数据训练一个决策树对象。优选地,所述决策树训练模块包括:权重计算子模块,用于在所述目标样本数据的属性信息的值为枚举值时,计算所述属性信息的值的权重;排序子模块,用于按照所述权重对所述属性信息的值进行排序;基尼系数计算子模块,用于采用排序后的属性信息的值计算基尼系数;分裂子模块,用于按照所述基尼系数针对决策树对象的树节点进行分裂处理。优选地,所述权重计算子模块包括:频率计算单元,用于在所述属性信息的分类列为二分类时,计算所述属性信息的值对于所述分类列的频率;归一化单元,用于对所述频率进行归一化,获得权重。优选地,所述权重计算子模块包括:权重概率矩阵计算单元,用于在所述属性信息的分类列为多分类时,计算所述属性信息的值针对所述分类列的权重概率矩阵,其中,所述权重概率矩阵的横坐标为所述属性信息的值、纵坐标为所述分类列的值;主成分分析单元,用于对所述权重概率矩阵进行主成分分析,获得最大特征值对应的特征向量;权重获得单元,用于将所述权重概率矩阵乘以所述特征向量,获得权重。优选地,所述基尼系数计算子模块包括:子集划分单元,用于按照排序的顺序依次将排序后的属性信息的值划分为两个属性子集;子集计算单元,用于依次采用所述两个属性子集计算基尼系数。本申请实施例包括以下优点:本申请实施例将工作节点划分成一个或多个分组,由每个分组中的工作节点从预置的样本数据中进行随机采样,获得目标样本数据,进而训练决策树对象,因此,每个分组中的工作节点仅是读取部分的样本数据,而不需要扫描一次完整的样本数据,大大降低了数据的读取量,减少了耗费的时间,进而减少模型的迭代更新时间、提高训练效率。本申请实施例对此枚举值的属性,通过重要性排序的方式计算分裂点,无需进行穷举,大大减少了分裂点的计算量,假设属性有n个值,通过重要性排序的方式计算分裂点的方式,计算的复杂度可以从穷举法的O(2n-1-1),降低到O(n),减少了训练时间的耗费,进而减少模型的迭代更新时间、提高训练效率。附图说明图1是本申请的一种基于随机森林的模型训练方法实施例的步骤流程图;图2是本申请实施例的一种分组示例本文档来自技高网
...
一种基于随机森林的模型训练方法和装置

【技术保护点】
一种基于随机森林的模型训练方法,其特征在于,包括:将工作节点划分成一个或多个分组;由每个分组中的工作节点从预置的样本数据中进行随机采样,获得目标样本数据;由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象。

【技术特征摘要】
1.一种基于随机森林的模型训练方法,其特征在于,包括:将工作节点划分成一个或多个分组;由每个分组中的工作节点从预置的样本数据中进行随机采样,获得目标样本数据;由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象。2.根据权利要求1所述的方法,其特征在于,每个分组中的工作节点包括一个或多个第一工作节点以及一个或多个第二工作节点;所述由每个分组中的工作节点从预置的样本数据中进行随机采样的,获得目标样本数据步骤包括:在每个分组中,由每个第一工作节点从预置的样本数据中读取部分样本数据;由每个第一工作节点将读取的部分样本数据随机分发至每个第二工作节点中,以分发至第二工作节点的样本数据作为目标样本数据。3.根据权利要求2所述的方法,其特征在于,所述由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象的步骤包括:在每个分组中,由每个第二工作节点采用所述目标样本数据训练一个决策树对象。4.根据权利要求1或2或3所述的方法,其特征在于,所述由每个分组中的工作节点采用所述目标样本数据训练一个或多个决策树对象的步骤包括:当所述目标样本数据的属性信息的值为枚举值时,计算所述属性信息的值的权重;按照所述权重对所述属性信息的值进行排序;采用排序后的属性信息的值计算基尼系数;按照所述基尼系数针对决策树对象的树节点进行分裂处理。5.根据权利要求4所述的方法,其特征在于,所述计算所述属性信息的值的权重的步骤包括:当所述属性信息的分类列为二分类时,计算所述属性信息的值对于所述分类列的频率;对所述频率进行归一化,获得权重。6.根据权利要求4所述的方法,其特征在于,所述计算所述属性信息的值的权重的步骤包括:当所述属性信息的分类列为多分类时,计算所述属性信息的值针对所述分类列的权重概率矩阵,其中,所述权重概率矩阵的横坐标为所述属性信息的值、纵坐标为所述分类列的值;对所述权重概率矩阵进行主成分分析,获得最大特征值对应的特征向量;将所述权重概率矩阵乘以所述特征向量,获得权重。7.根据权利要求4所述的方法,其特征在于,所述采用排序后的属性信息的值计算基尼系数的步骤包括:按照排序的顺序依次将排序后的属性信息的值划分为两个属性子集;依次采用所述两个属性子集计算基尼系数。8.一种基于随机森林的模型训练装置,其特征在于,包括:分组划分模...

【专利技术属性】
技术研发人员:姜晓燕王少萌杨旭
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1