决策树模型的训练方法、系统、存储介质及预测方法.pdf
《决策树模型的训练方法、系统、存储介质及预测方法.pdf》由会员分享,可在线阅读,更多相关《决策树模型的训练方法、系统、存储介质及预测方法.pdf(35页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910944121.4 (22)申请日 2019.09.30 (71)申请人 腾讯科技 (深圳) 有限公司 地址 518044 广东省深圳市南山区高新区 科技中一路腾讯大厦35层 (72)发明人 江佳伟符芳诚 (74)专利代理机构 北京同达信恒知识产权代理 有限公司 11291 代理人 李娟 (51)Int.Cl. G06K 9/62(2006.01) (54)发明名称 决策树模型的训练方法、 系统、 存储介质及 预测方法 (57)摘要 本申请公开了一种决策树模型的训练方法。
2、、 系统、 存储介质及预测方法, 涉及人工智能技术, 利用人工智能中机器学习技术对决策树模型进 行训练, 所述方法包括: 每个子处理节点分别针 对当前训练的树节点, 获取当前训练的树节点的 节点训练特征集和梯度数据, 根据获取的节点训 练特征集和梯度数据确定出局部最佳分裂规则 并发送给主处理节点; 每个子处理节点分别针对 当前训练的树节点; 主处理节点从每个子处理节 点确定出的局部最佳分裂规则中, 选出当前训练 的树节点对应的分裂规则。 这样可以减少训练过 程中各处理节点间传输的数据量, 降低系统资源 开销。 权利要求书3页 说明书19页 附图12页 CN 110728317 A 2020.0。
3、1.24 CN 110728317 A 1.一种决策树模型的训练方法, 其特征在于, 包括: 每个子处理节点分别针对当前训练的树节点, 获取所述当前训练的树节点的节点训练 特征集和梯度数据, 其中, 所述梯度数据为所述决策树模型的特征矩阵的梯度数据, 所述节 点训练特征集是之前已训练的树节点的分裂规则和子处理节点的特征子集确定的, 所述特 征子集中包含多个特征列Tj, 特征列Tj中包含所有样本的特征j的特征值, 所述子处理节点 包括N个, N个子处理节点各自的特征子集组成所述特征矩阵, 且N个子处理节点的特征子集 互不相交; 每个子处理节点分别针对当前训练的树节点, 根据获取的节点训练特征集和。
4、梯度数据 确定出局部最佳分裂规则并发送给主处理节点, 所述局部最佳分裂规则包括使目标函数的 增益最大的特征和特征值; 所述主处理节点从每个子处理节点确定出的局部最佳分裂规则中, 选出所述当前训练 的树节点对应的分裂规则。 2.根据权利要求1所述的方法, 其特征在于, 所述每个子处理节点分别针对当前训练的 树节点, 获取所述当前训练的树节点的节点训练特征集和梯度数据之前, 还包括: 每个子处理节点分别获取本子处理节点的特征子集和梯度数据; 每个子处理节点分别针对根节点, 根据获取的特征子集和梯度数据确定出所述根节点 的局部最佳分裂规则并发送给所述主处理节点; 所述主处理节点从每个子处理节点确定出。
5、的所述根节点的局部最佳分裂规则中, 选出 所述根节点对应的分裂规则, 并将所述根节点对应的分裂规则发送给各个子处理节点。 3.根据权利要求2所述的方法, 其特征在于, 所述每个子处理节点分别获取本子处理节 点的特征子集和梯度数据中, 每个子处理节点获取本子处理节点的特征子集, 具体包括: 从所述特征矩阵中获取与本子处理节点对应的指定行数的数据, 所述特征矩阵中第i 行第j列存储的是第i个样本的特征j对应的特征值; 按预设切分方式, 将获取的指定行数的数据按列切分为N个子特征矩阵; 保留本子处理节点的子特征矩阵, 并将N-1个子特征矩阵分别发送给对应的其他子处 理节点; 接收其他N-1个子处理节。
6、点发送给本子处理节点的子特征矩阵; 合并本子处理节点对应的所有子特征矩阵, 得到本子处理节点的特征子集。 4.根据权利要求1至3任一所述的方法, 其特征在于, 通过如下方式确定每个子处理节 点的所述当前训练的树节点的节点训练特征集: 所述主处理节点将所述当前训练的树节点对应的父节点的分裂规则发送给父子处理 节点, 所述父子处理节点为所述父节点的分裂规则中的特征所对应的子处理节点; 所述父子处理节点根据所述父节点的分裂规则, 将所述父子处理节点对应的所述父节 点的节点训练特征集中包含的样本划分到所述父节点的两个子节点上, 得到所述父节点的 分裂结果并发送给其他子处理节点; 每个其他子处理节点分别。
7、根据所述父节点的分裂结果, 确定被划分到所述当前训练的 树节点上的样本, 从子处理节点的特征子集中获取所述被划分到所述当前训练的树节点上 的样本对应的特征列, 得到所述当前训练的树节点的节点训练特征集。 5.根据权利要求4所述的方法, 其特征在于, 在将所述父节点的分裂结果并发送给其他 权利要求书 1/3 页 2 CN 110728317 A 2 子处理节点之前, 还包括: 采用二进制编码的方式对所述父节点的分裂结果进行压缩编码处理。 6.根据权利要求1至3任一所述的方法, 其特征在于, 所述根据获取的节点训练特征集 和梯度数据确定出局部最佳分裂规则, 具体包括: 获取所述当前训练的树节点的节。
8、点训练特征集中每个特征对应的梯度直方图, 所述梯 度直方图的横轴为候选特征值, 所述梯度直方图的纵轴为特征值在相邻两个候选特征值之 间的样本的梯度数据之和; 分别针对每个特征对应的每个候选特征值, 以该候选分征值为分裂点, 将该特征对应 的梯度直方图划分成左梯度直方图和右梯度直方图, 根据所述左梯度直方图的梯度数据之 和所述右梯度直方图的梯度数据之和, 确定该候选特征值对目标函数的增益; 取使所述目标函数的增益最大的特征和候选特征值, 确定为局部最佳分裂规则。 7.根据权利要求6所述的方法, 其特征在于, 所述获取所述当前训练的树节点的节点训 练特征集中每个特征对应的梯度直方图, 具体包括: 。
9、获取所述当前训练的树节点的父节点的每个特征对应的梯度直方图, 以及所述父节点 的另一个子节点的每个特征对应的梯度直方图; 分别针对每个特征, 将所述父节点的该特征的梯度直方图和所述另一个子节点的该特 征的梯度直方图之差, 确定为所述当前训练的树节点的节点训练集中的每个特征对应的梯 度直方图。 8.一种决策树模型的训练系统, 其特征在于, 包括多个子处理节点和一个主处理节点; 每个子处理节点, 用于针对当前训练的树节点, 获取所述当前训练的树节点的节点训 练特征集和梯度数据, 其中, 所述梯度数据为所述决策树模型的特征矩阵的梯度数据, 所述 节点训练特征集是之前已训练的树节点的分裂规则和子处理节。
10、点的特征子集确定的, 所述 特征子集中包含多个特征列Tj, 特征列Tj中包含所有样本的特征j的特征值, 所述子处理节 点包括N个, N个子处理节点各自的特征子集组成所述特征矩阵, 且N个子处理节点的特征子 集互不相交; 每个子处理节点, 还用于针对当前训练的树节点, 根据获取的节点训练特征集和梯度 数据确定出局部最佳分裂规则并发送给主处理节点, 所述局部最佳分裂规则包括使目标函 数的增益最大的特征和特征值; 所述主处理节点, 用于从每个子处理节点确定出的局部最佳分裂规则中, 选出所述当 前训练的树节点对应的分裂规则。 9.根据权利要求8所述的系统, 其特征在于, 所述子处理节点, 具体用于: 。
11、从所述特征矩阵中获取与本子处理节点对应的指定行数的数据, 所述特征矩阵中第i 行第j列存储的是第i个样本的特征j对应的特征值; 按预设切分方式, 将获取的指定行数的数据按列切分为N个子特征矩阵; 保留本子处理节点的子特征矩阵, 并将N-1个子特征矩阵分别发送给对应的其他子处 理节点; 接收其他N-1个子处理节点发送给本子处理节点的子特征矩阵; 合并本子处理节点对应的所有子特征矩阵, 得到本子处理节点的特征子集。 10.一种计算机可读存储介质, 其上存储有计算机程序指令, 其特征在于, 该计算机程 权利要求书 2/3 页 3 CN 110728317 A 3 序指令被处理器执行时实现权利要求1至。
12、7任一项所述方法的步骤。 11.一种基于决策树模型的预测方法, 其特征在于, 包括: 获取待预测对象的特征向量; 将所述特征向量输入根据权利要求1至7任一所述方法训练得到的决策树模型, 得到针 对待预测对象的预测结果。 权利要求书 3/3 页 4 CN 110728317 A 4 决策树模型的训练方法、 系统、 存储介质及预测方法 技术领域 0001 本申请涉及人工智能技术领域, 尤其涉及一种决策树模型的训练方法、 系统、 存储 介质及预测方法。 背景技术 0002 随着人工智能技术研究和进步, 人工智能技术在越来越多的领域展开了研究和应 用。 人工智能技术在具体应用中的一项重要任务是模型训练。
13、, 为了提高模型训练的效率, 目 前通常采用数据并行的分布式训练系统训练模型, 即训练数据被划分到多个子处理节点 上, 每个子处理节点分别根据分配到的训练数据迭代训练模型。 0003 当采用上述数据并行的分布式训练系统训练决策树模型时, 将样本数据进行划分 到每个子处理节点上, 每个子处理节点上仅存储部分样本的样本数据, 每个子处理节点基 于分配到的样本数据统计得到局部梯度直方图, 然后, 汇总所有子处理节点得到的局部梯 度直方图, 确定出全部样本数据对应的全局梯度直方图, 基于全局梯度直方图确定出最佳 分裂规则。 但是, 传输梯度直方图需耗费大量通信资源, 且存储全局梯度直方图需耗费大量 内。
14、存开销。 发明内容 0004 本申请实施例提供一种决策树模型的训练方法、 系统、 存储介质及预测方法, 以减 少分布式训练过程中各处理节点间传输的数据量, 降低对系统资源开销。 0005 一方面, 本申请一实施例提供了一种决策树模型的训练方法, 包括: 0006 每个子处理节点分别针对当前训练的树节点, 获取所述当前训练的树节点的节点 训练特征集和梯度数据, 其中, 所述梯度数据为所述决策树模型的特征矩阵的梯度数据, 所 述节点训练特征集是之前已训练的树节点的分裂规则和子处理节点的特征子集确定的, 所 述特征子集中包含多个特征列Tj, 特征列Tj中包含所有样本的特征j的特征值, 所述子处理 节。
15、点包括N个, N个子处理节点各自的特征子集组成所述特征矩阵, 且N个子处理节点的特征 子集互不相交; 0007 每个子处理节点分别针对当前训练的树节点, 根据获取的节点训练特征集和梯度 数据确定出局部最佳分裂规则并发送给主处理节点, 所述局部最佳分裂规则包括使目标函 数的增益最大的特征和特征值; 0008 所述主处理节点从每个子处理节点确定出的局部最佳分裂规则中, 选出所述当前 训练的树节点对应的分裂规则。 0009 一方面, 本申请一实施例提供了一种决策树模型的训练系统, 包括: 多个子处理节 点和一个主处理节点; 0010 每个子处理节点, 用于针对当前训练的树节点, 获取所述当前训练的树。
16、节点的节 点训练特征集和梯度数据, 其中, 所述梯度数据为所述决策树模型的特征矩阵的梯度数据, 所述节点训练特征集是之前已训练的树节点的分裂规则和子处理节点的特征子集确定的, 说明书 1/19 页 5 CN 110728317 A 5 所述特征子集中包含多个特征列Tj, 特征列Tj中包含所有样本的特征j的特征值, 所述子处 理节点包括N个, N个子处理节点各自的特征子集组成所述特征矩阵, 且N个子处理节点的特 征子集互不相交; 0011 每个子处理节点, 还用于针对当前训练的树节点, 根据获取的节点训练特征集和 梯度数据确定出局部最佳分裂规则并发送给主处理节点, 所述局部最佳分裂规则包括使目 。
17、标函数的增益最大的特征和特征值; 0012 所述主处理节点, 用于从每个子处理节点确定出的局部最佳分裂规则中, 选出所 述当前训练的树节点对应的分裂规则。 0013 可选地, 所述子处理节点, 还用于在针对当前训练的树节点, 获取所述当前训练的 树节点的节点训练特征集和梯度数据之前, 获取本子处理节点的特征子集和梯度数据, 针 对根节点, 根据获取的特征子集和梯度数据确定出所述根节点的局部最佳分裂规则并发送 给所述主处理节点。 0014 相应地, 所述主处理节点从每个子处理节点确定出的所述根节点的局部最佳分裂 规则中, 选出所述根节点对应的分裂规则, 并将所述根节点对应的分裂规则发送给各个子 。
18、处理节点。 0015 可选地, 所述子处理节点, 具体用于: 0016 从所述特征矩阵中获取与本子处理节点对应的指定行数的数据, 所述特征矩阵中 第i行第j列存储的是第i个样本的特征j对应的特征值; 0017 按预设切分方式, 将获取的指定行数的数据按列切分为N个子特征矩阵; 0018 保留本子处理节点的子特征矩阵, 并将N-1个子特征矩阵分别发送给对应的其他 子处理节点; 0019 接收其他N-1个子处理节点发送给本子处理节点的子特征矩阵; 0020 合并本子处理节点对应的所有子特征矩阵, 得到本子处理节点的特征子集。 0021 可选地, 所述主处理节点, 还用于将所述当前训练的树节点对应的。
19、父节点的分裂 规则发送给父子处理节点, 所述父子处理节点为所述父节点的分裂规则中的特征所对应的 子处理节点; 0022 所述父子处理节点, 用于根据所述父节点的分裂规则, 将父子处理节点对应的所 述父节点的节点训练特征集中包含的样本划分到所述父节点的两个子节点上, 得到所述父 节点的分裂结果并发送给其他子处理节点; 0023 所述子处理节点, 还用于根据所述父节点的分裂结果, 确定被划分到所述当前训 练的树节点上的样本, 从子处理节点的特征子集中获取所述被划分到所述当前训练的树节 点上的样本对应的特征列, 得到所述当前训练的树节点的节点训练特征集。 0024 可选地, 所述父子处理节点, 还用。
20、于在将所述父节点的分裂结果并发送给其他子 处理节点之前, 采用二进制编码的方式对所述父节点的分裂结果进行压缩编码处理。 0025 可选地, 子处理节点, 具体用于: 0026 获取所述当前训练的树节点的节点训练特征集中每个特征对应的梯度直方图, 所 述梯度直方图的横轴为候选特征值, 所述梯度直方图的纵轴为特征值在相邻两个候选特征 值之间的样本的梯度数据之和; 0027 分别针对每个特征对应的每个候选特征值, 以该候选分征值为分裂点, 将该特征 说明书 2/19 页 6 CN 110728317 A 6 对应的梯度直方图划分成左梯度直方图和右梯度直方图, 根据所述左梯度直方图的梯度数 据之和所述。
21、右梯度直方图的梯度数据之和, 确定该候选特征值对目标函数的增益; 0028 取使所述目标函数的增益最大的特征和候选特征值, 确定为局部最佳分裂规则。 0029 可选地, 所述子处理节点, 具体用于: 0030 获取所述当前训练的树节点的父节点的每个特征对应的梯度直方图, 以及所述父 节点的另一个子节点的每个特征对应的梯度直方图; 0031 分别针对每个特征, 将所述父节点的该特征的梯度直方图和所述另一个子节点的 该特征的梯度直方图之差, 确定为所述当前训练的树节点的节点训练集中的每个特征对应 的梯度直方图。 0032 一方面, 本申请一实施例提供了一种计算机可读存储介质, 其上存储有计算机程 。
22、序指令, 该计算机程序指令被处理器执行时实现上述任一种方法的步骤。 0033 一方面, 本申请一实施例提供了一种基于决策树模型的预测方法, 包括: 0034 获取待预测对象的特征向量; 0035 将所述特征向量输入根据上述任一种方法训练得到的决策树模型, 得到针对待预 测对象的预测结果。 0036 可选地, 所述预测结果为待预测对象对应的类别或预测数值。 0037 本申请实施例提供的决策树模型的训练方法、 系统、 存储介质及预测方法, 按列的 方式读取样本的特征值, 即按特征的方式划分特征矩阵, 使得每个子处理节点内的特征子 集中包含多个特征对应的所有样本的特征值, 为此, 每个子处理节点能够。
23、基于其获取的特 征子集确定出局部最佳分裂规则并传输给主处理节点, 由于局部最佳分裂规中仅包含确定 出的一个特征和一个特征值, 因此子处理节点发送给主处理节点的数据量非常小, 降低了 系统的通信开销。 此外, 子处理节点无需存储全局梯度直方图, 每个子处理节点上仅存储了 特征矩阵中的一部分(即特征子集), 且子处理节点上存储的特征子集之间不存在重叠部 分, 大大降低了系统的内存开销。 附图说明 0038 为了更清楚地说明本申请实施例的技术方案, 下面将对本申请实施例中所需要使 用的附图作简单地介绍, 显而易见地, 下面所介绍的附图仅仅是本申请的一些实施例, 对于 本领域普通技术人员来讲, 在不付。
24、出创造性劳动的前提下, 还可以根据这些附图获得其他 的附图。 0039 图1A为基于特征矩阵和梯度数据得到梯度直方图的一个示例; 0040 图1B为现有的利用分布式训练系统训练决策树模型的原理图; 0041 图2为本申请实施例提供的分布式训练系统的示意图; 0042 图3为用于训练决策树模型的样本数据的存储格式示意图; 0043 图4为本申请一实施例提供的每个子处理节点分别获取子处理节点的特征子集的 流程示意图; 0044 图5为本申请一实施例提供的通过分布式训练系统对特征矩阵进行切分的示意 图; 0045 图6为本申请一实施例提供的决策树模型的训练方法的流程示意图; 说明书 3/19 页 7。
25、 CN 110728317 A 7 0046 图7A为本申请一实施例提供的确定每个子处理节点的当前训练的树节点的节点 训练特征集的流程示意图; 0047 图7B为本申请一实施例提供的确定每个子处理节点的当前训练的树节点的节点 训练特征集的示意图; 0048 图8为本申请一实施例提供的各个子处理节点确定局部最佳分裂规则的流程示意 图; 0049 图9A为本申请一实施例提供的决策树模型的训练方法的流程示意图; 0050 图9B为本申请一实施例提供的一个决策树模型的示例; 0051 图10为本申请一实施例提供的通过主处理节点确定决策树的根节点的分裂规则 的流程示意图; 0052 图11为本申请一实施。
26、例提供的通过并行处理的方式确定根节点的分裂规则的流 程示意图; 0053 图12为本申请一实施例提供的决策树模型的训练系统的结构示意图; 0054 图13为本申请一实施例提供的一种基于决策树模型的预测方法的流程示意图。 具体实施方式 0055 为使本申请实施例的目的、 技术方案和优点更加清楚, 下面将结合本申请实施例 中的附图, 对本申请实施例中的技术方案进行清楚、 完整地描述。 0056 为了方便理解, 下面对本申请实施例中涉及的名词进行解释: 0057 人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控 制的机器模拟、 延伸和扩展人的智能, 感。
27、知环境、 获取知识并使用知识获得最佳结果的理 论、 方法、 技术及应用系统。 换句话说, 人工智能是计算机科学的一个综合技术, 它企图了解 智能的实质, 并生产出一种新的能以人类智能相似的方式做出反应的智能机器。 人工智能 也就是研究各种智能机器的设计原理与实现方法, 使机器具有感知、 推理与决策的功能。 0058 人工智能技术是一门综合学科, 涉及领域广泛, 既有硬件层面的技术也有软件层 面的技术。 人工智能基础技术一般包括如传感器、 专用人工智能芯片、 云计算、 分布式存储、 大数据处理技术、 操作/交互系统、 机电一体化等技术。 人工智能软件技术主要包括计算机 视觉技术、 语音处理技术、。
28、 自然语言处理技术以及机器学习/深度学习等几大方向。 0059 机器学习(Machine Learning,ML)是一门多领域交叉学科, 涉及概率论、 统计学、 逼近论、 凸分析、 算法复杂度理论等多门学科。 专门研究计算机怎样模拟或实现人类的学习 行为, 以获取新的知识或技能, 重新组织已有的知识结构使之不断改善自身的性能。 机器学 习是人工智能的核心, 是使计算机具有智能的根本途径, 其应用遍及人工智能的各个领域。 机器学习和深度学习通常包括人工神经网络、 置信网络、 强化学习、 迁移学习、 归纳学习、 式 教学习等技术。 0060 随着人工智能技术研究和进步, 人工智能技术在多个领域展开。
29、研究和应用, 例如 常见的智能家居、 智能穿戴设备、 虚拟助理、 智能音箱、 智能营销、 无人驾驶、 自动驾驶、 无人 机、 机器人、 智能医疗、 智能客服等, 相信随着技术的发展, 人工智能技术将在更多的领域得 到应用, 并发挥越来越重要的价值。 0061 分布式机器学习, 将机器学习任务在分布式环境中执行。 例如, 将训练数据切分到 说明书 4/19 页 8 CN 110728317 A 8 多个子处理节点, 每个子处理节点用分配的训练数据迭代地训练模型。 0062 GBDT(Gradient boosting decision tree), 梯度提升决策树, GBDT算法使用决策 树模型。
30、作为弱分类器, 依次训练多棵决策树, 通过boosting(提升方法)等策略提高误判数 据的重要程度, 从而不断提升决策树模型的精度。 一个决策数据模型中可包含多个决策树, 每棵决策树包括两种树节点: 内部树节点和叶子节点。 内部树节点给出一个分裂规则, 将数 据分到该内部树节点的左子节点或右子节点, 分裂规则可以是连续特征的范围, 也可以是 类别特征。 经过内部树节点的逐层处理, 直至将数据划分到叶子节点, 可得到一棵决策树对 该数据的预测值, 通过同样的方式得到其他决策树对该数据的预测值, 累加所有决策树给 出的预测值, 得到该数据最终的预测值。 0063 类似传统的线性模型或者深度模型,。
31、 GBDT的目的是最小化真实值和预测值之间的 误差, 因此也被形式化为一个优化问题, 它的目标函数被定义为: 0064 0065 其中, l是代价函数(例如logistic loss或者RMSE), 是正则项, 一般取值为: 0066 0067 其中, L是一棵决策树中的叶子节点的数量, 是叶子节点的预测值组成的向量, 和 是超参数。 0068 LogitBoost算法使用了二阶近似, 引入了梯度, gi代表一阶梯度, hi代表二阶梯度, 则 0069 0070 如果用Iji|xileafj表示第j个叶子节点上的样本, 用j来代替ft(xi), 同时 删去常数项(代价函数), 就可以得到F(t。
32、)的近似: 0071 0072 上述转换可以这样理解: 原始的F(t)是依次处理样本, 计算每个样本的预测值, 改 写后的是依次处理叶子节点, 对叶子节点上的样本进行批量处理。 0073上述公式有wj一次项和二次项, 可以很容易得到使得取得最小值的j: 0074 0075通过上述公式可得到决策树的每个叶子节点对应的预测值 0076 上面给出了严格的理论推导, 但是这是基于一个假设: 知道树结构, 同时知道每个 说明书 5/19 页 9 CN 110728317 A 9 样本属于的叶子节点。 然而, 现实中树结构是未知的, 要求得最优解, 需要遍历所有可能的 树结构, 这样的计算复杂度显然是不可。
33、行的。 因此GBDT使用了一种贪心方法来训练决策树 从而得到树结构: 从根节点开始不断地向下分裂树节点, 其中, 分裂树节点是指, 确定树节 点的分裂规则, 按分裂规则将树节点上的样本划分到该树节点的两个子节点上; 针对每个 树节点, 基于该树节点上的样本的特征值和梯度数据, 选择使得最小的特征以及特征 值作为分裂规则, 从而得到决策树的树结构。 0077 梯度直方图, 其横轴是样本的特征值, 纵轴是样本的梯度和。 其中, 特征矩阵中第i 行第j列存储的是第i个样本的特征j对应的特征值, 梯度数据中第i行第1列存储的是第i个 样本的对应的一阶梯度, 梯度数据中第i行第2列存储的是第i个样本的对。
34、应的二阶梯度。 首 先, 针对每个特征选择K个候选特征值, 然后, 扫描树节点上所有的数据样本, 使用样本的梯 度数据, 为每个特征建立梯度直方图, 例如, Gm是第m个特征的一阶梯度直方图, 如果样本第 m个特征的特征值大于第k-1个候选特征值sm,(k-1)和第k个候选特征值sm,k之间, 我们将其一 阶梯度加到Gm,k上, 通过同样的操作得到二阶梯度直方图Hm。 经过这样的处理, 每个树节点 上分别建立了m个大小为k的一阶梯度直方图, 以及m个大小为k的二阶梯度直方图。 参考图 1A, 其给出了基于样本的特征矩阵和梯度数据, 得到每个特征的梯度直方图(包括一阶梯度 直方图和二阶梯度直方图。
35、)的方法的一个示例。 0078 当采用数据并行的分布式训练系统来训练决策树模型时, 将样本数据按行划分到 每个子处理节点上, 每个子处理节点上仅存储部分样本的样本数据, 每个子处理节点基于 分配到的样本数据统计得到局部梯度直方图, 然后, 汇总所有子处理节点得到的局部梯度 直方图, 确定出全部样本数据对应的全局梯度直方图, 基于全局梯度直方图确定出最佳分 裂规则。 0079 参考图1B, 其给出了一个用分布式训练系统来训练决策树模型的示例。 假设通过 购两个子处理节点并行进行训练, 按图1B所示的按行划分的方式, 将特征矩阵划分成两个 子特征矩阵T1和T2, 同时将梯度数据也划分成两部分G1和。
36、G2, 将T1和G1发送给子处理节点1, 将T2和G2发送给子处理节点2。 子处理节点1根据T1和G1得到每个特征j对应的局部梯度直方 图H1,j并发送给主处理节点, 子处理节点2根据T2和G2得到每个特征j对应的局部梯度直方图 H2,j并发送给主处理节点。 主处理节点合并每个特征j的局部梯度直方图H1,j和局部梯度直 方图H2,j, 得到每个特征j的全局梯度直方图Hj, 基于所有特征的全局梯度直方图确定出最 佳分裂规则(最佳分裂特征和最佳分裂特征值)作为当前处理的树节点的分裂规则。 0080 实际应用中, 梯度直方图的大小与树的高度、 特征数量、 类别数量等因素有关。 针 对决策树的每个树节。
37、点上的每个特征, 都要建立一个全局梯度直方图, 树节点的数量与树 的高度呈二次方增长, 因此, 决策树越高需建立的全局梯度直方图越多, 特征数量越多, 需 要建立的局部梯度直方图和全局梯度直方图越多。 假设决策树的最大高度是L10, 特征数 量是D100000, 类别数量是C10, 一个梯度直方图中候选分裂特征值的数量是q20, 则 梯度直方图的总大小是22(L-2)DCq882GB, 其中, 决策树的叶子节点不需要建立 对应的梯度直方图, 因此是L-2。 因此, 当树的高度较大、 特征数量较多、 类别数量较多时, 各 子处理节点生成的局部梯度直方图的数量较大, 且最终生成的全局梯度直方图会非。
38、常大, 这导致需要耗费大量通信资源来传输局部梯度直方图, 并且存储全局梯度直方图需耗费大 量内存开销。 说明书 6/19 页 10 CN 110728317 A 10 0081 为此, 本申请的发明人考虑到, 将样本的特征矩阵按列划分成多个特征子集, 每个 特征子集中包含多个特征列Tj, 特征列Tj中包含所有样本的特征j的特征值, 所有特征子集 组成决策树模型的特征矩阵, 且任意两个特征子集互不相交。 若采用N个子处理节点并行处 理, 则将样本的特征矩阵按列划分成N个特征子集, 每个子处理节点对应一个特征子集, 即N 个子处理节点各自的特征子集组成特征矩阵, 且N个子处理节点的特征子集互不相交。
39、。 具体 地, 训练时, 分布式训练系统通过如下方式依次确定每个树节点对应的分裂规则, 直至满足 停止条件: 每个子处理节点分别针对当前训练的树节点, 获取当前训练的树节点的节点训 练特征集和梯度数据, 其中, 节点训练特征集是之前已训练的树节点的分裂规则和子处理 节点的特征子集确定的; 每个子处理节点分别针对当前训练的树节点, 根据获取的节点训 练特征集和梯度数据确定出局部最佳分裂规则并发送给主处理节点, 局部最佳分裂规则包 括使目标函数的增益最大的特征和特征值; 主处理节点从每个子处理节点确定出的局部最 佳分裂规则中, 选出当前训练的树节点对应的分裂规则。 这样, 子处理节点和主处理节点间。
40、 只需要传输局部最佳分裂规则, 网络通信量很小, 且主处理节点无需存储全局梯度直方图, 降低了系统的内存开销。 0082 在介绍完本申请实施例的设计思想之后, 下面对本申请实施例的技术方案能够适 用的应用场景做一些简单介绍, 需要说明的是, 以下介绍的应用场景仅用于说明本申请实 施例而非限定。 在具体实施时, 可以根据实际需要灵活地应用本申请实施例提供的技术方 案。 0083 参考图2, 其为本申请实施例提供的分布式训练系统的结构示意图。 该分布式训练 系统包括多个子处理节点201(包括子处理节点201-1、 子处理节点201-2、 子处理节点 201-n)、 主处理节点202、 数据存储服务。
41、器203。 其中, 子处理节点201、 主处理节点202、 数据 存储服务器203之间通过通信网络连接, 任意两个设备之间可通过通信网络之间通信。 子处 理节点201、 主处理节点202、 数据存储服务器203均可以是一台服务器、 若干台服务器组成 的服务器集群或云计算中心。 0084 数据存储服务器203中存储有用于多个训练任务的样本数据, 这些样本数据已预 先经过清洗、 处理、 标注, 能够直接用于训练。 用户也可以根据某一训练任务的需求自行向 分布式训练系统提交符合要求的样本数据, 分布式训练系统将用户提交的样本数据存储到 数据存储服务器203中, 供该训练任务使用。 0085 参考图3。
42、, 数据存储服务器203可通过数据矩阵的方式存储任一训练任务的样本数 据。 每个训练任务的样本数据包括两部分: 一部分是特征矩阵, 用于存储所有样本的所有特 征的特征值, 特征矩阵中第i行第j列存储的是第i个样本的特征j对应的特征值, 即特征矩 阵的每一行存储的是一个样本的所有特征的特征值, 每一列存储的是所有样本的同一特征 的特征值, 为方便描述, 将特征矩阵中的一列数据特征为一个特征列, 例如, 特征列Tj中包 含所有样本的特征j的特征值; 另一部分是梯度数据, 梯度数据中包含每个样本的一阶梯度 和二阶梯度, 梯度数据也可以按照矩阵的方式存储, 参考图3, 在梯度数据对应的矩阵中, 第 i。
43、行第1列存储的是第i个样本的一阶梯度, 第i行第2列存储的是第i个样本的二阶梯度。 0086 本申请实施例中, 特征矩阵中的特征是样本自身的属性中与训练任务特相关的属 性, 需根据具体的训练任务预先确定。 例如, 训练任务是女性商品推荐, 特征可以是学历、 收 入、 工作类型、 身高、 体重、 年龄等信息。 具体地, 可以获取大量女性的购买记录, 将一个购买 说明书 7/19 页 11 CN 110728317 A 11 者作为一个样本, 从获取的购买记录中提取每个购买者的学历、 收入、 工作类型、 身高、 体 重、 年龄等信息作为特征值, 从而构建特征矩阵。 构建特征矩阵的方式为现有技术, 。
44、不再赘 述。 0087 本申请实施例中, 决策树模型中包含至少一个决策树。 当决策树模型中包含多个 决策树时, 训练第一个决策树之后, 继续训练下一个决策树, 直至训练完所有的决策树, 然 后将训练出的各决策树集成为一个模型, 作为训练结果。 0088 具体实施时, 样本数据中的每个样本还标记有该样本对应的真实值, 例如, 分类任 务中, 真实值为样本对应的真实类别, 回归任务中真实值为样本对应的真实数值。 训练过程 中, 每训练出一个决策树之后, 可以根据样本的真实值和该决策树给出的预测值, 通过代价 函数计算每个样本的梯度数据(包括一阶梯度和二阶梯度), 更新原有的梯度数据, 然后基 于特。
45、征矩阵和更新后的梯度数据训练下一个决策树。 0089 本申请实施例中, 主处理节点202的功能包括但不限于用于控制各子处理节点执 行分布式训练任务, 汇总每个子处理节点201确定出的局部最佳分裂规则并确定出全局最 佳分裂规则等。 子处理节点201的功能包括但不限于读取样本数据, 划分样本数据, 建立梯 度直方图, 确定局部最佳分裂规则, 计算分裂结果等。 后续在训练过程中将详细介绍主处理 节点202和子处理节点201的各种功能。 0090 下面结合图2所示的分布式训练系统, 介绍决策树模型的训练过程。 0091 首先, 各子处理节点需要从数据存储服务器中获取其对应的特征子集, 用于训练 决策树。
46、模型。 具体可通过如下任一方式实现特征子集的获取: 0092 第一种方式、 单个节点切分特征矩阵。 0093 具体地, 可以由主处理节点从数据存储服务器中获取本次训练所用的特征矩阵, 确定参与训练任务的N个子处理节点, 然后, 将特征矩阵按列划分成N个特征子集, 每个特征 子集中包含多个特征列, 其中, 划分得到的所有特征子集组成特征矩阵, 且任意两个特征子 集互不相交, 将N个特征子集分别发送给N个子处理节点, 每个子处理节点获取到一个特征 子集。 0094 具体实施时, 主处理节点可根据特征矩阵包含的特征数量I(即列数)和子处理节 点处理的数据量, 确定子处理节点的数量N。 例如, 子处理。
47、节点最多可处理M个特征列, 则计 算I/M, 若I/M为整数, 则NI/M, 若I/M不为整数, 则NI/M+1。 0095 具体实施时, 也可以由主处理节点控制任一子处理节点将特征矩阵的划分为N个 特征子集, 并将各个特征子集分别发送给对应的子处理节点。 0096 第二种方式、 分布式切分特征矩阵。 0097 具体地, 参考图4, 每个子处理节点分别通过如下方式获取子处理节点的特征子 集: 0098 S401、 从特征矩阵中获取与本子处理节点对应的指定行数的数据。 0099 本申请实施例中, 为方便描述, 可将各子处理节点从特征矩阵中获取的与该子处 理节点对应的指定行数的数据集合称为样本子集。
48、, 样本子集也按照数据矩阵的格式存储, 参考特征矩阵的格式, 不再赘述。 0100 具体实施时, 每个子处理节点中预先存储有统一的数据切分策略, 该数据切分策 略中规则了各个子处理节点对应的指定行数, 每个子处理节点对应的指定行数不重复, 且 说明书 8/19 页 12 CN 110728317 A 12 所有子处理节点的指定行数覆盖了特征矩阵的所有行数, 保证每个子处理节点从特征矩阵 中获取到不重复的样本, 且特征矩阵的每一行数据均被一个子处理节点获取到。 0101 在一种可能的实施方式中, 可根据特征矩阵的行数和子处理节点的数量, 确定每 个子处理节点对应的指定行数。 例如, 特征矩阵的行。
49、数为98, 子处理节点的数量为10, 则可 以约定子处理节点201-1的指定行数为1-10, 子处理节点201-2的指定行数为11-20, , 子处理节点201-9的指定行数为81-90, 子处理节点201-10的指定行数为90-98。 0102 在另一种可能的实施方式中, 可以通过如下方式确定每个子处理节点对应的指定 行数: 子处理节点的数量为N, 每个子处理节点计算特征矩阵中的每个行数I对N的余数; 子 处理节点201-N将余数为N-1的行数确定为指定行数, 即获取特征矩阵中余数为N-1的行数 的数据, 得到子处理节点201-N的样本子集; 子处理节点201-N-1将特征矩阵中余数为N-2。
50、的 行数确定为对应的指定行数, 得到子处理节点201-N-1的样本子集; 子处理节点201-2 将特征矩阵中余数为1的行数确定为对应的指定行数, 得到子处理节点201-2的样本子集; 子处理节点201-1将特征矩阵中余数为0的行数确定为对应的指定行数, 得到子处理节点 201-1的样本子集。 这样, 在特征矩阵的行数较大的情况下, 可以快速确定出每个子处理节 点对应的指定行数, 且保证不会出现指定行数重复的情况。 0103 例如, 特征矩阵的总行数为98, 子处理节点的数量N10, 则子处理节点201-1获取 特征矩阵中余数为0的行数的数据, 即第10, 20, 30, 90行的数据, 得到子。
- 内容关键字: 决策树 模型 训练 方法 系统 存储 介质 预测
快装预应力锚索.pdf
电池级碳酸锂制备用的烧结设备.pdf
研磨用高效除尘装置.pdf
新型罩杯间距可调的文胸.pdf
防卡板结构.pdf
卧式微波辅助酸碱预处理秸秆的装置.pdf
建筑工程用混凝土回弹仪的弹击杆校准装置.pdf
转移基膜纸及其制备系统、包装膜及其制备系统.pdf
防水卷材成卷后的捆扎装置.pdf
介质加载腔体滤波器.pdf
乳制品自动检测系统与智慧实验室.pdf
屠宰刀具全方位消毒器.pdf
循环气幕集气装置.pdf
含油污泥处理加药装置.pdf
Z轴带双R轴切换作业机构及点胶机.pdf
急诊实验室自动化样本处理及检测系统.pdf
零件3D扫描辅助旋转台.pdf
圆柱电池盖帽焊接工装.pdf
建筑施工土方开挖基坑防护装置.pdf
睡眠感知音乐理疗系统.pdf
自动计数立盒机.pdf
扬声器.pdf
电池钢壳清洗用滚筒机构.pdf
便携式应急LED灯.pdf
超声手术器械.pdf
胸腔镜镜头清洁装置.pdf
工业硅破碎除杂装置.pdf
具有多环境模拟功能的混凝土性能检测装置.pdf
自动纠偏修正的防水卷材绕卷装置.pdf
基于离心过滤洗涤的碳酸锂回收设备.pdf
绝缘电缆料生产设备.pdf
电厂脱硫废水的处理方法.pdf
整体式配油器.pdf
车载重量预警方法及系统、存储介质及车载终端.pdf
源于天然甜叶菊的纯天然植物抗氧化剂及其制备方法.pdf
治疗妇科炎症的中药组合物凝胶栓剂及其制备方法.pdf
电解压延联用生产锂离电子池用超薄铜箔及其制备方法.pdf
放散火炬的无人机点火方法.pdf
可移动廊架及其组装方法.pdf
预制混凝土整体式卫生间及其吊装用具.pdf
建筑连接节点及其施工方法.pdf
软模板拼缝错台修复螺栓.pdf
口腔检查或治疗用漱口水.pdf
基于点阵结构分布光栅的触控屏.pdf
新型窗户空调机.pdf
风扇转速检测电路与电子设备.pdf
基于CMSP的对象存储的RESTful服务的身份认证实现方法.pdf
氢气输送管道.pdf
安全的对坩埚内固体加热的液化设备.pdf
单压缩机多温冷水系统.pdf
车辆审核方法、装置及设备.pdf