掌桥专利:专业的专利平台
掌桥专利
首页

硬件XGBoost模型的构建方法及基于硬件XGBoost模型的数据预测方法

文献发布时间:2024-04-18 19:58:30


硬件XGBoost模型的构建方法及基于硬件XGBoost模型的数据预测方法

技术领域

本发明涉及集成电路设计技术领域,尤其涉及到一种硬件XGBoost模型的构建方法及基于硬件XGBoost模型的数据预测方法。

背景技术

XGBoost是一种基于决策树的集成机器学习算法,它在大规模数据集上表现出了高效率和准确性的优点。然而,由于XGBoost需要进行大量的计算,这限制了其在实时性和低延迟方面的应用。为了解决这个问题,研究人员提出了对XGBoost进行硬件优化加速的方案。

在XGBoost算法硬件优化加速时,常见的方法包括使用SIMD指令集优化计算、使用GPU加速计算等等。其中使用SIMD指令集优化计算时,需要保证数据的连续性,即要求数据在内存中是按照一定的顺序排列的,这对于不规则的数据结构会带来一定的挑战;使用GPU加速计算时,需要将数据从主机内存传输到GPU设备内存,这个过程需要一定的时间和带宽,如果数据量较小,这种数据传输的开销可能会抵消GPU的计算优势。此外,GPU加速计算也需要考虑到线程同步和数据一致性等问题,实现起来较为复杂。

因此,如何提高XGBoost算法的计算效率,降低运算资源消耗成为亟待解决的问题。

发明内容

有鉴于此,本发明提供了一种在硬件平台上,且在其中的多个硬件子模块内构建XGBoost模型的方法,以提高构建得到的XGBoost模型的计算效率,运算资源消耗;并对应提供了该XGBoost模型的泛型使用方法。

根据第一方面,本发明提供了一种硬件XGBoost模型的构建方法,包括如下步骤:

根据待构建XGBoost决策树的深度和硬件处理器内硬件子模块可执行的最大判断节点层数,确定参与决策树构建的硬件子模块的数量以及每个硬件子模块对应的子决策树中的判断节点层数;

构建各个硬件子模块内的子决策树;

构建各个硬件子模块之间的信号传递链路,以使各个硬件子模块依次通过使能信号传递特征向量直至最后一个硬件子模块,完成XGBoost决策树的构建;最后一个硬件子模块中的子决策树为具有最大判断节点层数且包含所有枝干和叶子节点的通用树。

在可选的实施方式中,构建各个硬件子模块内的子决策树的步骤之前,还包括如下步骤:

对应于最大判断节点层数的所有类型的决策树,进行硬件处理器中的头文件的编写;头文件内包含若干个function函数,每一个function函数对应一种决策树类型;

构建各个硬件子模块内的子决策树的步骤,具体包括:

调用头文件中的function函数构建各个硬件子模块内的子决策树。

在可选的实施方式中,硬件处理器为FPGA处理器,每个硬件子模块均为FPGA处理器中的一个状态机。

在可选的实施方式中,最大判断节点层数位3层,function函数的数量为26个。

根据第二方面,本发明还提供了一种基于硬件XGBoost模型的数据预测方法,包括如下步骤:

获取待预测数据对应的待预测特征向量,并根据上述第一方面任一实施方式中的方法构建得到的XGBoost决策树中的通用树在待预测特征向量中增加冗余参数,得到模拟向量;

将模拟向量输入XGBoost决策树中,得到待预测特征向量对应的预测结果。

在可选的实施方式中,冗余参数为根据待预测特征向量对应的实际决策树和XGBoost决策树之间的区别设置。

在可选的实施方式中,基于硬件XGBoost模型的数据预测方法还包括如下步骤:

将预测结果输入sigmoid函数,得到预测概率值。

本发明提供的技术方案,具有如下优点:

1、本发明提供的硬件XGBoost模型的构建方法,通过直接在硬件平台上构建XGBoost模型,并根据硬件处理器内的资源限制将XGBoost模型构建于其内的多个硬件子模块内,能够充分发挥硬件处理器的性能,提高XGBoost模型的计算效率;同时,通过将特征向量传递链路上的最后一个硬件子模块中的子决策树为通用树,能够为该件XGBoost模型的泛型应用提供基础。

2、本发明提供的硬件XGBoost模型的构建方法,通过在硬件处理器的头文件中编写function函数,使得对于各个硬件子模块内的子决策树的构建可以直接通过调用头文件中的function函数进行,同时便于对XGBoost模型进行修改,提高了构建得到的XGBoost模型的代码可读性和可维护性。

3、本发明提供的基于硬件XGBoost模型的数据预测方法,在待预测特征向量中增加冗余参数,得到模拟向量,进而使得该模拟向量在输入通用树后,在通用树上模拟出具体的决策树,实现XGBoost模型的泛型使用,减少了XGBoost模型设计的复杂性和重复性,提高了算法设计的效率,同时可以减少XGBoost模型构建过程中的剪枝工作量,降低硬件算法的运算资源消耗。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1提供的硬件XGBoost模型的构建方法的一种方法流程图;

图2为本发明实施例1提供的硬件XGBoost模型的构建方法的另一种方法流程图;

图3为发明实施例1中提供的硬件子模块中的子决策树的类型示例图;

图4为发明实施例2提供的基于硬件XGBoost模型的数据预测方法的一种方法流程图;

