CN105354588A - 一种构造决策树的方法 - Google Patents
一种构造决策树的方法 Download PDFInfo
- Publication number
- CN105354588A CN105354588A CN201510628732.XA CN201510628732A CN105354588A CN 105354588 A CN105354588 A CN 105354588A CN 201510628732 A CN201510628732 A CN 201510628732A CN 105354588 A CN105354588 A CN 105354588A
- Authority
- CN
- China
- Prior art keywords
- decision tree
- divided
- division
- node
- rule
- 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.)
- Pending
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种构造决策树的方法,基于规则空间划分的决策树算法在递归地对规则集空间进行划分以构建决策树,其中:构造用于定量计算所述决策树的存储空间和/或决策子树的平衡性的评价函数;针对当前节点确定待划分维度以及相应的待划分规则集;对所述当前节点分别在不同的所述待划分维度上进行不同划分次数的预划分以计算获取不同的划分方式对应的所述评价函数的值;对比所述评价函数的值以确定针对各个所述待划分维度的划分次数;按照所述划分次数在所述待划分维度上对所述当前节点进行划分。与现有技术相比,基于本发明的方法可以构造更加有利于时间和空间复杂度的决策树;同时,根据本发明的方法可以有效控制整个决策树的规模。
Description
技术领域
本发明涉及信息技术领域,具体说涉及一种构造决策树的方法。
背景技术
随着信息技术的不断发展,数据处理系统中的数据流量也不断增大。由于不同性质类型的数据往往对应不同的处理方式(例如处理优先级高的数据需要优先处理),因此在处理数据之前需要对数据进行分类。
在当前技术环境下,较为常用的数据分类方法是基于空间划分的决策树分类方法。基于决策树算法的分类方法不仅可以快速、高效地实现数据分类,而且算法本身简单且易于实现,能够运用于网络安全、网络虚拟化、服务质量等多种技术领域。
基于决策树算法的分类方法的核心是构造决策树。现有技术的决策树算法并不能有效的限制决策树的规模,在有些情况下会出现生成规模过大的决策树。
例如,Woo、HiCuts和HyperCuts算法是现有技术中经典的决策树算法。Woo算法每次只选择一位对规则集进行划分,这将导致决策树的高度过大。HiCuts算法在建立决策树时,每次只能针对一个维度进行规则集划分,对于高维规则集,决策树的高度将会有很大的增长。HyperCuts算法虽然针对HiCuts算法每次只能针对一个维度划分规则集进行了改进,构建决策树时可以同时在多个维度上对规则集进行划分。但是HyperCuts算法本身采用的是局部优化算法,并不能控制整棵决策树的规模。
规模过大的决策树在有些情况下会使得应用决策树的内存占用过大,进而导致算法根本不可行。因此,针对基于方法构造的决策树所存在的问题,需要一种新的构造决策树的方法。
发明内容
针对基于方法构造的决策树所存在的问题,本发明提供了一种构造决策树的方法,基于规则空间划分的决策树算法在递归地对规则集空间进行划分以构建决策树,其中,在对所述规则集空间进行划分的过程中:
构造用于定量计算所述决策树的存储空间和/或决策子树的平衡性的评价函数;
针对当前节点确定待划分维度以及相应的待划分规则集;
对所述当前节点分别在不同的所述待划分维度上进行不同划分次数的预划分以计算获取不同的划分方式对应的所述评价函数的值;
对比所述评价函数的值以确定针对各个所述待划分维度的划分次数;
按照所述划分次数在所述待划分维度上对所述当前节点进行划分。
在一实施例中,在构造所述评价函数的过程中,基于所述当前节点的重复存储指标、所述当前节点的平衡性评价和/或所述当前节点的孩子节点规则数评价构造所述评价函数。
在一实施例中,在构造所述评价函数的过程中,根据实际需求中存储规则的存储空间占用要求、决策树的结点总数要求和/或内存查找效率要求确定所述评价函数中的所述重复存储指标、所述平衡性评价和/或所述孩子节点规则数评价的比例从而确定进行空间划分时规则重复存储率和平衡率的权重。
在一实施例中,所述重复存储指标表示为所述当前节点的孩子节点在相应的划分中存储规则的重复度评价值,其中,所述孩子节点的所述重复度评价值越小,所述孩子节点存储的规则的重复存储率越低。
在一实施例中,所述平衡性评价表示所述当前节点的孩子节点建立的子树的平衡性,所述平衡性评价对应的值越低表示对应的所述当前节点的孩子节点存储的规则数越接近,所述孩子节点建立的子树也越平衡。
在一实施例中,所述孩子节点规则数评价用于衡量所述决策树占用的存储空间,所述孩子节点规则数评价对应的值越小,相应的所述当前节点的孩子节点占用的存储空间越小。
在一实施例中,在对所述当前节点进行划分的过程中,根据实际需求确定所述当前节点的最大划分次数,其中,针对所述当前节点的总划分次数不能大于所述最大划分次数。
在一实施例中,采用迭代划分的方式对所述当前节点进行多个次代的所述预划分,其中:
基于特定规则分别增加所有所述待划分维度中一个所述待划分维度上的划分次数从而获取多个划分方案,每个所述划分方案中只增加一个所述待划分维度上的划分次数;
分别计算获取每个所述划分方案对应的所述评价函数的值;
对比不同的所述评价函数的值以确定当前次代中需要增加划分次数的所述待划分维度;
按照增加后的次数对所述待划分维度进行划分并以划分结果为基础进行下一次代的所述预划分。
在一实施例中,根据实际需求确定所述决策树的总规则数阈值,其中,在对所述当前节点进行划分的过程中,如果所述决策树的总规则数大于所述总规则数阈值时停止对所述当前节点进行进一步划分。
在一实施例中,根据实际需求确定所述决策树的存储空间占用阈值,在对所述当前节点进行划分的过程中,计算基于当前划分所构造的决策树占用的存储空间,当所述决策树占用的存储空间大于所述存储空间占用阈值时停止对所述当前节点进行划分。
与现有技术相比,基于本发明的方法可以构造更加有利于时间和空间复杂度的决策树从而提高了经典决策树算法在时间和空间上的性能;同时,根据本发明的方法可以有效控制整个决策树的规模从而提高算法的健壮性。
本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明一实施例的流程图;
图2-图4是根据本发明一实施例的算法与其他现有算法分别在决策树高度、存储空间占用以及访问内存效率上的比较图;
图5为根据本发明一实施例的spfac参数的影响效果示意图;
图6、图7为根据本发明一实施例的α、β和γ参数的影响效果示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
为了构造规模大小、平衡性、节点重复存储度更优的决策树,本发明提出了一种构造决策树的方法。本发明的方法主要是基于规则空间划分的决策树算法在递归地对规则集空间进行划分以构建决策树。本发明采用与HiCuts相似的建立决策树方法。同时,本发明的方法在对决策树结点划分时采用了高效的评价体系,该评价体系结合了HyperCuts算法的优点并对其进行了改进,使得通过本发明的的启发式算法建立的决策树可以占用更小的存储空间、更高效的查找性能。
由于本发明的决策树算法主要框架参照经典决策树算法(HyperCuts),因此将本发明的算法称为HyperEC算法。与其他决策树一样,基于HyperEC构造的决策树中的每个结点都存储其对应的规则子集的范围区间,决策树的分支结点不存储规则集本身,仅在决策树的叶子结点存储规则子集。
本发明的算法不仅具有经典决策树算法(HyperCuts)快速、高效的优点,而且算法本身简单且易于实现。本发明的决策树构造方法能够运用于网络安全、网络虚拟化、服务质量等网络技术领域,例如作为一种软件实现的多维包分类算法用于数据分包。
接下来基于附图来详细描述本发明一实施例的执行过程,附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
通常的决策树构造是首先构造根节点;然后以根节点为父节点对根节点进行划分以构造子节点;接着以构造好的子节点为下一级的父节点对构造好的子节点再次划分以构造下一级的子节点;持续划分节点直到无法划分(构造出叶子节点)。
本实施例的方法也是基于上述流程。初始建树的过程与HyperCuts类似。初始状态,决策树只有一个根节点,根节点对应规则集的全部空间。首先设定一个节点最小规则数,即当节点包含的规则数小于/等于该数值时该节点为叶子节点(不能继续划分);然后基于规则空间划分的决策树算法在递归地对规则集空间进行划分的过程中构建决策树,直到某次划分后的子空间(子节点)所包含的规则数不大于预先规定的节点最小规则数时划分停止,此时包含该空间的节点就是决策树的叶子节点。
具体的,每个结点对应的规则子集空间S都将划分成多维等分的空间子集S1,S2,……Sn。每个子集将生成一个当前结点的孩子结点。可知:
S=s1∪s2∪......∪sn(1)。
定义binth为预定义的决策树叶子节点中存储的最大规则数(节点最小规则数)。如果对于子集|Si|>binth,则将对该子集继续进行规则子集空间的划分。对任意的i和j:
决策树的分支结点存储覆盖其孩子及子孙的规则子集范围,而不存储规则本身。决策树中只有叶子结点存储对应的规则子集。本实施例增加了预定义参数binth(节点最小规则数),对决策树叶子结点存储的最大规则数进行了限制。
具体的,如图1所示,首先执行步骤S100,选择节点步骤。选择待划分的节点,这里,如果是构造过程的一开始待划分节点为根节点,如果是构造过程中则是上一个划分步骤生成的、没有经过划分的节点。
接着执行步骤S101,最小规则数判定步骤,判断选定的节点包含的规则数是否小于/等于节点最小规则数。如果节点不大于预先规定的节点最小规则数则说明该节点为叶子节点,此时执行步骤S103,判定节点是否使用完毕,即判定是否还存在待划分的节点。如果存在待划分的节点(节点未使用完毕)则返回继续执行步骤S100,如果不存在待划分的节点(节点使用完毕)则执行步骤S150,决策树构造完毕。
如果选定的节点包含的规则数大于节点最小规则数,则说明节点可以被进一步划分。此时执行步骤S110,确定待划分维度步骤,针对当前节点确定待划分维度以及相应的待划分规则集。待划分维度的选择与HyperCuts相同,即选择独立元素较多的维度:分别在每个维度上统计所述当前节点对应的规则集中的唯一规则数,并计算唯一规则数的平均值;选择所有唯一规则数大于平均值的维度作为待划分维度。
定义划分n次就是将一个规则集(节点)划分为n个子规则集(子节点),n为大于1的整数。规则子集在选定的每个待划分维度上至少划分2次。针对某一节点,其可能包含多个不同的待划分维度,其总划分次数(最终得到的子节点数)为各个待划分维度上的划分数量的乘积。
例如节点A包含三个待划分维度维度1、维度2以及维度3。如果维度1上划分2次(划分出2个子节点),维度2上划分4次,维度3上划分8次,那么最终就划分64次(得到64个子节点)。在这里,不难理解,针对某一节点存在多种划分方式。例如针对节点A可以有:
维度1上划分2次,维度2上划分8次,维度3上划分4次;
维度1上划分4次,维度2上划分4次,维度3上划分4次;
维度1上划分16次,维度2上划分2次,维度3上划分2次等多种得到64个子节点的划分方式。不同的划分方式具有不同的时间/空间性能,例如对HyperCuts研究中发现,该算法有时会出现孩子节点中规则数量相差悬殊而导致决策树左右孩子高度不平衡和决策树高度增加的现象,这使得对决策树进行查找时出现访问内存次数过多、算法性能下降的现象。
为了进一步提高算法的效率,本实施例的方法在保留经典决策树算法优点的基础上,在建树过程中采用了性能评价函数来构建有利于时间和空间复杂度的决策树,从而保证算法在时间和空间上的高效性。
如图1所示,本实施例的方法需要执行步骤S134,构造评价函数步骤,构造用于定量计算决策树的存储空间和/或决策子树的平衡性的评价函数EF。本实施例中的评价函数是用来评价不同的节点划分方式的存储空间和/或决策子树的平衡性的。评价函数主要基于当前节点的重复存储指标、当前节点的平衡性评价和/或当前节点的孩子节点规则数评价来构造。即是在执行步骤S134之前需要先执行步骤S131(构造平衡性评价)、S132(构造重复存储指标)以及S133(构造孩子节点规则数评价)。
具体的,首先对当前节点分别在不同的待划分维度上进行不同次数的预划分以计算获取不同的划分方式对应的所述评价函数的值;然后对比评价函数的值以确定不同的划分方式中时间和空间上最高效的划分方式从而确定针对各个待划分维度的划分次数;最后按照上述划分次数在对应的待划分维度上对当前节点进行划分。
由于本实施例的决策树算法是基于HyperCuts,因此在本实施例中,空间划分为等大小划分,即同一维度上对同一空间划分得到的各子空间的大小相等;并且对同一空间可以同时在多个维度上进行划分。针对上述特性,本实施例通过启发和迭代确定在每一待划分维度上划分的具体次数。具体的,采用迭代划分的方式进行多个次代的预划分,在这里为表达清楚,定义nci为在第i维上划分的次数,nui为第i维唯一规则的数量。那么,对当前规则子集划分的总次数NC为:
如图1所示,在步骤S110后进行多个次代的步骤S120(预划分)。在某一次代的步骤S120中,针对每个待划分维度,在保持其他待划分维度上划分次数不变的前提下基于特定规则增加待划分维度上的划分次数。即:
针对待划分维度i=1,在保持待划分维度i≠1上划分次数不变的前提下基于特定规则增加nc1;
针对待划分维度i=2,在保持待划分维度i≠2上划分次数不变的前提下基于特定规则增加nc2;
……
针对待划分维度i=n,在保持待划分维度i≠n上划分次数不变的前提下基于特定规则增加ncn。
这样就能获得n个不同的划分方案。
然后执行步骤S130,计算评价函数,分别计算获取不同的划分方案对应的评价函数的值。对比不同的评价函数的值从而确定实现最高效的划分的划分方案(确定所要增加划分次数的待划分维度)。
执行步骤S140,按照确定的划分方案进行划分(按照增加后的划分次数对确定好的待划分维度进行划分)以完成当前次代。接下来基于步骤S140的划分结果再次执行步骤S120,进行下一次代的预划分。这样重复迭代执行,直到该节点的划分完成。
这里需要注意的是,在每个次代的划分(S140)后,均需要针对S140的划分结果执行步骤S101。对划分结果对应的节点进行最小规则数判定。同时,考虑到每个次代的划分后各个划分维度的情况被改变,因此在每个次代的划分(S140)后,均需要针对S140的划分结果执行步骤S110。
在上述迭代划分过程中,为了限定决策树的规模,在本实施例中,对单一节点的最大划分次数(可以划分出的子节点总数)做了限定(一个节点上划分的总次数不能超过一个预先设定的门限值)。在对当前节点进行划分的过程中,根据实际需求确定当前节点的最大划分次数,其中,针对当前节点的总划分次数不能大于最大划分次数。
具体到本实施例中,若当前的总划分次数NC满足以下条件时,继续迭代。
其中:NClmt为预定义的结点最大划分数量;
spfac为可调节的时空参数。该参数对规则集划分的次数进行了约束;
N=|FS(v)|为结点v对应的规则子集中规则数量。
例如针对节点A,限定其最大划分次数为32,则得到64个子节点的划分方式就不可行。可行的划分方式之一为维度1上划分2次,维度2上划分4次,维度3上划分4次,最终划分32次得到32个子节点。
具体的,如图1所示,在进行步骤S120之后需要执行步骤S123,最大划分次数判定,判断步骤S120中生成的划分方案的划分结果是否超出最大划分次数。如果划分方案的划分结果超出最大划分次数则划分方案不可行,该节点不能进一步划分,接下来执行步骤S103。如果划分方案的划分结果小于/等于最大划分次数则继续计算评价函数(步骤S130)。
例如针对节点A,限定其最大划分次数为32,由于每个待划分维度上至少划分2次,因此第一代的预划分(S120)以每个待划分维度(维度1、2、3)划分次数为2为基础,即在第一代预划分之前nci=2(nc1=2,nc2=2,nc3=2)。在步骤S120中,分别增加nc1、nc2以及nc3。由于空间划分为等大小划分,在本实施例中划分次数的增加为翻倍,即将划分次数增加为nci×2。
具体的,第一次预划分可以获得:
nc1=4,nc2=2,nc3=2;
nc1=2,nc2=4,nc3=2;
nc1=2,nc2=2,nc3=4三种划分方案。对三种方案的总划分次数均为16(小于32),执行步骤S123后判定其均可行。执行步骤S130,分别计算三种方案对应的评价函数的值。经过判定方案nc1=4,nc2=2,nc3=2最优,按照nc1=4,nc2=2,nc3=2进行划分。
在nc1=4,nc2=2,nc3=2进行第二代预划分(S120),可以获得:
nc1=8,nc2=2,nc3=2;
nc1=4,nc2=4,nc3=2;
nc1=4,nc2=2,nc3=4三种划分方案。对三种方案的总划分次数均为32(等于32),执行步骤S123后判定其均可行。执行步骤S130,分别计算三种方案对应的评价函数的值。经过判定方案nc1=4,nc2=4,nc3=2最优,按照nc1=4,nc2=4,nc3=2进行划分。
在nc1=4,nc2=4,nc3=2进行第三代预划分(S120),可以获得:
nc1=8,nc2=4,nc3=2;
nc1=4,nc2=8,nc3=2;
nc1=4,nc2=4,nc3=4三种划分方案。对三种方案的总划分次数均为64(大于32),执行步骤S123后判定其均不可行。此时该节点划分结束,最后划分结果为维度1上划分4次,维度2上划分4次,维度3上划分2次。
进一步的,为了控制决策树整体的规模,在本实施例中还根据实际需求确定决策树的总规则数阈值。在对当前节点进行划分的过程中,如果决策树的总规则数大于总规则数阈值时停止对当前节点进行进一步划分。具体的,如图1所示,在步骤S120之后执行步骤S121,总规则数判定,当步骤S120生成的划分方案对应的决策树的总规则数大于设定好的总规则数阈值时执行步骤S150。
进一步的,为了控制决策树所占用的存储空间,在本实施例中根据实际需求确定决策树的存储空间占用阈值。在进行迭代划分的同时,统计本次代的划分将占用的存储空间,进而计算出整棵决策树占用的存储空间。其中,当前决策树占用的存储空间包括决策树结点占用的存储空间与叶子结点存储的规则子集所占用的存储空间之和。当决策树占用的存储空间大于存储空间占用阈值时停止对当前节点进行划分。具体的,如图1所示,在步骤S120之后执行步骤S122,存储空间占用判定,当步骤S120生成的划分方案对应的决策树占用的存储空间大于设定好的存储空间占用阈值时执行步骤S150。
在本实施例中,评价函数对规则集此次代的划分方案c从存储空间和决策子树的平衡性进行定量计算。
若本次代的划分将结点v对应的规则子集划分了n次,则结点v将生成n个孩子结点u1,u2,……,un。若定义FS(ui)表示结点ui对应的规则子集,则
表示在划分方案c中结点v所有孩子节点存储规则数量的平均值,
opfs(v)=|FS(v)|/NClmt(7)
表示理想情况下结点v的孩子结点平均存储的规则数。
在步骤S131中,定义存储规则重复存储指标Edup,该指标表示结点v的孩子在该次划分方案c中存储规则的重复度评价值。该值越小,规则的重复存储率越低。
在步骤S132中,定义决策树平衡性评价Ebal,该评价值越低表示结点v的孩子节点对应的规则数越相近,即孩子结点存储的规则数越接近,建立的子树也越平衡。
在步骤S133中,定义孩子结点规则数评价Eafs,是衡量规则集决策树占用存储空间的重要指标。该值越小,结点v的孩子结点占用的存储空间越小。
最后在步骤S134中基于式8、9以及10构造评价函数EF。并且,根据实际需求中存储规则的存储空间占用要求、决策树的结点总数要求和/或内存查找效率要求确定评价函数中的重复存储指标、平衡性评价和/或孩子节点规则数评价的比例从而确定进行空间划分时规则重复存储率和平衡率的权重。
EF(v,c)=α·Edup(v,c)+β·Ebal(v,c)+γ·Eafs(v,c)(11)
使用参数α、β和γ(α+β+γ=1)确定对结点对应的规则空间划分时规则重复存储率和平衡率的权重。α、β和γ设置不同的值将会影响存储规则占用的存储空间和决策树的结点总数及内存查找效率。
基于本发明的方法,可以在总内存不超过预定值的情况下,建立一棵高度相对最矮、孩子结点存储规则数目尽量平衡的决策树。
以下为根据本发明一实施例构造的程序语言描述:
算法1.choose_dimension
输入:结点
输出:待划分维集合Dims
算法2.CreateNode
输入:规则集
输出:决策树
本发明构造的决策树的查找方法与HyperCuts算法的查找方法相同。另外,本发明构造的决策树支持增量更新。当插入或删除一条规则时,仅该规则对应的决策树分支需要更新。由于决策树是在对规则集进行统计的基础上构建,因此,更新可能会破坏原有决策树的平衡性。如果更新的规则与原有规则集有相同的统计特征,则少量规则的更新对原有决策树的影响不大。如果需要进行大量规则的更新,就需要重新构建整棵决策树。
与其他决策树算法相同,增量更新的时间复杂度取决于更新规则覆盖的空间范围。较大的更新规则空间将导致较差的更新性能。最坏情况下,更新一条规则可能会遍历整棵决策树。
接下来基于应用实例来描述本发明的方法的效果。为验证本发明的方法的性能,在Linux操作系统中开发了包分类原型系统,在原型系统中实现了HiCuts算法、HyperCuts算法和HyperEC算法。在普通PC机上运行该原型系统,该PC机配置为Intel2.53GHzCPU,2GB内存。测试中使用的规则集都由测试程序ClassBench生成,规模从1000条到10000条。
首先对HyperEC算法与其他两种经典算法在决策树高度、内存空间占用和查找效率方面进行比较。
如图2所示,右边的坐标图为binth=32,左边的坐标图为binth=16,三种颜色(标记201、202、203)的柱状图分别代表HyperEC算法(本发明的算法)(标记201)、HyperCuts算法(标记201)以及HiCuts算法(标记201)。图3以及图4的左右图binth设定以及柱状图颜色标记与图2相同,就不再赘述。
如图2所示,横坐标表示规则数,纵坐标表示决策树高度。从图2可以看出,HyperEC算法针对各种规则数目所建立的决策树高度都小于HiCuts算法和HyperCuts算法。随着规则数的增加,HyperEC算法所构建的决策树高度远远小于其他两种算法。当规则数达到10K时,决策树高度相对HyperCuts算法降低了63%,相对HiCuts算法降低了90%。
如图3所示,横坐标表示规则数,纵坐标表示字节数/规则数。从图3可以看出当binth设置为16时,HyperEC算法占用的存储空间相对其他两种算法有很大的减少。当binth设置为32时,三种算法中HyperEC算法所占用的存储空间最小。
对每个数据包分类时访问内存的平均字数是衡量算法时间复杂度的重要度量标准。如图4所示,横坐标表示规则数,纵坐标表示访问字数/数据包数。从图4可以看出,HyperEC算法与两种经典的决策树算法相比较,对数据包进行分类时需要访问内存的字数有了很大的改善。当规则数是1K时对数据包分类时访问内存的字数减少了20%,当规则数是10K时访问内存的字数最多减少了70%。
通过对图2~图4的分析比较可知,HyperEC算法对于较大的规则集,HyperEC算法在决策树高度、内存占用和查找时内存比较的字节数都比其他两个算法有了很大的改进。
下面分析HyperEC算法中spfac参数及α、β和γ参数对算法各个度量指标的影响。
如图5所示,横坐标表示spfac参数的值,binth设置为32,规则数是10K。从图5可以看出,决策树的高度会随着spfac值的增大而减小。针对10K规则数,当spfac=1时树高为24,当spfac=5时树高降低到17。内存占用也会随着spfac值的增大而逐渐稳定,数据包查找时访问内存的字数、最坏情况下的查找时间也明显下降。
对HyperEC算法的α、β和γ参数的设置对算法的性能的进一步优化起到重要的作用。图6和图7是HyperEC算法针对10K的规则集、binth=64与spfac=1时的测试结果。
如图6所示,由上到下三个坐标图横坐标分别表示访问内存字数/数据包数、决策树存储规则总数以及决策树结点个数,纵坐标为α/β/γ的对应值。图6中参数γ保持不变,通过改变α与β两个参数的值对性能的影响进行比较。从图6可以看出,随着α值的增大,决策树中存储的规则总数和决策树规模增大,因此导致平均访问内存字数增加。当该值增大时,决策树中存储的冗余的规则数目增大,从而验证了算法中α参数的有效性。
同时可以看出,随着β值的增大,决策树中存储的规则总数和决策树规模降低,因此导致平均访问内存字数下降。同时验证了算法中β参数对决策树平衡性进行控制的有效性。
如图7所示,由左到右三个坐标图纵坐标分别表示访问内存字数/数据包数、决策树存储规则总数以及决策树结点个数,横坐标为α/β/γ的对应值。图7中参数α设置为0.1,通过改变β与γ两个参数的值对性能的影响比较。从图7可以看出,γ值越小,决策树的结点数越小、决策树中存储的规则总数越小,因此占用的存储空间越小。随着β值的增大,决策树中存储的规则总数和决策树规模降低,因此导致平均访问内存字数下降。由于β参数增加时,建立决策树的平衡性增大,因此,平均访问内存的字数减小,从而验证了算法中β参数与γ参数的有效性。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。
Claims (10)
1.一种构造决策树的方法,其特征在于,基于规则空间划分的决策树算法在递归地对规则集空间进行划分以构建决策树,其中,在对所述规则集空间进行划分的过程中:
构造用于定量计算所述决策树的存储空间和/或决策子树的平衡性的评价函数;
针对当前节点确定待划分维度以及相应的待划分规则集;
对所述当前节点分别在不同的所述待划分维度上进行不同划分次数的预划分以计算获取不同的划分方式对应的所述评价函数的值;
对比所述评价函数的值以确定针对各个所述待划分维度的划分次数;
按照所述划分次数在所述待划分维度上对所述当前节点进行划分。
2.根据权利要求1所述的方法,其特征在于,在构造所述评价函数的过程中,基于所述当前节点的重复存储指标、所述当前节点的平衡性评价和/或所述当前节点的孩子节点规则数评价构造所述评价函数。
3.根据权利要求2所述的方法,其特征在于,在构造所述评价函数的过程中,根据实际需求中存储规则的存储空间占用要求、决策树的结点总数要求和/或内存查找效率要求确定所述评价函数中的所述重复存储指标、所述平衡性评价和/或所述孩子节点规则数评价的比例从而确定进行空间划分时规则重复存储率和平衡率的权重。
4.根据权利要求3所述的方法,其特征在于,所述重复存储指标表示为所述当前节点的孩子节点在相应的划分中存储规则的重复度评价值,其中,所述孩子节点的所述重复度评价值越小,所述孩子节点存储的规则的重复存储率越低。
5.根据权利要求3所述的方法,其特征在于,所述平衡性评价表示所述当前节点的孩子节点建立的子树的平衡性,所述平衡性评价对应的值越低表示对应的所述当前节点的孩子节点存储的规则数越接近,所述孩子节点建立的子树也越平衡。
6.根据权利要求3所述的方法,其特征在于,所述孩子节点规则数评价用于衡量所述决策树占用的存储空间,所述孩子节点规则数评价对应的值越小,相应的所述当前节点的孩子节点占用的存储空间越小。
7.根据权利要求1-6中任一项所述的方法,其特征在于,在对所述当前节点进行划分的过程中,根据实际需求确定所述当前节点的最大划分次数,其中,针对所述当前节点的总划分次数不能大于所述最大划分次数。
8.根据权利要求1-6中任一项所述的方法,其特征在于,采用迭代划分的方式对所述当前节点进行多个次代的所述预划分,其中:
基于特定规则分别增加所有所述待划分维度中一个所述待划分维度上的划分次数从而获取多个划分方案,每个所述划分方案中只增加一个所述待划分维度上的划分次数;
分别计算获取每个所述划分方案对应的所述评价函数的值;
对比不同的所述评价函数的值以确定当前次代中需要增加划分次数的所述待划分维度;
按照增加后的次数对所述待划分维度进行划分并以划分结果为基础进行下一次代的所述预划分。
9.根据权利要求1-6中任一项所述的方法,其特征在于,根据实际需求确定所述决策树的总规则数阈值,其中,在对所述当前节点进行划分的过程中,如果所述决策树的总规则数大于所述总规则数阈值时停止对所述当前节点进行进一步划分。
10.根据权利要求1-6中任一项所述的方法,其特征在于,根据实际需求确定所述决策树的存储空间占用阈值,在对所述当前节点进行划分的过程中,计算基于当前划分所构造的决策树占用的存储空间,当所述决策树占用的存储空间大于所述存储空间占用阈值时停止对所述当前节点进行划分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510628732.XA CN105354588A (zh) | 2015-09-28 | 2015-09-28 | 一种构造决策树的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510628732.XA CN105354588A (zh) | 2015-09-28 | 2015-09-28 | 一种构造决策树的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105354588A true CN105354588A (zh) | 2016-02-24 |
Family
ID=55330555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510628732.XA Pending CN105354588A (zh) | 2015-09-28 | 2015-09-28 | 一种构造决策树的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354588A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446964A (zh) * | 2016-10-21 | 2017-02-22 | 河南大学 | 一种增量式的梯度提升决策树更新方法 |
CN108304164A (zh) * | 2017-09-12 | 2018-07-20 | 马上消费金融股份有限公司 | 一种业务逻辑的开发方法及开发系统 |
CN108632235A (zh) * | 2017-08-31 | 2018-10-09 | 新华三技术有限公司 | 一种网包分类决策树建立方法及装置 |
CN109214671A (zh) * | 2018-08-27 | 2019-01-15 | 平安科技(深圳)有限公司 | 人员分组方法、装置、电子装置及计算机可读存储介质 |
CN109542601A (zh) * | 2018-11-20 | 2019-03-29 | 杭州迪普科技股份有限公司 | 策略编译方法、装置、电子设备及计算机存储介质 |
CN109697393A (zh) * | 2017-10-23 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 人物跟踪方法、装置、电子装置及计算机可读介质 |
CN110019987A (zh) * | 2018-11-28 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种基于决策树的日志匹配方法和装置 |
CN110740049A (zh) * | 2018-07-19 | 2020-01-31 | 北京邮电大学 | 一种sdn环境下安全防护部署的方法及装置 |
CN111125448A (zh) * | 2019-12-23 | 2020-05-08 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种大规模空中任务决策方法及系统 |
CN111291835A (zh) * | 2020-03-27 | 2020-06-16 | 清华大学深圳国际研究生院 | 一种回归树预测方法、控制装置及计算机可读存储介质 |
CN113810311A (zh) * | 2021-09-14 | 2021-12-17 | 北京左江科技股份有限公司 | 一种基于多棵决策树的数据包分类方法 |
-
2015
- 2015-09-28 CN CN201510628732.XA patent/CN105354588A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446964A (zh) * | 2016-10-21 | 2017-02-22 | 河南大学 | 一种增量式的梯度提升决策树更新方法 |
CN108632235A (zh) * | 2017-08-31 | 2018-10-09 | 新华三技术有限公司 | 一种网包分类决策树建立方法及装置 |
US11184279B2 (en) | 2017-08-31 | 2021-11-23 | New H3C Technologies Co., Ltd. | Building decision tree for packet classification |
CN108632235B (zh) * | 2017-08-31 | 2020-07-07 | 新华三技术有限公司 | 一种网包分类决策树建立方法及装置 |
CN108304164A (zh) * | 2017-09-12 | 2018-07-20 | 马上消费金融股份有限公司 | 一种业务逻辑的开发方法及开发系统 |
CN108304164B (zh) * | 2017-09-12 | 2021-12-03 | 马上消费金融股份有限公司 | 一种业务逻辑的开发方法及开发系统 |
US11270126B2 (en) | 2017-10-23 | 2022-03-08 | Beijing Jingdong Shangke Information Technology Co., Ltd. | Person tracking method, device, electronic device, and computer readable medium |
CN109697393A (zh) * | 2017-10-23 | 2019-04-30 | 北京京东尚科信息技术有限公司 | 人物跟踪方法、装置、电子装置及计算机可读介质 |
CN110740049A (zh) * | 2018-07-19 | 2020-01-31 | 北京邮电大学 | 一种sdn环境下安全防护部署的方法及装置 |
CN110740049B (zh) * | 2018-07-19 | 2021-01-05 | 北京邮电大学 | 一种sdn环境下安全防护部署的方法及装置 |
WO2020042580A1 (zh) * | 2018-08-27 | 2020-03-05 | 平安科技(深圳)有限公司 | 人员分组方法、装置、电子装置及存储介质 |
CN109214671B (zh) * | 2018-08-27 | 2022-03-01 | 平安科技(深圳)有限公司 | 人员分组方法、装置、电子装置及计算机可读存储介质 |
CN109214671A (zh) * | 2018-08-27 | 2019-01-15 | 平安科技(深圳)有限公司 | 人员分组方法、装置、电子装置及计算机可读存储介质 |
CN109542601A (zh) * | 2018-11-20 | 2019-03-29 | 杭州迪普科技股份有限公司 | 策略编译方法、装置、电子设备及计算机存储介质 |
CN110019987A (zh) * | 2018-11-28 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种基于决策树的日志匹配方法和装置 |
CN110019987B (zh) * | 2018-11-28 | 2023-05-09 | 创新先进技术有限公司 | 一种基于决策树的日志匹配方法和装置 |
CN111125448A (zh) * | 2019-12-23 | 2020-05-08 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种大规模空中任务决策方法及系统 |
CN111125448B (zh) * | 2019-12-23 | 2023-04-07 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种大规模空中任务决策方法及系统 |
CN111291835A (zh) * | 2020-03-27 | 2020-06-16 | 清华大学深圳国际研究生院 | 一种回归树预测方法、控制装置及计算机可读存储介质 |
CN111291835B (zh) * | 2020-03-27 | 2023-04-07 | 清华大学深圳国际研究生院 | 一种回归树预测方法、控制装置及计算机可读存储介质 |
CN113810311A (zh) * | 2021-09-14 | 2021-12-17 | 北京左江科技股份有限公司 | 一种基于多棵决策树的数据包分类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354588A (zh) | 一种构造决策树的方法 | |
CN104936186B (zh) | 基于布谷鸟搜索算法的认知无线电网络频谱分配方法 | |
US20130151535A1 (en) | Distributed indexing of data | |
CN105871724A (zh) | 电力通信网线路优化方法及系统 | |
CN108984830A (zh) | 一种基于模糊网络分析的建筑能效评价方法及装置 | |
CN106845536A (zh) | 一种基于图像缩放的并行聚类方法 | |
CN109657147A (zh) | 基于萤火虫和加权极限学习机的微博异常用户检测方法 | |
CN107527071A (zh) | 一种基于花朵授粉算法优化模糊k近邻的分类方法及装置 | |
Aguirre et al. | A clustering method based on dynamic self organizing trees for post-pareto optimality analysis | |
CN105045806A (zh) | 一种面向分位数查询的概要数据动态分裂与维护方法 | |
CN101853202B (zh) | 一种基于遗传算法和带权匹配算法的测试案例自动生成方法 | |
CN108320504A (zh) | 基于监测数据的动态od矩阵估计方法 | |
Zhang et al. | A modified random forest based on kappa measure and binary artificial bee colony algorithm | |
CN110084376B (zh) | 对数据自动分箱的方法及装置 | |
CN117407921A (zh) | 基于必连和勿连约束的差分隐私直方图发布方法及系统 | |
CN109919219B (zh) | 一种基于粒计算ML-kNN的Xgboost多视角画像构建方法 | |
CN116933947A (zh) | 一种基于软投票集成分类器的滑坡易发性预测方法 | |
Jiang et al. | Time-varying hyperparameter strategies for radial basis function surrogate-based global optimization algorithm | |
CN116956740A (zh) | 面向平面桁架结构的用户偏好模型构建方法、系统、应用 | |
CN108717551A (zh) | 一种基于最大隶属度的模糊层次聚类方法 | |
Hao et al. | The research and analysis in decision tree algorithm based on C4. 5 algorithm | |
CN105653355A (zh) | Hadoop的配置参数的计算方法及系统 | |
CN104866314A (zh) | 一种基于循环更新模式的决策树构建方法 | |
CN110298373A (zh) | 基于信息熵动态规划的电网线路遥测数据聚类集成方法 | |
CN104598591B (zh) | 一种针对类型属性图模型的模型元素匹配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160224 |