决策树分箱计算优化方法、设备、介质和计算机程序产品与流程

文档序号:30436450发布日期:2022-06-17 20:21阅读:123来源:国知局
决策树分箱计算优化方法、设备、介质和计算机程序产品与流程

1.本技术涉及金融科技(fintech)的人工智能领域,尤其涉及一种决策树分箱计算优化方法、设备、介质和计算机程序产品。


背景技术:

2.随着金融科技,尤其是互联网科技金融的不断发展,越来越多的技术(如分布式、区块链blockchain、人工智能等)应用在金融领域,但金融业也对技术提出了更高的要求,如对金融业对应待办事项的分发也有更高的要求。
3.随着计算机软件和人工智能的不断发展,机器学习的应用领域也越来越广泛,目前,在进行基于联邦学习的决策树分箱时,通常需要涉及到密态下的大数分箱,此时,需要对每一分箱中的多个大数进行求和,目前,通常通过基于cpu的串行计算的方式对每一决策树分箱进行大数求和,但是由于大数所对应的数据位数极大,进而导致该方法的计算复杂度极高,进而导致计算效率极低。


技术实现要素:

4.本技术的主要目的在于提供一种决策树分箱计算优化方法、设备、介质和计算机程序产品,旨在解决现有技术中决策树分箱时计算效率低的技术问题。
5.为实现上述目的,本技术提供一种决策树分箱计算优化方法,所述决策树分箱计算优化方法应用于决策树分箱计算优化设备,所述决策树分箱计算优化方法包括:
6.获取目标决策树对应的内存存储数据和所述内存存储数据对应的索引表,其中,所述索引表至少包括一节点分箱标签;
7.基于各所述决策树分箱的大小,对各所述节点分箱标签进行分割,获得各分箱标签分割批次;
8.依据所述索引表,在所述内存存储数据中分别提取各所述分箱标签分割批次对应的决策树分箱批次数据;
9.基于各所述分箱标签分割批次对应的决策树分箱大小信息,分别为各所述决策树分箱批次数据匹配对应的并行计算线程数;
10.基于各所述并行计算线程数,分别对各所述决策树分箱批次数据并行进行决策树分箱计算,获得目标决策树分箱计算结果。
11.本技术还提供一种决策树分箱计算优化装置,所述决策树分箱计算优化装置为虚拟装置,且所述决策树分箱计算优化装置应用于决策树分箱计算优化设备,所述决策树分箱计算优化装置包括:
12.获取模块,用于获取目标决策树对应的内存存储数据和所述内存存储数据对应的索引表,其中,所述索引表至少包括一节点分箱标签;
13.分割模块,用于基于各所述决策树分箱的大小,对各所述节点分箱标签进行分割,获得各分箱标签分割批次;
14.提取模块,用于依据所述索引表,在所述内存存储数据中分别提取各所述分箱标签分割批次对应的决策树分箱批次数据;
15.匹配模块,用于基于各所述分箱标签分割批次对应的决策树分箱大小信息,分别为各所述决策树分箱批次数据匹配对应的并行计算线程数;
16.并行计算模块,用于基于各所述并行计算线程数,分别对各所述决策树分箱批次数据并行进行决策树分箱计算,获得目标决策树分箱计算结果。
17.本技术还提供一种决策树分箱计算优化设备,所述决策树分箱计算优化设备为实体设备,所述决策树分箱计算优化设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述决策树分箱计算优化方法的程序,所述决策树分箱计算优化方法的程序被处理器执行时可实现如上述的决策树分箱计算优化方法的步骤。
18.本技术还提供一种介质,所述介质为可读存储介质,所述可读存储介质上存储有实现决策树分箱计算优化方法的程序,所述决策树分箱计算优化方法的程序被处理器执行时实现如上述的决策树分箱计算优化方法的步骤。
19.本技术还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的决策树分箱计算优化方法的步骤。
20.本技术提供了一种决策树分箱计算优化方法、设备、介质和计算机程序产品,相比于现有技术采用的通过基于cpu的串行计算的方式对每一决策树分箱进行大数求和的技术手段,本技术获取目标决策树对应的内存存储数据和所述内存存储数据对应的索引表,其中,所述索引表至少包括一节点分箱标签,进而基于各所述决策树分箱的大小,对各所述节点分箱标签进行分割,获得各分箱标签分割批次,进而依据所述索引表,在所述内存存储数据中分别提取各所述分箱标签分割批次对应的决策树分箱批次数据,其中,需要说明的是,由于决策树分箱越大,则所需的并行计算线程数越多,若不分批次进行运算,则计算系统将一直以决策树中最大的决策树分箱对应的最大线程数进行并行运算,使得计算复杂度增大,进而基于各所述分箱标签分割批次对应的决策树分箱大小信息,分别为各所述决策树分箱批次数据匹配对应的并行计算线程数,也即,依据各所述决策树分箱分割批次中的决策树分箱大小,为各所述决策树分箱分割批次合理分配合适的线程数,使得并行计算线程数不会过多,进而降低了计算复杂度,且将原先的基于cpu的串行计算方式优化为并行计算方式,进一步降低了计算复杂度,进而基于各所述并行计算线程数,分别对各所述决策树分箱批次数据并行进行决策树分箱计算,获得目标决策树分箱计算结果,即可实现对决策树分箱时的计算效率的优化,克服了现有技术中通过基于cpu的串行计算的方式对每一决策树分箱进行大数求和时,由于大数所对应的数据位数极大,进而导致该方法的计算复杂度极高,而导致计算效率低的技术缺陷,所以,提高了决策树分箱时的计算效率。
附图说明
21.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
22.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
23.图1为本技术决策树分箱计算优化方法第一实施例的流程示意图;
24.图2为本技术决策树分箱计算优化方法中所述索引表的示意图;
25.图3为本技术决策树分箱计算优化方法第二实施例的流程示意图;
26.图4为本技术决策树分箱计算优化方法中进行所述双调协同排序的示意图;
27.图5为本技术决策树分箱计算优化方法中进行大数归约求和的示意图;
28.图6为本技术实施例方案涉及的硬件运行环境的设备结构示意图。
29.本技术目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
30.应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
31.本技术实施例提供一种决策树分箱计算优化方法,在本技术决策树分箱计算优化方法的第一实施例中,参照图1,所述决策树分箱计算优化方法包括:
32.步骤s10,获取目标决策树对应的内存存储数据和所述内存存储数据对应的索引表,其中,所述索引表至少包括一节点分箱标签;
33.在本实施例中,需要说明的是,所述决策树分箱计算优化方法应用于基于联邦学习的决策树分箱,此时,决策树分箱中的数据均为同态加密的大数数据,例如,决策树分箱中的每个数据均需要使用1024位比特位进行存储,则可认定决策树分箱中的每个数据为大数数据,且所述决策树分箱中可包括多个决策树分箱数据,进而决策树分箱计算时的计算量较大且计算复杂度较高。
34.另外地,需要说明的是,所述内存存储数据为存储于gpu内存中的目标决策树中各决策树分箱中的决策树分箱数据,此时,每一个决策树分箱数据均以二进制数据形式存储于gpu内存中,所述索引表至少包括一索引号和一节点分箱标签,其中,一所述索引号对应一节点分箱标签,其中,所述索引号为决策树分箱数据在所述gpu中的存储位置标签,用于在所述内存存储数据中查询决策树分箱数据,所述节点分箱标签为所述决策树分箱的标识,用于标识决策树分箱的身份,所述节点分箱标签包括树节点号、特征号以及分箱号,其中,所述树节点号为树节点的标识,用于表示决策树分箱所属的树节点身份,所述特征号为特征的标识,用于表示决策树分箱所属的特征身份,所述分箱号为分箱的标识,用于表示决策分箱的分箱身份,例如,假设所述节点分箱标签为123,则表明所述节点分箱标签对应的决策树分箱对应的树节点号为1,特征号为2,分箱号为3。
35.获取目标决策树对应的内存存储数据和所述内存存储数据对应的索引表,其中,所述索引表至少包括一节点分箱标签,具体地,通过遍历所述目标决策树,将所述目标决策树对应的列表形式的决策列表数据存储至gpu内存,获得所述内存存储数据,其中,所述目标决策树至少包括一决策树分箱,所述决策树分箱至少包括一决策树分箱数据,进而获取各所述决策树分箱数据对应的节点分箱标签和各所述决策树分箱数据在所述内存存储数据中的存储位置标签,基于各所述节点分箱标签与所述存储位置标签之间的对应关系,构建索引表,其中,由于一个决策树分箱中可能存在一个或者多个决策树分箱数据,一节点分箱标签对应一决策树分箱,所以,一所述节点分箱标签可对应一个或者多个决策树分箱数据,如图2所示为所述索引表的示意图,其中,所述索引表的纵坐标为所述节点分箱标签,所述索引表的横坐标为所述存储位置标签,也即为索引号,其中,001、002、003、004均为所述
节点分箱标签,其余索引表中的数字为所述存储位置标签,-1表示所述存储数据中不存在对应的决策树分箱数据,“node id”为所述树节点号,“feature id”为所述特征号,“value id”为所述分箱号。
36.其中,所述获取目标决策树对应的内存存储数据和所述内存存储数据对应的索引表,其中,所述索引表至少包括一节点分箱标签的步骤包括:
37.步骤s11,遍历所述目标决策树,获得各所述决策树分箱对应的节点分箱标签和所述内存存储数据;
38.在本实施例中,遍历所述目标决策树,获得各所述决策树分箱对应的节点分箱标签和所述内存存储数据,具体地,通过遍历所述目标决策树,获得列表形式的各决策树分箱数据和各所述决策树分箱数据对应的节点分箱标签,将列表形式的各决策树分箱数据存储于gpu内存,获得所述内存存储数据。
39.其中,所述遍历所述目标决策树,获得各所述决策树分箱对应的节点分箱标签和所述内存存储数据的步骤包括:
40.步骤s111,遍历所述目标决策树,获得各所述决策树分箱共同对应的分箱列表数据和各所述决策树分箱对应的分箱标签信息;
41.在本实施例中,遍历所述目标决策树,获得各所述决策树分箱共同对应的分箱列表数据和各所述决策树分箱对应的分箱标签信息,具体地,遍历所述目标决策树,以获取列表形式各所述决策分箱中的决策树分箱数据,获得所述分箱列表数据,并分别获取各所述决策树分箱数据在所述目标决策树中的树节点号、特征号以及分箱作为各所述决策树分箱数据对应的分箱标签信息。
42.步骤s112,将所述分箱列表数据转换至gpu内存,获得所述内存存储数据;
43.在本实施例中,将所述分箱列表数据转换至gpu内存,获得所述内存存储数据,具体地,将所述分箱列表数据以二进制数据形式转换至gpu内存进行存储,获得所述内存存储数据。
44.步骤s113,基于各所述分箱标签信息中的树节点号、特征号以及分箱号,生成各所述节点分箱标签。
45.在本实施例中,基于各所述分箱标签信息中的树节点号、特征号以及分箱号,生成各所述节点分箱标签,具体地,分别将各所述分箱标签信息中的树节点号、特征号以及分箱号以预设顺序进行排列组合,获得各所述决策树分箱数据对应的节点分箱标签。
46.步骤s12,基于各所述决策树分箱中的决策树分箱数据在所述内存存储数据的存储位置,生成各所述决策树分箱数据对应的存储位置标签;
47.在本实施例中,基于各所述决策树分箱中的决策树分箱数据在所述内存存储数据的存储位置,生成各所述决策树分箱数据对应的存储位置标签,具体地,基于各所述决策树分箱中的决策树分箱数据在所述内存存储数据的存储位置,生成各所述决策树分箱数据对应的索引号,并分别将各所述索引号作为对应的决策树分箱数据对应的存储位置标签。
48.步骤s13,基于各所述决策树分箱数据对应的所述节点分箱标签和对应的所述存储位置标签之间的关联关系,构建所述索引表。
49.在本实施例中,基于各所述决策树分箱数据对应的所述节点分箱标签和对应的所述存储位置标签之间的关联关系,构建所述索引表,具体地,基于每一所述决策树分箱数据
与每一所述节点分箱标签之间的对应关系,和每一所述决策树分箱数据与每一所述存储位置标签之间的对应关系,确定各所述节点分箱标签与各所述存储位置标签之间的关联关系,构建所述索引表。
50.步骤s20,基于各所述决策树分箱的大小,对各所述节点分箱标签进行分割,获得各分箱标签分割批次;
51.在本实施例中,需要说明的是,所述决策树分箱的大小为所述决策树分箱中包含的决策树分箱数据的数量大小。
52.基于各所述决策树分箱的大小,对各所述节点分箱标签进行分割,获得各分箱标签分割批次,具体地,在遍历所述目标决策树时,确定各所述决策树分箱中包含的决策树分箱数据的数量,获得各所述决策树分箱的大小,进而依据各所述决策树分箱的大小,将所述索引表中的各所述节点分箱标签分割为不同批次的节点分箱标签集合,获得各分箱标签分割批次,例如,所述目标决策树包括100个决策树分箱,则将所述决策树分箱的大小为0至16的50个决策树分箱作为一分箱标签分割批次,将所述决策树分箱的大小为17至32的50个决策树分箱作为一分箱标签分割批次。
53.步骤s30,依据所述索引表,在所述内存存储数据中分别提取各所述分箱标签分割批次对应的决策树分箱批次数据;
54.在本实施例中,依据所述索引表,在所述内存存储数据中分别提取各所述分箱标签分割批次对应的决策树分箱批次数据,具体地,依据所述索引表,查询每一所述分箱标签分割批次中各节点分箱标签对应的存储位置标签,进而依据各所述存储位置标签,在所述内存存储数据中分别提取每一所述分箱标签分割批次中各所述节点位置标签对应的决策树分箱数据,获得所述分箱标签分割批次对应的决策树分箱批次数据。
55.步骤s40,基于各所述分箱标签分割批次对应的决策树分箱大小信息,分别为各所述决策树分箱批次数据匹配对应的并行计算线程数;
56.在本实施例中,需要说明的是,所述决策树分箱大小信息包括所述分箱标签分割批次对应的各决策树分箱的大小。
57.基于各所述分箱标签分割批次对应的决策树分箱大小信息,分别为各所述决策树分箱批次数据匹配对应的并行计算线程数,具体地,基于各所述分箱标签分割批次对应的各决策树分箱的大小,分别查询各所述分箱标签分割批次对应的线程数,获得各所述决策树分箱批次数据对应的并行计算线程数。
58.其中,所述决策树分箱大小信息包括决策树分箱大小范围,
59.所述基于各所述分箱标签分割批次对应的决策树分箱大小信息,分别为各所述决策树分箱批次数据匹配对应的并行计算线程数的步骤包括
60.步骤s41,获取各所述分箱标签分割批次对应的所述决策树分箱大小范围;
61.在本实施例中,具体地,分别获取每一分箱标签分割批次中各决策树分箱的大小,进而基于每一分箱标签分割批次中各决策树分箱的大小,确定各所述分箱标签分割批次对应的决策树分箱大小范围。
62.步骤s42,分别为各所述决策树分箱大小范围的上限值匹配对应的线程数,获得各所述并行计算线程数。
63.在本实施例中,需要说明的是,在一种可实施的方案中,所述并行计算线程数设置
为大于所述决策树分箱大小范围的上限值的一半的最小的偶数,在一种可实施的方案中,所述并行计算线程数设置为大于所述决策树分箱大小范围的上限值的一半的最小的2n,其中,n的取值为正整数。
64.步骤s50,基于各所述并行计算线程数,分别对各所述决策树分箱批次数据并行进行决策树分箱计算,获得目标决策树分箱计算结果。
65.在本实施例中,基于各所述并行计算线程数,分别对各所述决策树分箱批次数据并行进行决策树分箱计算,获得目标决策树分箱计算结果,具体地,,依次为每一所述决策树分箱批次数据分配所述决策树分箱批次数据对应的并行计算线程数的并行计算线程,并执行决策树分箱计算,直至各所述决策树分箱批次数据均完成计算,获得目标决策树分箱计算结果。
66.其中,所述基于各所述并行计算线程数,分别对各所述决策树分箱批次数据并行进行决策树分箱计算,获得目标决策树分箱计算结果的步骤包括:
67.步骤s51,基于各所述并行计算线程数,分别为各所述决策树分箱批次数据分配对应的gpu并行计算线程组;
68.在本实施例中,需要说明的是,所述gpu并行计算线程组包括对应的并行计算线程数的gpu并行计算线程。
69.步骤s52,基于各所述gpu并行计算线程组,分别对各所述决策树分箱批次数据中的决策树分箱数据进行大数归约求和,获得所述目标决策树分箱计算结果。
70.在本实施例中,基于各所述gpu并行计算线程组,分别对各所述决策树分箱批次数据中的决策树分箱数据进行大数归约求和,获得所述目标决策树分箱计算结果,具体地,对于每一所述gpu并行计算线程组,均执行以下步骤:
71.基于所述gpu并行计算线程组中各gpu并行计算线程,依次对所述gpu并行计算线程组对应的决策树分箱批次数据中每一决策树分箱中的各决策树分箱数据进行大数归约求和,进而在各所述决策树分箱批次数据均计算完毕后,获得各所述决策树分箱对应的大数归约求和结果,也即,获得所述目标决策树分箱计算结果,其中,所述大数归约求和过程如下:例如,假设决策树分箱m中存在4个决策树分箱数据a、b、c和d,则所述gpu并行计算线程组包括并行计算线程x和并行计算线程y,则基于x计算a与c的和a+c,基于y计算b和d的和b+d,进而通过gpu并行计算线程组中的一个冰箱计算线程,计算a+c与b+d的和a+b+c+d,进而完成了对决策树分箱m的大数归约求和。
72.本技术实施例提供了一种决策树分箱计算优化方法,相比于现有技术采用的通过基于cpu的串行计算的方式对每一决策树分箱进行大数求和的技术手段,本技术实施例获取目标决策树对应的内存存储数据和所述内存存储数据对应的索引表,其中,所述索引表至少包括一节点分箱标签,进而基于各所述决策树分箱的大小,对各所述节点分箱标签进行分割,获得各分箱标签分割批次,进而依据所述索引表,在所述内存存储数据中分别提取各所述分箱标签分割批次对应的决策树分箱批次数据,其中,需要说明的是,由于决策树分箱越大,则所需的并行计算线程数越多,若不分批次进行运算,则计算系统将一直以决策树中最大的决策树分箱对应的最大线程数进行并行运算,使得计算复杂度增大,进而基于各所述分箱标签分割批次对应的决策树分箱大小信息,分别为各所述决策树分箱批次数据匹配对应的并行计算线程数,也即,依据各所述决策树分箱分割批次中的决策树分箱大小,为
各所述决策树分箱分割批次合理分配合适的线程数,使得并行计算线程数不会过多,进而降低了计算复杂度,且将原先的基于cpu的串行计算方式优化为并行计算方式,进一步降低了计算复杂度,进而基于各所述并行计算线程数,分别对各所述决策树分箱批次数据并行进行决策树分箱计算,获得目标决策树分箱计算结果,即可实现对决策树分箱时的计算效率的优化,克服了现有技术中通过基于cpu的串行计算的方式对每一决策树分箱进行大数求和时,由于大数所对应的数据位数极大,进而导致该方法的计算复杂度极高,而导致计算效率低的技术缺陷,所以,提高了决策树分箱时的计算效率。
73.进一步地,参照图3,基于本技术中第一实施例,在本技术的另一实施例中,所述基于各所述决策树分箱的大小,对所述目标决策树进行分割,获得各决策树分箱分割批次的步骤包括:
74.步骤s21,基于各所述决策树分箱的大小,对各所述节点分箱标签进行排序,获得标签排序序列;
75.在本实施例中,基于各所述决策树分箱的大小,对各所述节点分箱标签进行排序,获得标签排序序列,具体地,通过对各所述决策树分箱的大小和各所述节点分箱标签进行双调协同排序的方式,基于各所述决策树分箱的大小,对各所述节点分箱标签进行排序,获得标签排序序列,如图4所示为进行所述双调协同排序的示意图,其中,“nid fid val”表示所述节点分箱标签,node size表示所述决策树分箱的大小,bitionicsort为所述双调协同排序,其中,bitionicsort左侧为未进行双调协同排序之前的各决策树分箱大小和各节点分箱标签,bitionicsort右侧为进行双调协同排序之后的各决策树分箱大小和各节点分箱标签,也即为所述标签排序序列。
76.步骤s22,依据所述标签排序序列对应的分箱大小变化程度信息,对所述标签排序列表进行分段,获得各所述分箱标签分割批次。
77.在本实施例中,需要说明的是,所述分箱大小变化程度信息为所述标签排序序列中各所述决策树分箱的大小的变化程度信息,用于表示所述标签排序序列中各所述决策树分箱的大小的变化程度。
78.依据所述标签排序序列对应的分箱大小变化程度信息,对所述标签排序列表进行分段,获得各所述分箱标签分割批次,具体地,依据所述标签排序序列对应的分箱大小变化程度信息,将所述标签排序列表进行分段为各所述分箱标签分割批次,以使得各所述分箱标签分割批次对应的决策树分箱的大小变化程度均小于预设大小变化程度阈值,进而可保证同一分箱标签分割批次对应的决策树分箱的大小变化程度不会过大,进而在为同一分箱标签分割批次中每一决策树分箱中的各决策树分箱数据同时分配计算内存时,不会分配过多的空闲计算内存,进而减少了分箱计算时的空闲计算内存占比,进而减少了关于空闲计算内存的计算过程,所以提高了分箱计算时的计算效率。
79.其中,所述分箱大小变化程度信息包括分箱大小排列梯度信息,
80.所述依据所述标签排序序列对应的分箱大小变化程度信息,对所述标签排序列表进行分段,获得各所述分箱标签分割批次的步骤包括:
81.步骤s221,依据各所述决策树分箱的大小,计算所述标签排序序列对应的分箱大小排列梯度信息;
82.在本实施例中,需要说明的是,所述分箱大小排列梯度信息为标签排序序列中每
两个相邻的节点分箱标签对应的决策树分箱之间的大小变化程度信息,用于表示标签排序序列中每两个相邻的节点分箱标签对应的决策树分箱之间的大小变化程度。
83.依据各所述决策树分箱的大小,计算所述标签排序序列对应的分箱大小排列梯度信息,具体地,依据各所述决策树分箱的大小和预设分箱大小排列梯度计算公式,计算所述标签排序序列对应的各分箱大小排列梯度,获得分箱大小排列梯度信息,其中,所述预设分箱大小排列梯度计算公式如下所示:
[0084][0085]
其中,τ为所述分箱大小排列梯度,node
n+1
为排列第n+1个节点分箱标签对应的决策树分箱的大小,noden为排列第n个节点分箱标签对应的决策树分箱的大小。
[0086]
步骤s222,基于所述分箱大小排列梯度信息,在所述标签排序序列选取各分段点;
[0087]
在本实施例中,基于所述分箱大小排列梯度信息,在所述标签排序序列选取各分段点,具体地,将各所述分箱大小排列梯度与预设分箱大小排列梯度阈值进行比对,以在各所述分箱大小排列梯度中选取大于预设分箱大小排列梯度阈值的各目标分箱大小排列梯度,将各所述目标分箱大小排列梯度对应的两个决策树分箱的大小对应的两个节点分箱标签在所述标签排序序列的连接点作为各分段点,例如,假设梯度a大于预设分箱大小排列梯度阈值,则确定所述梯度a对应的两个决策树分箱的大小对应的两个节点分箱标签x和y,进而将x与y在标签排序序列的连接点作为分段点。
[0088]
步骤s223,基于各所述分段点,对所述标签排序列表进行分段,获得各所述分箱标签分割批次。
[0089]
在本实施例中,如图5所示为进行大数归约求和的示意图,其中,bignm表示决策树分箱数据,决策树分箱数据之间的连线表示并行计算线程,001、002、003、004均为所述节点分箱标签,-1表示不存在决策树分箱数据,也即为空闲内存块,所以,由于需要对齐进行大数归约求和,所以总会存在关于空闲内存块的计算,而导致内存资源和计算资源的消耗。
[0090]
进一步地,在本技术实施例中,由于各所述分段点是基于分箱大小排列梯度信息确定,所以每一所述分箱标签分割批次中每一决策树分箱包含的各决策树分箱数据的数量不会相差过大,进而可减少进行决策树分箱计算时空闲内存块的占比,也即在为各决策树分箱中的决策树分箱数据分配内存时不会存在过多的空闲内存块,进而减少了内存资源的消耗,并减少了关于空闲内存块的计算过程,所以,提高了决策树分箱时的计算效率。
[0091]
本技术实施例提供了一种将所述标签排序列表分割为各所述分箱标签分割批次的方法,也即基于各所述决策树分箱的大小,对各所述节点分箱标签进行排序,获得标签排序序列,依据各所述决策树分箱的大小,计算所述标签排序序列对应的分箱大小排列梯度信息,进而依据分箱大小排列梯度信息将所述标签排序列表分割为各所述分箱标签分割批次,其中,由于各所述分段点是基于分箱大小排列梯度信息确定,进而每一所述分箱标签分割批次中每一决策树分箱包含的各决策树分箱数据的数量不会相差过大,进而可减少进行决策树分箱计算时空闲内存块的占比,也即,在为各决策树分箱中的决策树分箱数据分配内存时不会存在过多的空闲内存块,进而减少了内存资源的消耗,并减少了关于空闲内存块的计算过程,所以,提高了决策树分箱时的计算效率。
[0092]
参照图6,图6是本技术实施例方案涉及的硬件运行环境的设备结构示意图。
[0093]
如图6所示,该决策树分箱计算优化设备可以包括:处理器1001,例如cpu,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
[0094]
可选地,该决策树分箱计算优化设备还可以包括矩形用户接口、网络接口、摄像头、rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。矩形用户接口可以包括显示屏(display)、输入子模块比如键盘(keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
[0095]
本领域技术人员可以理解,图6中示出的决策树分箱计算优化设备结构并不构成对决策树分箱计算优化设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0096]
如图6所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及决策树分箱计算优化程序。操作系统是管理和控制决策树分箱计算优化设备硬件和软件资源的程序,支持决策树分箱计算优化程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与决策树分箱计算优化系统中其它硬件和软件之间通信。
[0097]
在图6所示的决策树分箱计算优化设备中,处理器1001用于执行存储器1005中存储的决策树分箱计算优化程序,实现上述任一项所述的决策树分箱计算优化方法的步骤。
[0098]
本技术决策树分箱计算优化设备具体实施方式与上述决策树分箱计算优化方法各实施例基本相同,在此不再赘述。
[0099]
本技术实施例还提供一种决策树分箱计算优化装置,所述决策树分箱计算优化装置应用于决策树分箱计算优化设备,所述决策树分箱计算优化装置包括:
[0100]
获取模块,用于获取目标决策树对应的内存存储数据和所述内存存储数据对应的索引表,其中,所述索引表至少包括一节点分箱标签;
[0101]
分割模块,用于基于各所述决策树分箱的大小,对各所述节点分箱标签进行分割,获得各分箱标签分割批次;
[0102]
提取模块,用于依据所述索引表,在所述内存存储数据中分别提取各所述分箱标签分割批次对应的决策树分箱批次数据;
[0103]
匹配模块,用于基于各所述分箱标签分割批次对应的决策树分箱大小信息,分别为各所述决策树分箱批次数据匹配对应的并行计算线程数;
[0104]
并行计算模块,用于基于各所述并行计算线程数,分别对各所述决策树分箱批次数据并行进行决策树分箱计算,获得目标决策树分箱计算结果。
[0105]
可选地,所述分割模块还用于:
[0106]
基于各所述决策树分箱的大小,对各所述节点分箱标签进行排序,获得标签排序序列;
[0107]
依据所述标签排序序列对应的分箱大小变化程度信息,对所述标签排序列表进行分段,获得各所述分箱标签分割批次。
[0108]
可选地,所述分割模块还用于:
[0109]
依据各所述决策树分箱的大小,计算所述标签排序序列对应的分箱大小排列梯度信息;
[0110]
基于所述分箱大小排列梯度信息,在所述标签排序序列选取各分段点;
[0111]
基于各所述分段点,对所述标签排序列表进行分段,获得各所述分箱标签分割批次。
[0112]
可选地,所述获取模块还用于:
[0113]
遍历所述目标决策树,获得各所述决策树分箱对应的节点分箱标签和所述内存存储数据;
[0114]
基于各所述决策树分箱中的决策树分箱数据在所述内存存储数据的存储位置,生成各所述决策树分箱数据对应的存储位置标签;
[0115]
基于各所述决策树分箱数据对应的所述节点分箱标签和对应的所述存储位置标签之间的关联关系,构建所述索引表。
[0116]
可选地,所述获取模块还用于:
[0117]
遍历所述目标决策树,获得各所述决策树分箱共同对应的分箱列表数据和各所述决策树分箱对应的分箱标签信息;
[0118]
将所述分箱列表数据转换至gpu内存,获得所述内存存储数据;
[0119]
基于各所述分箱标签信息中的树节点号、特征号以及分箱号,生成各所述节点分箱标签。
[0120]
可选地,所述匹配模块还用于:
[0121]
获取各所述分箱标签分割批次对应的所述决策树分箱大小范围;
[0122]
分别为各所述决策树分箱大小范围的上限值匹配对应的线程数,获得各所述并行计算线程数。
[0123]
可选地,所述并行计算模块还用于:
[0124]
基于各所述并行计算线程数,分别为各所述决策树分箱批次数据分配对应的gpu并行计算线程组;
[0125]
基于各所述gpu并行计算线程组,分别对各所述决策树分箱批次数据中的决策树分箱数据进行大数归约求和,获得所述目标决策树分箱计算结果。
[0126]
本技术决策树分箱计算优化装置的具体实施方式与上述决策树分箱计算优化方法各实施例基本相同,在此不再赘述。
[0127]
本技术实施例提供了一种介质,所述介质为可读存储介质,且所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的决策树分箱计算优化方法的步骤。
[0128]
本技术可读存储介质具体实施方式与上述决策树分箱计算优化方法各实施例基本相同,在此不再赘述。
[0129]
本技术实施例提供了一种计算机程序产品,且所述计算机程序产品包括有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的决策树分箱计算优化方法的步骤。
[0130]
本技术计算机程序产品具体实施方式与上述决策树分箱计算优化方法各实施例基本相同,在此不再赘述。
[0131]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利处理范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1