一种构造决策树的方法

文档序号:9598221阅读:906来源:国知局
一种构造决策树的方法
【技术领域】
[0001] 本发明涉及信息技术领域,具体说涉及一种构造决策树的方法。
【背景技术】
[0002] 随着信息技术的不断发展,数据处理系统中的数据流量也不断增大。由于不同性 质类型的数据往往对应不同的处理方式(例如处理优先级高的数据需要优先处理),因此 在处理数据之前需要对数据进行分类。
[0003] 在当前技术环境下,较为常用的数据分类方法是基于空间划分的决策树分类方 法。基于决策树算法的分类方法不仅可以快速、高效地实现数据分类,而且算法本身简单且 易于实现,能够运用于网络安全、网络虚拟化、服务质量等多种技术领域。
[0004] 基于决策树算法的分类方法的核心是构造决策树。现有技术的决策树算法并不能 有效的限制决策树的规模,在有些情况下会出现生成规模过大的决策树。
[0005] 例如,Woo、HiCuts和HyperCuts算法是现有技术中经典的决策树算法。Woo算法 每次只选择一位对规则集进行划分,这将导致决策树的高度过大。HiCuts算法在建立决策 树时,每次只能针对一个维度进行规则集划分,对于高维规则集,决策树的高度将会有很大 的增长。HyperCuts算法虽然针对HiCuts算法每次只能针对一个维度划分规则集进行了改 进,构建决策树时可以同时在多个维度上对规则集进行划分。但是HyperCuts算法本身采 用的是局部优化算法,并不能控制整棵决策树的规模。
[0006] 规模过大的决策树在有些情况下会使得应用决策树的内存占用过大,进而导致算 法根本不可行。因此,针对基于方法构造的决策树所存在的问题,需要一种新的构造决策树 的方法。

【发明内容】

[0007] 针对基于方法构造的决策树所存在的问题,本发明提供了 一种构造决策树的方 法,基于规则空间划分的决策树算法在递归地对规则集空间进行划分以构建决策树,其中, 在对所述规则集空间进行划分的过程中:
[0008] 构造用于定量计算所述决策树的存储空间和/或决策子树的平衡性的评价函数;
[0009] 针对当前节点确定待划分维度以及相应的待划分规则集;
[0010] 对所述当前节点分别在不同的所述待划分维度上进行不同划分次数的预划分以 计算获取不同的划分方式对应的所述评价函数的值;
[0011] 对比所述评价函数的值以确定针对各个所述待划分维度的划分次数;
[0012] 按照所述划分次数在所述待划分维度上对所述当前节点进行划分。
[0013] 在一实施例中,在构造所述评价函数的过程中,基于所述当前节点的重复存储指 标、所述当前节点的平衡性评价和/或所述当前节点的孩子节点规则数评价构造所述评价 函数。
[0014] 在一实施例中,在构造所述评价函数的过程中,根据实际需求中存储规则的存储 空间占用要求、决策树的结点总数要求和/或内存查找效率要求确定所述评价函数中的所 述重复存储指标、所述平衡性评价和/或所述孩子节点规则数评价的比例从而确定进行空 间划分时规则重复存储率和平衡率的权重。
[0015] 在一实施例中,所述重复存储指标表示为所述当前节点的孩子节点在相应的划分 中存储规则的重复度评价值,其中,所述孩子节点的所述重复度评价值越小,所述孩子节点 存储的规则的重复存储率越低。
[0016] 在一实施例中,所述平衡性评价表示所述当前节点的孩子节点建立的子树的平衡 性,所述平衡性评价对应的值越低表示对应的所述当前节点的孩子节点存储的规则数越接 近,所述孩子节点建立的子树也越平衡。
[0017] 在一实施例中,所述孩子节点规则数评价用于衡量所述决策树占用的存储空间, 所述孩子节点规则数评价对应的值越小,相应的所述当前节点的孩子节点占用的存储空间 越小。
[0018] 在一实施例中,在对所述当前节点进行划分的过程中,根据实际需求确定所述当 前节点的最大划分次数,其中,针对所述当前节点的总划分次数不能大于所述最大划分次 数。
[0019] 在一实施例中,采用迭代划分的方式对所述当前节点进行多个次代的所述预划 分,其中:
[0020] 基于特定规则分别增加所有所述待划分维度中一个所述待划分维度上的划分次 数从而获取多个划分方案,每个所述划分方案中只增加一个所述待划分维度上的划分次 数;
[0021] 分别计算获取每个所述划分方案对应的所述评价函数的值;
[0022] 对比不同的所述评价函数的值以确定当前次代中需要增加划分次数的所述待划 分维度;
[0023] 按照增加后的次数对所述待划分维度进行划分并以划分结果为基础进行下一次 代的所述预划分。
[0024] 在一实施例中,根据实际需求确定所述决策树的总规则数阈值,其中,在对所述当 前节点进行划分的过程中,如果所述决策树的总规则数大于所述总规则数阈值时停止对所 述当前节点进行进一步划分。
[0025] 在一实施例中,根据实际需求确定所述决策树的存储空间占用阈值,在对所述当 前节点进行划分的过程中,计算基于当前划分所构造的决策树占用的存储空间,当所述决 策树占用的存储空间大于所述存储空间占用阈值时停止对所述当前节点进行划分。
[0026] 与现有技术相比,基于本发明的方法可以构造更加有利于时间和空间复杂度的决 策树从而提高了经典决策树算法在时间和空间上的性能;同时,根据本发明的方法可以有 效控制整个决策树的规模从而提高算法的健壮性。
[0027] 本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或 优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分 优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。
【附图说明】
[0028] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实 施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0029] 图1是根据本发明一实施例的流程图;
[0030] 图2-图4是根据本发明一实施例的算法与其他现有算法分别在决策树高度、存储 空间占用以及访问内存效率上的比较图;
[0031] 图5为根据本发明一实施例的spfac参数的影响效果示意图;
[0032] 图6、图7为根据本发明一实施例的α、β和γ参数的影响效果示意图。
【具体实施方式】
[0033] 以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员 可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依 据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施 例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之 内。
[0034] 为了构造规模大小、平衡性、节点重复存储度更优的决策树,本发明提出了一种构 造决策树的方法。本发明的方法主要是基于规则空间划分的决策树算法在递归地对规则集 空间进行划分以构建决策树。本发明采用与HiCuts相似的建立决策树方法。同时,本发明 的方法在对决策树结点划分时采用了高效的评价体系,该评价体系结合了 HyperCuts算法 的优点并对其进行了改进,使得通过本发明的的启发式算法建立的决策树可以占用更小的 存储空间、更高效的查找性能。
[0035] 由于本发明的决策树算法主要框架参照经典决策树算法(HyperCuts),因此将本 发明的算法称为HyperEC算法。与其他决策树一样,基于HyperEC构造的决策树中的每个 结点都存储其对应的规则子集的范围区间,决策树的分支结点不存储规则集本身,仅在决 策树的叶子结点存储规则子集。
[0036] 本发明的算法不仅具有经典决策树算法(HyperCuts)快速、高效的优点,而且算 法本身简单且易于实现。本发明的决策树构造方法能够运用于网络安全、网络虚拟化、服务 质量等网络技术领域,例如作为一种软件实现的多维包分类算法用于数据分包。
[0037] 接下来基于附图来详细描述本发明一实施例的执行过程,附图的流程图中示出的 步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了 各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步 骤。
[0038] 通常的决策树构造是首先构造
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1