图5A为本发明实施例提供的一种实际决策树的示例图;

图5B为图5A中的实际决策树在通用树中的实现方式示例图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

实施例1

图1示出了本发明实施例中的一种硬件XGBoost模型的构建方法的流程图,具体地,如图1所示,该方法可以包括如下步骤:

S101:根据待构建XGBoost决策树的深度和硬件处理器内硬件子模块可执行的最大判断节点层数,确定参与决策树构建的硬件子模块的数量以及每个硬件子模块对应的子决策树中的判断节点层数。

本实施例中,以硬件子模块可执行的最大判断节点层数为3层为例,若待构建XGBoost决策树的深度为8,对应判断节点层数为7,则可以将该7层判断节点拆解成3个部分,分别为2层、2层和3层,也即,此时硬件处理器内参与决策树构建的硬件子模块的数量为3,3个硬件子模块中的子决策树中的判断节点层数分别为2层、2层和3层。

S102:构建各个硬件子模块内的子决策树。

S103:构建各个硬件子模块之间的信号传递链路,以使各个硬件子模块依次通过使能信号传递特征向量直至最后一个硬件子模块,完成XGBoost决策树的构建;最后一个硬件子模块中的子决策树为具有最大判断节点层数且包含所有枝干和叶子节点的通用树。

在本实施例的一种具体实施方式中,为了增加构建XGBoost决策树过程中的的便利性,以及XGBoost模型的代码可读性和可维护性,本实施例中的硬件XGBoost模型的构建方法也可以包括如下步骤:

S201:根据待构建XGBoost决策树的深度和硬件处理器内硬件子模块可执行的最大判断节点层数,确定参与决策树构建的硬件子模块的数量以及每个硬件子模块对应的子决策树中的判断节点层数。

S202:对应于最大判断节点层数的所有类型的决策树,进行硬件处理器中的头文件的编写;头文件内包含若干个function函数,每一个function函数对应一种决策树类型。

S203:调用头文件中的function函数构建各个硬件子模块内的子决策树。

S204:构建各个硬件子模块之间的信号传递链路,以使各个硬件子模块依次通过使能信号传递特征向量直至最后一个硬件子模块,完成XGBoost决策树的构建;最后一个硬件子模块中的子决策树为具有最大判断节点层数且包含所有枝干和叶子节点的通用树。

本实施方式中,仍以上述待构建XGBoost决策树的深度为8,硬件子模块的数量为3,且个硬件子模块中的子决策树中的判断节点层数分别为2层、2层和3层的情形为例,硬件子模块中的子决策树的类型主要包括图3中所示的A型、B型、C型和D型(最后一个硬件子模块中通用树即为D型树)四大类型,而其中,A型对应8种枝干图,B型对应16种枝干图,C型对应1种枝干图,D型对应1种枝干图,共26种枝干图,因而,可以对应在头文件中编写26个function函数。

本实施方式中,硬件子模块中的每个判断节点均可以使用嵌套条件判断语句进行设计,且每个子模块均可以使用状态机来实现决策树节点的选择和特征向量的传递。

本实施方式中,硬件处理器可以为FPGA处理器。

综上,本实施例中的硬件XGBoost模型的构建方法,通过直接在硬件平台上构建XGBoost模型,并根据硬件处理器内的资源限制将XGBoost模型构建于其内的多个硬件子模块内,能够充分发挥硬件处理器的性能,提高XGBoost模型的计算效率;同时,通过将特征向量传递链路上的最后一个硬件子模块中的子决策树为通用树,能够构建得到可广泛应用的XGBoost模型。

实施例2

图4示出了本发明实施例中的一种基于硬件XGBoost模型的数据预测方法的流程图,具体地,如图4所示,该方法可以包括如下步骤:

S401:获取待预测数据对应的待预测特征向量,并根据上述实施例1中的方法构建得到的XGBoost决策树中的通用树在待预测特征向量中增加冗余参数,得到模拟向量。

S402:将模拟向量输入XGBoost决策树中,得到待预测特征向量对应的预测结果。

本实施例中,冗余参数为根据待预测特征向量对应的实际决策树和XGBoost模型内的通用树之间的区别设置。

具体地,以待预测特征向量对应的实际决策树为图5A中所示的决策树为例,则需要在待预测特征向量中增加对应于图5B中的通用树的右分支的条件判断特征,得到对应的模拟向量,输入该模拟向量的通用树中的判断条件如图5B所示。

在可选的实施方式中,在上述步骤S401和S402的基础上,本实施例中的硬件XGBoost模型的构建方法还可以包括如下步骤:

S403:将预测结果输入sigmoid函数,得到预测概率值。

综上,本实施例中的基于硬件XGBoost模型的数据预测方法,在待预测特征向量中增加冗余参数,得到模拟向量,进而使得该模拟向量在输入通用树后,能够在通用树上模拟出具体的决策树,实现XGBoost模型的泛型使用,减少了XGBoost模型设计的复杂性和重复性,提高了算法设计的效率,同时可以减少XGBoost模型构建过程中的剪枝工作量,降低硬件算法的运算资源消耗。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

相关技术
  • 基于XGBoost的序列预测模型构建、降水趋势预测方法及装置
  • 基于XGBoost的序列预测模型构建、降水趋势预测方法及装置
技术分类

06120116498535