CN108229573A - 基于决策树的分类计算方法和装置 - Google Patents
基于决策树的分类计算方法和装置 Download PDFInfo
- Publication number
- CN108229573A CN108229573A CN201810044722.5A CN201810044722A CN108229573A CN 108229573 A CN108229573 A CN 108229573A CN 201810044722 A CN201810044722 A CN 201810044722A CN 108229573 A CN108229573 A CN 108229573A
- Authority
- CN
- China
- Prior art keywords
- sample
- root node
- node
- classified
- current non
- 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
本发明实施例提供了一种基于决策树的分类计算方法、计算机设备以及计算机可读存储介质,解决了现有基于决策树分类计算方式的计算速度慢、运算复杂度高以及所需缓存过大的问题。该基于决策树的分类计算方法包括:将待分类的多个样本输入所述决策树的根节点;以及在每个所述非根节点,将经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本进行并行化的分类计算。
Description
技术领域
本发明涉及数据分析技术领域,具体涉及一种基于决策树的分类计算方法、装置、计算机设备以及计算机可读存储介质。
背景技术
决策树是样本分类算法中一种重要的分类计算方式。一个决策树由根节点和从属于该根节点的多个非根节点构成。决策树中的每个节点都会判断样本的一个特征值,和该节点的判断阈值进行大小判断,根据结果把该样本分配到下一层的判断节点中,每一层的节点所判断的特征值的分类相同。如果该节点为没有子节点的叶节点,则分类结束,每个叶节点所被分类的样本可被认为是一个分类计算结果。
传统的决策树方案是把各个样本进行串行化处理,每次把一个样本放进决策树中进行判断处理,当样本数量很多时,该做法会比较耗时,因为串行化的原因,也很难使用现代的计算机系统或者大规模集成电路系统进行并行化处理。例如图1所示,s1、s2、s3……是待分类的样本,每个样本中有若干特征f1、f2、f3……,决策树为3层,是一个包括4个叶节点的分类二叉树。传统的串行化做法是把样本按顺序处理,先把S1放入决策树,求出其分类,然后做s2,依次类推。这样种传统的串行计算方式速度缓慢,且运算复杂度高。
虽然现有技术中也存在并行化的处理方式,但需要通过多个线程实现。如图2所示,每个线程中需要缓存一个样本以及一个树结构(S+T),S表示一个样本所包括的特征数量,T表示一个决策树的数据量(包括k个节点),这样要对M个样本进行并行化处理的话,则共需缓冲M*(S*a+k*b)的数据量,其中a代表一个特征值的数据量,b代表一个节点的数据量(包括一个特征引索以及判断阈值),k代表一个决策树所包括的节点数量。这种现有的并行计算方式限于操作系统对CPU的限制、对线程数量的限制,以及内存的限制,高数量的并发处理很难达到,另外单个线程所需的缓存过大,在实际应用中基本无法实现。
发明内容
有鉴于此,本发明实施例提供了一种基于决策树的分类计算方法、计算机设备以及计算机可读存储介质,解决了现有基于决策树分类计算方式的计算速度慢、运算复杂度高以及所需缓存过大的问题。
根据本发明的一个方面,提供一种基于决策树的分类计算方法,包括:将待分类的多个样本输入所述决策树的根节点;以及在每个非根节点,将经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本进行并行化的分类计算。
在一实施例中,所述决策树中的每个所述非根节点对应一个样本缓冲池,所述样本缓冲池包括经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本的样本索引;其中,所述将经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本进行分类计算包括:将所述样本缓冲池中样本的与所述当前非根节点对应的特征值以并行化的方式分别与判断阈值进行比较;以及根据比较的结果将所述当前非根节点对应的所述样本缓冲池分类为与所述当前非根节点的多个子节点分别对应的多个所述样本缓冲池。
在一实施例中,所述方法进一步包括:当判断为所述当前非根节点没有子节点时,将所述当前非根节点对应的所述样本缓冲池中的所述样本索引作为结果输出。
在一实施例中,对于从属于同一母节点的所述非根子节点按照预设顺序进行分类计算,其中,所述方法进一步包括:当所述当前非根节点没有子节点,且所述当前非根节点为从属于同一母节点的所述非根子节点中最后一个经过分类计算的时,开始对所述当前非根节点的上一层的下一个所述非根节点的分类计算过程。
在一实施例中,同一层的所述非根节点的所述样本缓冲池构成一个全局样本池,所述全局样本池采用堆栈结构。
在一实施例中,所述决策树为二叉树,其中,所述对于从属于同一母节点的所述非根节点按照预设顺序进行分类计算包括:将所述全局样本池中需要后计算的所述非根节点对应的所述样本缓冲池压栈;将需要先计算的所述非根节点对应的所述样本缓冲池出栈;以及将出栈后的所述样本缓冲池输入所述先计算的所述非根节点进行分类计算。
在一实施例中,所述样本索引包括待分类的多个样本是否在经过所述当前非根节点的母节点的分类计算后被分类到所述当前非根节点的标签信息;其中,若一个所述样本被分类到了所述当前非根节点,则所述样本索引中该一个样本的所述标签信息为第一预设值;若一个所述样本并未被分类到所述当前非根节点,则所述样本索引中该一个样本的所述标签信息为第二预设值;其中,所述将所述样本缓冲池中样本的与所述当前非根节点对应的特征值以并行化的方式分别与判断阈值进行比较包括:仅将所述样本索引中所述标签信息取值为所述第一预设值的所述样本的与所述当前非根节点对应的特征值与所述判断阈值进行比较。
在一实施例中,所述根据比较的结果将所述当前非根节点对应的所述样本缓冲池分类为与所述当前非根节点的多个子节点分别对应的多个所述样本缓冲池包括:根据比较的结果在所述多个子节点各自对应的所述样本索引中创建或更新待分类的多个样本各自的所述标签信息。
在一实施例中,所述根据比较的结果在所述多个子节点各自对应的所述样本索引中创建或更新所述待分类的多个样本的所述标签信息包括:直接将在所述当前非根节点的所述样本索引中所述标签信息取值为所述第二预设值的所述样本在所述子节点的所述样本索引中的所述标签信息也取值为所述第二预设值。
在一实施例中,所述待分类的多个样本所包括的特征值按照所述特征值的分类的归类存储。
根据本发明的另一个方面,还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器上被所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如前任所述方法的步骤。
根据本发明的另一个方面,还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如前任一所述方法的步骤。
根据本发明的另一个方面,还提供一种基于决策树的分类计算装置,包括:输入模块,配置为将待分类的多个样本输入所述决策树的根节点;以及非根节点分类计算模块,配置为将经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本进行并行化的分类计算。
在一实施例中,所述决策树中的每个所述非根节点对应一个样本缓冲池,所述样本缓冲池包括经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本的样本索引;其中,所述非根节点分类计算模块进一步配置为:比较单元,配置为将所述样本缓冲池中样本的与所述当前非根节点对应的特征值以并行化的方式分别与判断阈值进行比较;以及分类单元,配置为根据比较的结果将所述当前非根节点对应的所述样本缓冲池分类为与所述当前非根节点的多个子节点分别对应的多个所述样本缓冲池。
在一实施例中,所述装置进一步包括:输出模块,配置为当判断为所述当前非根节点没有子节点时,将所述当前非根节点对应的所述样本缓冲池中的所述样本索引作为结果输出。
在一实施例中,所述非根节点分类计算模块进一步配置为:对于从属于同一母节点的所述非根子节点按照预设顺序进行分类计算,其中,当所述当前非根节点没有子节点,且所述当前非根节点为从属于同一母节点的所述非根子节点中最后一个经过分类计算的时,开始对所述当前非根节点的上一层的下一个所述非根节点的分类计算过程。
在一实施例中,同一层的所述非根节点的所述样本缓冲池构成一个全局样本池,所述全局样本池采用堆栈结构。
在一实施例中,所述决策树为二叉树,其中,所述非根节点分类计算模块进一步包括:堆栈单元,配置为将所述全局样本池中需要后计算的所述非根节点对应的所述样本缓冲池压栈,将需要先计算的所述非根节点对应的所述样本缓冲池出栈,以及将出栈后的所述样本缓冲池输入所述先计算的所述非根节点的所述比较单元进行分类计算。
在一实施例中,所述样本索引包括待分类的多个样本是否在经过所述当前非根节点的母节点的分类计算后被分类到所述当前非根节点的标签信息;其中,若一个所述样本被分类到了所述当前非根节点,则所述样本索引中该一个样本的所述标签信息为第一预设值;若一个所述样本并未被分类到所述当前非根节点,则所述样本索引中该一个样本的所述标签信息为第二预设值;其中,所述比较单元进一步配置为:仅将所述样本索引中所述标签信息取值为所述第一预设值的所述样本的与所述当前非根节点对应的特征值与所述判断阈值进行比较。
在一实施例中,所述分类单元进一步配置为:根据比较的结果在所述多个子节点各自对应的所述样本索引中创建或更新待分类的多个样本各自的所述标签信息。
在一实施例中,所述根据比较的结果在所述多个子节点各自对应的所述样本索引中创建或更新所述待分类的多个样本的所述标签信息包括:直接将在所述当前非根节点的所述样本索引中所述标签信息取值为所述第二预设值的所述样本在所述子节点的所述样本索引中的所述标签信息也取值为所述第二预设值。
在一实施例中,所述装置进一步包括:存储模块,配置为将所述待分类的多个样本所包括的特征值按照所述特征值的分类的归类存储。
本发明实施例提供的一种基于决策树的分类计算方法、装置、计算机设备以及计算机可读存储介质,将待分类的多个样本一次性输入根节点,并在后续的每个非根节点对母节点分到本地的多个样本进行并行化处理。这样在每个节点的分类计算过程仅需最多缓冲每个样本各自的一个与当前非根节点对应的特征值的数据量以及一个节点的数据量,即每个非根节点所需缓存的数据量可表示为M*a+b。由此可见,相比于现有基于决策树的分类计算方法大幅减少了缓冲数据量,且并未增加计算复杂度,有助于显著提高大数量样品在决策树上的计算速度。
附图说明
图1所示为现有技术提供的一种基于决策树的分类计算方式的原理示意图。
图2所示为现有技术提供的另一种基于决策树的分类计算方式的原理示意图。
图3所示为本发明一实施例提供的一种基于决策树的分类计算方法的流程示意图。
图4所示为本发明一实施例提供的一种基于决策树的分类计算方法中每个非根节点所执行的分类计算过程的流程示意图。
图5所示为本发明一实施例提供的一种基于决策树的分类计算方法的原理示意图。
图6a和6b分别所示为本发明一实施例提供的一种基于决策树的分类计算方法中对于从属于同一母节点的非根节点按照预设顺序进行分类计算的流程示意图和原理示意图。
图7所示为本发明一实施例提供的待分类的多个样本的特征值的存储结构示意图。
图8所示为本发明一实施例提供的一种基于决策树的分类计算装置的结构示意图。
图9所示为本发明一实施例提供的一种基于决策树的分类计算装置中非根节点分类计算模块的结构示意图。
图10所示为本发明另一实施例提供的一种基于决策树的分类计算装置中非根节点分类计算模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3所示为本发明一实施例提供的一种基于决策树的分类计算方法的流程示意图。如图3所示,该基于决策树的分类计算方法包括如下步骤:
步骤101:将待分类的多个样本输入决策树的根节点。
待分类的多个样本中的每个样本各自包括多个特征值,在输入根节点后,根节点便会提取每个样本对应根节点的特征值来与判断阈值比较,以确定分配给下一层非根节点的样本分类。
步骤102:在每个非根节点,将经过当前非根节点的母节点的分类计算后分类到当前非根节点的样本进行并行化的分类计算。
对于每个非根节点,其母节点的分类计算过程便会确定有哪些样本被归类到了当前非根节点。当前非根节点便会提取这些被分配到本地的样本的与当前非根节点对应的特征值,并将这些提取的特征值以并行化计算的方式分别与判断阈值进行比较,以完成分类计算过程。
在本发明一实施例中,决策树中的每个非根节点可对应一个样本缓冲池,样本缓冲池包括经过当前非根节点的母节点的分类计算后分类到当前非根节点的样本的样本索引。此时,如图4所示,每个非根节点所执行的分类计算过程其实包括如下步骤:
步骤1021:将样本缓冲池中样本的与当前非根节点对应的特征值以并行化的方式分别与判断阈值进行比较。
步骤1022:根据比较的结果将当前非根节点对应的样本缓冲池分类为与当前非根节点的多个子节点分别对应的多个样本缓冲池。与该多个子节点分别对应的样本缓冲池中各自又会包括样本索引,该多个子节点便会各自执行步骤1021和步骤1022以完成分类计算过程,并将本地对应的样本缓冲池进一步分类为与当前非根节点的多个孙节点分别对应的多个样本缓冲池。
在本发明一实施例中,当判断为当前非根节点没有子节点时,则说明当前非根节点为没有子节点的叶节点,此时则将当前非根节点对应的样本缓冲池中的样本索引作为结果输出,该样本索引中所包括的样本即为最终归入当前非根节点所对应分类的分类计算结果。
由此可见,本发明实施例提供的基于决策树的分类计算方法,将待分类的多个样本一次性输入根节点,并在后续的每个非根节点对母节点分到本地的多个样本进行并行化处理。这样在每个节点的分类计算过程仅需最多缓冲每个样本各自的一个与当前非根节点对应的特征值的数据量以及一个节点的数据量,即每个非根节点所需缓存的数据量可表示为M*a+b。由此可见,相比于现有基于决策树的分类计算方法大幅减少了缓冲数据量,且并未增加计算复杂度,有助于显著提高大数量样品在决策树上的计算速度。
在本发明一实施例中,由于决策树中的非根节点可能是多个子节点的母节点且决策树可能包括多层,为了使得该基于决策树的计算过程能够完整且顺畅地完成,可设置为对于从属于同一母节点的非根子节点按照预设顺序进行分类计算(例如,从左至右,或从右至左等)。而若当前非根节点没有子节点,且当前非根节点为从属于同一母节点的非根子节点中最后一个经过分类计算的时,则开始对当前非根节点的上一层的下一个非根节点的分类计算过程,由此可实现一种基于决策树的回归计算过程。
图5所示为本发明一实施例提供的一种基于决策树的分类计算方法的原理示意图。如图5所示,该决策树为二叉树,且默认为从属于同一母节点的非根子节点按照从左至右的顺序进行分类计算。待分类的多个样本(分别标记为1,2,3,4和5)先被输入根节点A。经过根节点A的分类计算后,1,2,3和4被分类到了节点B,而5被分类到了节点C,即,节点B所对应的样本缓冲池包括1,2,3和4,节点C所对应的样本缓冲池仅包括5。此时按照从左至右的顺序,先执行节点B的分类计算过程,1和2被分类到了节点D,3和4被分类到了节点E。此时按照从左至右的顺序,先执行节点D的分类计算过程,结果发现节点D并没有子节点,因此直接将节点D对应的样本缓冲池中的样本索引作为结果输出;再执行节点E的分类计算过程,3被分类到了节点F,4被分类到了节点G。由于节点F没有子节点,因此节点F也执行输出结果操作,而节点G既没有子节点且为从属于节点D的子节点中最后一个经过分类计算的,因此返回上一层开始上一层下一个节点的计算。结果发现节点D也既没有子节点且为从属于节点B的子节点中最后一个经过分类计算的,因此再返回上一层开始上一层下一个节点,即节点C,的分类计算过程。结果发现节点C也既没有子节点且为从属于根节点A的子节点中最后一个经过分类计算的,因此返回根节点,至此该基于决策树的回归计算过程结束。
应当理解,虽然在上面的描述中以决策树为二叉树以及从左至右的计算顺序为例,但在本发明的其他实施例中,决策树也可采用其他结构,计算顺序也可采用同其他形式,本发明对此并不做限定。
在本发明一实施例中,上述的回归计算过程可通过堆栈的方式实现,具体而言,同一层的非根节点的样本缓冲池可构成一个全局样本池,该全局样本池可采用堆栈结构。在一进一步实施例中,该决策树为二叉树。由于对于二叉树而言,每个节点仅可包括两个子节点,因此在两个子节点中必然要先执行其中一个的分类计算过程。此时,如图6a和6b所示,当对于从属于同一母节点的非根节点按照预设顺序进行分类计算时可包括如下步骤:
步骤601:将全局样本池中需要后计算的非根节点对应的样本缓冲池压栈。需要后计算的非根节点所对应的样本缓冲池压栈后,便可保证该需要后计算的非根节点的分类计算过程不会被先执行。
步骤602:将需要先计算的非根节点对应的样本缓冲池出栈。
步骤603:将出栈后的样本缓冲池输入先计算的非根节点进行分类计算。这样出栈后的样本缓冲池便为需要先计算的非根节点对应的样本缓冲池,此时该需要先计算的非根节点便可通过例如步骤1021和步骤1022来完成分类计算过程。如图6b所示,步骤1021的比较过程可通过一个比较器阵列实现,该比较器阵列可从当前非根节点对应的特征值索引中获取对应的特征值的种类以及判断阈值。
以图5所示的决策树结构为例,该基于压栈方式的分类计算流程如下:首先,节点A执行分类计算过程后分类成节点B和C,右侧的节点C因为是叶节点,因此不需压栈,它已经计算完毕,把结果输出另外保存即可。节点B执行分类计算过程,节点B的样本缓冲池是从节点A的分类计算过程直接获得的,因此不需压栈。1,2,3和4四个样本在节点B进行并行计算,得到1和2分入节点D,样本3和4分到节点E,右侧的子节点E的样本缓冲池压栈,节点D的样本缓冲池出栈,此时该层的全局样本池的堆栈结构=[[3,4]]。由于节点D是没有子节点的叶节点,节点D的分类计算结束,把此时节点D的最终分类结果进行另外记录,然后往上回归到它的母节点B。节点B遍历完了左分支,继续进行右分支E的计算。节点E的样本缓冲池出栈,获得3和4为当前输入样本,此时出栈后该层的全局样本池的堆栈结构=【空】,分类计算后得到左右分支节点F和G分别得到样本3和4。由于节点F和G都为叶节点,则把各自的分类计算结果另外记录,然后回归至节点E,节点E因为左右遍历完了,继续往上回归到节点B,再回归到根节点A,至此该基于决策树的回归计算过程结束。
在本发明一实施例中,样本索引可包括待分类的多个样本是否在经过当前非根节点的母节点的分类计算后被分类到当前非根节点的标签信息;其中,若一个样本被分类到了当前非根节点,则样本索引中该一个样本的标签信息为第一预设值;若一个样本并未被分类到当前非根节点,则样本索引中该一个样本的标签信息为第二预设值。这些待分类的多个样本各自的标签信息可以是在当前节点经过分类计算过程后,根据分类计算过程中比较过程的结果在多个子节点各自对应的样本索引中创建或更新的。
例如,该样本索引可通过具有One-Hot Encoding(一位有效编码)结构的buffer(缓存区)实现,该缓冲区包括多个bit(比特),每个bit对应一个样品的标签信息。例如需要并行处理一共100个样品,那么该buffer就是100bit,每bit的取值代表该样品是否被母节点分类到了当前非根节点的样本缓冲池。例如取值为1代表该样本被分类到了当前非根节点,取值为0代表该样本并未被分类到了当前非根节点。
这样每个当前非根节点在进行分类计算过程中,可仅将样本索引中标签信息取值为第一预设值(例如1)的样本的与当前非根节点对应的特征值与判断阈值进行比较。而对于标签信息取值为第二预设值的样本,由于并未被分配到当前非根节点,也不可能被分配到当前非根节点的子节点,因此直接将在当前非根节点的样本索引中标签信息取值为第二预设值(例如0)的样本在子节点的样本索引中的标签信息也取值为第二预设值即可,以此来减轻计算资源的负担,提高分类计算过程的效率。
在本发明一实施例中,为了进一步提高待分类的样本的特征值的在分类计算过程中的读取效率,可将待分类的多个样本所包括的特征值按照特征值的分类的归类存储。具体而言,如图1和图2所示,现有的待分类样本都是以样本为单元存储的,每个存储单元中包括单个样本的不同特征值,这样的存储排列顺序其实为s1_f1、s1_f2、s1_f3……s2_f1、s2_f2、s2_f3……s3_f1、s3_f2、s3_f3。而由于实际的分类计算过程中,决策树的每一层是与一个特征值对应的,因此每层的节点进行分类计算时,要跨存储单元去读取每个样本的特征值。在现有的计算机及硬件结构下,这种读取方式并不高效。而本发明实施例是将待分类的样本的特征值按照特征值的分类来归类存储,如图7所示,即每个存储单元对应一个特征值,每个存储单元中包括每个样本对于同一个特征值的不同取值,这样的存储排列顺序为s1_f1、s2_f1、s3_f1……s1_f2、s2_f2,s3_f2……s1_f3、s2_f3、s3_f3……,从而使得对某个特征值的提取变得更加紧凑高效,以进一步提高分类计算的效率。
图8所示为本发明一实施例提供的一种基于决策树的分类计算装置的结构示意图。如图8所示,该基于决策树的分类计算装置80包括:
输入模块801,配置为将待分类的多个样本输入决策树的根节点;以及
非根节点分类计算模块802,配置为将经过当前非根节点的母节点的分类计算后分类到当前非根节点的样本进行并行化的分类计算。
在本发明一实施例中,决策树中的每个非根节点对应一个样本缓冲池,样本缓冲池包括经过当前非根节点的母节点的分类计算后分类到当前非根节点的样本的样本索引;
其中,如图9所示,非根节点分类计算模块802包括:
比较单元8021,配置为将样本缓冲池中样本的与当前非根节点对应的特征值以并行化的方式分别与判断阈值进行比较;以及
分类单元8022,配置为根据比较的结果将当前非根节点对应的样本缓冲池分类为与当前非根节点的多个子节点分别对应的多个样本缓冲池。
在本发明一实施例中,该基于决策树的分类计算装置80进一步包括:
输出模块,配置为当判断为当前非根节点没有子节点时,将当前非根节点对应的样本缓冲池中的样本索引作为结果输出。
在本发明一实施例中,非根节点分类计算模块802进一步配置为:对于从属于同一母节点的非根子节点按照预设顺序进行分类计算,其中,当当前非根节点没有子节点,且当前非根节点为从属于同一母节点的非根子节点中最后一个经过分类计算的时,开始对当前非根节点的上一层的下一个非根节点的分类计算过程。
在本发明一实施例中,同一层的非根节点的样本缓冲池构成一个全局样本池,全局样本池采用堆栈结构。
在本发明一实施例中,如图10所示,决策树为二叉树,其中,非根节点分类计算模块802进一步包括:
堆栈单元8023,配置为将全局样本池中需要后计算的非根节点对应的样本缓冲池压栈,将需要先计算的非根节点对应的样本缓冲池出栈,以及将出栈后的样本缓冲池输入先计算的非根节点的比较单元8021进行分类计算。
在本发明一实施例中,样本索引包括待分类的多个样本是否在经过当前非根节点的母节点的分类计算后被分类到当前非根节点的标签信息;其中,若一个样本被分类到了当前非根节点,则样本索引中该一个样本的标签信息为第一预设值;若一个样本并未被分类到当前非根节点,则样本索引中该一个样本的标签信息为第二预设值;
其中,比较单元8021进一步配置为:
仅将样本索引中标签信息取值为第一预设值的样本的与当前非根节点对应的特征值与判断阈值进行比较。
在本发明一实施例中,分类单元8022进一步配置为:
根据比较的结果在多个子节点各自对应的样本索引中创建或更新待分类的多个样本各自的标签信息。
在本发明一实施例中,根据比较的结果在多个子节点各自对应的样本索引中创建或更新待分类的多个样本的标签信息包括:
直接将在当前非根节点的样本索引中标签信息取值为第二预设值的样本在子节点的样本索引中的标签信息也取值为第二预设值。
在本发明一实施例中,该基于决策树的分类计算装置80进一步包括:
存储模块,配置为将待分类的多个样本所包括的特征值按照特征值的分类的归类存储。
本发明一实施例还提供一种计算机设备,包括存储器、处理器以及存储在存储器上被处理器执行的计算机程序,处理器执行计算机程序时实现如前任一实施例所描述的基于决策树的分类计算方法的步骤。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前任一实施例所描述的基于决策树的分类计算方法的步骤。该计算机存储介质可以为任何有形媒介,例如软盘、CD-ROM、DVD、硬盘驱动器、甚至网络介质等。
应当理解,上述实施例所提供的信息交互装置中记载的每个模块或单元都与前述的一个方法步骤相对应。由此,前述的方法步骤描述的操作和特征同样适用于信息交互装置及其中所包含的对应的模块和单元,重复的内容在此不再赘述。
应当理解,虽然以上描述了本发明实施方式的一种实现形式可以是计算机程序产品,但是本发明的实施方式的方法或装置可以被依软件、硬件、或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和设备可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的方法和装置可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当理解,尽管在上文的详细描述中提及了装置的若干模块或单元,但是这种划分仅仅是示例性而非强制性的。实际上,根据本发明的示例性实施方式,上文描述的两个或更多模块/单元的特征和功能可以在一个模块/单元中实现,反之,上文描述的一个模块/单元的特征和功能可以进一步划分为由多个模块/单元来实现。
还应当理解,为了不模糊本发明的实施方式,说明书仅对一些关键、未必必要的技术和特征进行了描述,而可能未对一些本领域技术人员能够实现的特征做出说明。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种基于决策树的分类计算方法,其特征在于,包括:
将待分类的多个样本输入所述决策树的根节点;以及
在每个非根节点,将经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本进行并行化的分类计算。
2.根据权利要求1所述的方法,其特征在于,所述决策树中的每个所述非根节点对应一个样本缓冲池,所述样本缓冲池包括经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本的样本索引;
其中,所述将经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本进行并行化的分类计算包括:
将所述样本缓冲池中样本的与所述当前非根节点对应的特征值以并行化的方式分别与判断阈值进行比较;以及
根据比较的结果将所述当前非根节点对应的所述样本缓冲池分类为与所述当前非根节点的多个子节点分别对应的多个所述样本缓冲池。
3.根据权利要求2所述的方法,其特征在于,进一步包括:
当判断为所述当前非根节点没有子节点时,将所述当前非根节点对应的所述样本缓冲池中的所述样本索引作为结果输出。
4.根据权利要求2所述的方法,其特征在于,对于从属于同一母节点的所述非根子节点按照预设顺序进行分类计算,其中,所述方法进一步包括:
当所述当前非根节点没有子节点,且所述当前非根节点为从属于同一母节点的所述非根子节点中最后一个经过分类计算的时,开始对所述当前非根节点的上一层的下一个所述非根节点的分类计算过程。
5.根据权利要求4所述的方法,其特征在于,同一层的所述非根节点的所述样本缓冲池构成一个全局样本池,所述全局样本池采用堆栈结构。
6.根据权利要求5所述的方法,其特征在于,所述决策树为二叉树,其中,所述对于从属于同一母节点的所述非根节点按照预设顺序进行分类计算包括:
将所述全局样本池中需要后计算的所述非根节点对应的所述样本缓冲池压栈;
将需要先计算的所述非根节点对应的所述样本缓冲池出栈;以及
将出栈后的所述样本缓冲池输入所述先计算的所述非根节点进行分类计算。
7.根据权利要求2所述的方法,其特征在于,所述样本索引包括待分类的多个样本是否在经过所述当前非根节点的母节点的分类计算后被分类到所述当前非根节点的标签信息;其中,若一个所述样本被分类到了所述当前非根节点,则所述样本索引中该一个样本的所述标签信息为第一预设值;若一个所述样本并未被分类到所述当前非根节点,则所述样本索引中该一个样本的所述标签信息为第二预设值;
其中,所述将所述样本缓冲池中样本的与所述当前非根节点对应的特征值以并行化的方式分别与判断阈值进行比较包括:
仅将所述样本索引中所述标签信息取值为所述第一预设值的所述样本的与所述当前非根节点对应的特征值与所述判断阈值进行比较。
8.根据权利要求7所述的方法,其特征在于,所述根据比较的结果将所述当前非根节点对应的所述样本缓冲池分类为与所述当前非根节点的多个子节点分别对应的多个所述样本缓冲池包括:
根据比较的结果在所述多个子节点各自对应的所述样本索引中创建或更新待分类的多个样本各自的所述标签信息。
9.根据权利要求7所述的方法,其特征在于,所述根据比较的结果在所述多个子节点各自对应的所述样本索引中创建或更新所述待分类的多个样本的所述标签信息包括:
直接将在所述当前非根节点的所述样本索引中所述标签信息取值为所述第二预设值的所述样本在所述子节点的所述样本索引中的所述标签信息也取值为所述第二预设值。
10.根据权利要求1所述的方法,其特征在于,所述待分类的多个样本所包括的特征值按照所述特征值的分类的归类存储。
11.一种计算机设备,包括存储器、处理器以及存储在所述存储器上被所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至10中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述方法的步骤。
13.一种基于决策树的分类计算装置,其特征在于,包括:
输入模块,配置为将待分类的多个样本输入所述决策树的根节点;以及
非根节点分类计算模块,配置为将经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本进行并行化的分类计算。
14.根据权利要求13所述的装置,其特征在于,所述决策树中的每个所述非根节点对应一个样本缓冲池,所述样本缓冲池包括经过当前非根节点的母节点的分类计算后分类到所述当前非根节点的样本的样本索引;
其中,所述非根节点分类计算模块进一步配置为:
比较单元,配置为将所述样本缓冲池中样本的与所述当前非根节点对应的特征值以并行化的方式分别与判断阈值进行比较;以及
分类单元,配置为根据比较的结果将所述当前非根节点对应的所述样本缓冲池分类为与所述当前非根节点的多个子节点分别对应的多个所述样本缓冲池。
15.根据权利要求14所述的装置,其特征在于,进一步包括:
输出模块,配置为当判断为所述当前非根节点没有子节点时,将所述当前非根节点对应的所述样本缓冲池中的所述样本索引作为结果输出。
16.根据权利要求14所述的装置,其特征在于,所述非根节点分类计算模块进一步配置为:对于从属于同一母节点的所述非根子节点按照预设顺序进行分类计算,其中,当所述当前非根节点没有子节点,且所述当前非根节点为从属于同一母节点的所述非根子节点中最后一个经过分类计算的时,开始对所述当前非根节点的上一层的下一个所述非根节点的分类计算过程。
17.根据权利要求16所述的装置,其特征在于,同一层的所述非根节点的所述样本缓冲池构成一个全局样本池,所述全局样本池采用堆栈结构。
18.根据权利要求17所述的装置,其特征在于,所述决策树为二叉树,其中,所述非根节点分类计算模块进一步包括:
堆栈单元,配置为将所述全局样本池中需要后计算的所述非根节点对应的所述样本缓冲池压栈,将需要先计算的所述非根节点对应的所述样本缓冲池出栈,以及将出栈后的所述样本缓冲池输入所述先计算的所述非根节点的所述比较单元进行分类计算。
19.根据权利要求14所述的装置,其特征在于,所述样本索引包括待分类的多个样本是否在经过所述当前非根节点的母节点的分类计算后被分类到所述当前非根节点的标签信息;其中,若一个所述样本被分类到了所述当前非根节点,则所述样本索引中该一个样本的所述标签信息为第一预设值;若一个所述样本并未被分类到所述当前非根节点,则所述样本索引中该一个样本的所述标签信息为第二预设值;
其中,所述比较单元进一步配置为:
仅将所述样本索引中所述标签信息取值为所述第一预设值的所述样本的与所述当前非根节点对应的特征值与所述判断阈值进行比较。
20.根据权利要求19所述的装置,其特征在于,所述分类单元进一步配置为:
根据比较的结果在所述多个子节点各自对应的所述样本索引中创建或更新待分类的多个样本各自的所述标签信息。
21.根据权利要求19所述的装置,其特征在于,所述根据比较的结果在所述多个子节点各自对应的所述样本索引中创建或更新所述待分类的多个样本的所述标签信息包括:
直接将在所述当前非根节点的所述样本索引中所述标签信息取值为所述第二预设值的所述样本在所述子节点的所述样本索引中的所述标签信息也取值为所述第二预设值。
22.根据权利要求13所述的装置,其特征在于,进一步包括:
存储模块,配置为将所述待分类的多个样本所包括的特征值按照所述特征值的分类的归类存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810044722.5A CN108229573B (zh) | 2018-01-17 | 2018-01-17 | 基于决策树的分类计算方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810044722.5A CN108229573B (zh) | 2018-01-17 | 2018-01-17 | 基于决策树的分类计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108229573A true CN108229573A (zh) | 2018-06-29 |
CN108229573B CN108229573B (zh) | 2021-05-25 |
Family
ID=62641267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810044722.5A Active CN108229573B (zh) | 2018-01-17 | 2018-01-17 | 基于决策树的分类计算方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108229573B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278201A (zh) * | 2019-06-12 | 2019-09-24 | 深圳市腾讯计算机系统有限公司 | 安全策略评价方法及装置、计算机可读介质和电子设备 |
CN111179304A (zh) * | 2018-11-09 | 2020-05-19 | 北京京东尚科信息技术有限公司 | 目标关联方法、装置和计算机可读存储介质 |
CN111401439A (zh) * | 2020-03-13 | 2020-07-10 | 重庆第二师范学院 | 目标识别方法、装置、计算机设备及存储介质 |
CN113806371A (zh) * | 2021-09-27 | 2021-12-17 | 重庆紫光华山智安科技有限公司 | 数据类型确定方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214213A (zh) * | 2011-05-31 | 2011-10-12 | 中国科学院计算技术研究所 | 一种采用决策树的数据分类方法和系统 |
CN102523241A (zh) * | 2012-01-09 | 2012-06-27 | 北京邮电大学 | 基于决策树高速并行处理的网络流量在线分类方法及装置 |
CN104392250A (zh) * | 2014-11-21 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的图像分类方法 |
US20170061327A1 (en) * | 2015-08-24 | 2017-03-02 | International Business Machines Corporation | Scalable streaming decision tree learning |
CN106789912A (zh) * | 2016-11-22 | 2017-05-31 | 清华大学 | 基于分类回归决策树的路由器数据平面异常行为检测方法 |
-
2018
- 2018-01-17 CN CN201810044722.5A patent/CN108229573B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214213A (zh) * | 2011-05-31 | 2011-10-12 | 中国科学院计算技术研究所 | 一种采用决策树的数据分类方法和系统 |
CN102523241A (zh) * | 2012-01-09 | 2012-06-27 | 北京邮电大学 | 基于决策树高速并行处理的网络流量在线分类方法及装置 |
CN104392250A (zh) * | 2014-11-21 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的图像分类方法 |
US20170061327A1 (en) * | 2015-08-24 | 2017-03-02 | International Business Machines Corporation | Scalable streaming decision tree learning |
CN106789912A (zh) * | 2016-11-22 | 2017-05-31 | 清华大学 | 基于分类回归决策树的路由器数据平面异常行为检测方法 |
Non-Patent Citations (2)
Title |
---|
A. SRIVASTAVA等: "Parallel formulations of decision-tree classification algorithms", 《PROCEEDINGS. 1998 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING》 * |
张春艳: "云计算下的SPRINT并行算法研究", 《软件》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111179304A (zh) * | 2018-11-09 | 2020-05-19 | 北京京东尚科信息技术有限公司 | 目标关联方法、装置和计算机可读存储介质 |
CN111179304B (zh) * | 2018-11-09 | 2024-04-05 | 北京京东尚科信息技术有限公司 | 目标关联方法、装置和计算机可读存储介质 |
CN110278201A (zh) * | 2019-06-12 | 2019-09-24 | 深圳市腾讯计算机系统有限公司 | 安全策略评价方法及装置、计算机可读介质和电子设备 |
CN110278201B (zh) * | 2019-06-12 | 2022-08-23 | 深圳市腾讯计算机系统有限公司 | 安全策略评价方法及装置、计算机可读介质和电子设备 |
CN111401439A (zh) * | 2020-03-13 | 2020-07-10 | 重庆第二师范学院 | 目标识别方法、装置、计算机设备及存储介质 |
CN113806371A (zh) * | 2021-09-27 | 2021-12-17 | 重庆紫光华山智安科技有限公司 | 数据类型确定方法、装置、计算机设备及存储介质 |
CN113806371B (zh) * | 2021-09-27 | 2024-01-19 | 重庆紫光华山智安科技有限公司 | 数据类型确定方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108229573B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606787B2 (en) | Methods and apparatuses for providing data received by a state machine engine | |
CN108229573A (zh) | 基于决策树的分类计算方法和装置 | |
US20210255911A1 (en) | Programmable device, hierarchical parallel machines, and methods for providing state information | |
CN104603742B (zh) | 用于状态机引擎的结果产生 | |
CN103988212B (zh) | 用于在状态机中路由的方法及系统 | |
TWI515669B (zh) | 用於狀態機中資料分析之系統與方法 | |
CN104583935B (zh) | 状态机引擎中的指令插入 | |
CN104011736B (zh) | 用于状态机中的检测的方法及系统 | |
CN104471552B (zh) | 用于处置状态机引擎所接收的数据的方法及系统 | |
CN104603741B (zh) | 在模式辨识处理系统中用于电力管理的方法及系统 | |
CN104011723B (zh) | 状态机晶格中的布尔逻辑 | |
CN104487956A (zh) | 用于使用状态机引擎中的状态向量数据的方法及系统 | |
US11580055B2 (en) | Devices for time division multiplexing of state machine engine signals | |
CN105830160B (zh) | 用于将经屏蔽数据写入到缓冲器的设备及方法 | |
CN109558735A (zh) | 一种基于机器学习的恶意程序样本聚类方法及相关装置 | |
CN106777262A (zh) | 高通量测序数据质量过滤方法和过滤装置 | |
Jalilvand et al. | Sorting it out in Hardware: A State-of-the-Art Survey | |
CN113544684A (zh) | 数据置换装置、数据置换方法、程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |