CN114513460A - 决策树的生成方法及装置 - Google Patents
决策树的生成方法及装置 Download PDFInfo
- Publication number
- CN114513460A CN114513460A CN202210109371.8A CN202210109371A CN114513460A CN 114513460 A CN114513460 A CN 114513460A CN 202210109371 A CN202210109371 A CN 202210109371A CN 114513460 A CN114513460 A CN 114513460A
- Authority
- CN
- China
- Prior art keywords
- bit
- rule
- decision tree
- candidate
- value
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种决策树的生成方法及装置,该方法包括:获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;计算候选比特位集合中每个比特位的分离值;从多个分离值中,选择分离值最大的比特位作为区分比特位;利用区分比特位,生成初始决策树,该初始决策树包括根节点以及叶子结点,每个叶子节点承载规则集合中的至少一条规则;若叶子节点承载的规则个数不满足预设数量,则重复执行计算候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用区分比特位,生成初始决策树的过程,直至叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种决策树的生成方法及装置。
背景技术
包过滤(Packet Filter)是网络设备的一种基本功能。包过滤是指根据报文的特征,例如,根据源IP地址、目的IP地址、源端口号、目的端口号等进行报文的匹配,对于匹配的报文再进行转发、丢弃、修改等操作。
包过滤的匹配规则为3元匹配规则,即{0,1,*}。其中,*代表通配,即0或者1均可以。无论是IP的前缀匹配还是端口号的范围匹配,最后,均可变为3元匹配规则。例如,对IP地址为10.0.0.0/8进行匹配,其本质就是匹配二进制00001010.********.********.********的报文,其中10的二进制为1010。端口号的范围为1024~2048,其本质就是匹配二进制01**********或者1000 0000 0000,其中,1024的二进制为0100 00000000;2048的二进制为1000 0000 0000。
MBitCuts是一种根据包过滤规则间的比特(Bit)位差异来构造判断报文命中规则决策树的方法。其生成决策树的过程大致如下:MBitCuts首先计算每个比特位的分离(Separate,后续简称Sep)值。计算出每个比特位的Sep值后,进行比特位的选择,并生成比特位掩码(Bitmask)。生成比特位掩码后,将规则集合(RuleSet)将进行扩展切分,并生成决策树。
当接收到报文后,利用决策树中节点的比特位掩码进行匹配,从决策树中找到并返回匹配报文的规则。
目前,网络上的流量存在着80-20的分布特性,即少数几条流量(称为大象(Elephant)流)占据了绝大部分的带宽以及网络设备的CPU处理能力(80%),剩余大量的微小流量(称为老鼠(mouse)流)占据了剩余带宽以及网络设备的CPU处理能力(20%)。通过MBitCut对规则集合扩展切分时,并未考虑流量的分布特点,在实际组网网络中,其扩展切分的结果并非最优。
在一个例子中,假设存在如下规则:
Bit0 | Bit1 | Bit2 | 命中次数 | |
Rule1 | 1 | 1 | 0 | 80 |
Rule2 | 0 | 1 | 0 | 20 |
Rule3 | 1 | 0 | 1 | 0 |
Rule4 | 1 | 0 | 0 | 0 |
假设决策树中每层允许最多选取一个比特位,根据前述方式,其生成的决策树如图1所示,图1为通过现有MBitCut生成的决策树。在图1中,接收到报文后,从根节点开始,依次利用决策树中节点的比特位掩码进行匹配,直至从决策树中的最底层找到匹配报文的规则。
在进行包过滤时,最主要的性能瓶颈点在于内存访问次数。假设在前述规则中,规则(Rule)1的命中次数为80次,Rule2的命中次数为20次,Rule3、Rule4的命中次数均为0次,其内存访问总次数为80*2+20*2+0+0=200次。因此,对于经常命中的规则,其应尽可能的靠近根节点,如此可减少内存访问次数。
发明内容
有鉴于此,本申请提供了一种决策树的生成方法及装置,用以解决现有MBitCut生成的决策树中命中次数高的叶子节点远离根节点,导致内存访问次数增多的问题。
第一方面,本申请提供了一种决策树的生成方法,所述方法包括:
获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;
根据所述规则集合、候选比特位集合以及命中次数,计算所述候选比特位集合中每个比特位的分离值;
从多个分离值中,选择分离值最大的比特位作为区分比特位;
利用所述区分比特位,生成初始决策树,所述初始决策树包括根节点以及叶子结点,每个叶子节点承载所述规则集合中的至少一条规则;
若所述叶子节点承载的规则个数不满足预设数量,则重复执行计算所述候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用所述区分比特位,生成初始决策树的过程,直至所述叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
第二方面,本申请提供了一种决策树的生成装置,所述装置包括:
获取单元,用于获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;
计算单元,用于根据所述规则集合、候选比特位集合以及命中次数,计算所述候选比特位集合中每个比特位的分离值;
选择单元,用于从多个分离值中,选择分离值最大的比特位作为区分比特位;
生成单元,用于利用所述区分比特位,生成初始决策树,所述初始决策树包括根节点以及叶子结点,每个叶子节点承载所述规则集合中的至少一条规则;
执行单元,用于若所述叶子节点承载的规则个数不满足预设数量,则重复执行计算所述候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用所述区分比特位,生成初始决策树的过程,直至所述叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
第三方面,本申请提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本申请第一方面所提供的方法。
因此,通过应用本申请提供的决策树的生成方法及装置,网络设备获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;根据规则集合、候选比特位集合以及命中次数,网络设备计算候选比特位集合中每个比特位的分离值;从多个分离值中,网络设备选择分离值最大的比特位作为区分比特位;利用区分比特位,生成初始决策树,该初始决策树包括根节点以及叶子结点,每个叶子节点承载规则集合中的至少一条规则;若叶子节点承载的规则个数不满足预设数量,则网络设备重复执行计算候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用区分比特位,生成初始决策树的过程,直至叶子节点承载的规则个数满足预设数量时停止,网络设备得到目标决策树。
如此,网络设备在计算比特位的分离值时,利用每条规则的命中次数计算比特位的分离值,该分离值可使得命中次数高的叶子节点靠近根节点。解决了现有MBitCut生成的决策树中命中次数高的叶子节点远离根节点,导致内存访问次数增多的问题。实现了利用网络流量不均衡的特性,降低内存访问次数,提升网络设备性能。
附图说明
图1为通过现有MBitCut生成的决策树;
图2为本申请实施例提供的决策树的生成方法的流程图;
图3-A为本申请实施例提供的一种初始决策树;
图3-B为本申请实施例提供的另一种初始决策树;
图3-C为本申请实施例提供的目标决策树;
图4为本申请实施例提供的决策树的生成装置结构图;
图5为本申请实施例提供的网络设备硬件结构体。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本申请相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面对本申请实施例提供的决策树的生成方法进行详细地说明。参见图2,图2为本申请实施例提供的决策树的生成方法的流程图。该方法应用于网络设备。本申请实施例提供的决策树的生成方法可包括如下所示步骤。
步骤210、获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数。
具体地,网络设备从本地获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数。
例如,规则集合如下表1所示。候选比特位集合包括Bit0、Bit1以及Bit2。
表1规则集合
其中,规则集合中每条规则包括第一数量个比特位,例如,表1中所示的R1-R4中,每条规则包括3个比特位。候选比特集合包括第二数量个比特位,例如,前述候选比特位集合包括3个比特位。每条规则包括的比特位数量与候选比特集合包括的比特位数量相同。
步骤220、根据所述规则集合、候选比特位集合以及命中次数,计算所述候选比特位集合中每个比特位的分离值。
具体地,根据步骤210的描述,网络设备获取到规则集合、候选比特位集合以及命中次数后,计算候选比特位集合中每个比特位的分离值。
需要说明的是,每条规则的命中次数的计算方式为Max:{命中次数,1},也即是每条规则的命中次数的最小值为1。
进一步地,上述计算候选比特位集合中每个比特位的分离值的过程具体为:
针对候选比特位集合中的每个比特位,从规则集合中,网络设备选择比特位的值为0的至少一条第一规则;网络设备获取至少一条第一规则中每条第一规则的第一命中次数;网络设备将每条第一规则的第一命中次数进行累加,得到第一和值;针对候选比特位集合中的每个比特位,从规则集合中,网络设备选择比特位的值为1的至少一条第二规则;网络设备获取至少一条第二规则中每条第二规则的第二命中次数;网络设备将每条第二规则的第二命中次数进行累加,得到第二和值;网络设备将第一和值与第二和值的乘积作为比特位的分离值。
例如,根据步骤210中的例子,网络设备分别计算Bit0、Bit1以及Bit2中每个Bit的分离值。
以网络设备计算Bit0为例进行说明。网络设备获取R1-R4中该Bit0的值为0的规则,例如,R2。网络设备获取R2的命中次数为20。网络设备将R2的命中次数20作为第一和值。网络设备获取R1-R4中该Bit0的值为1的规则,例如,R1、R3、R4。网络设备获取R1、R3、R4的命中次数为80、0、0。网络设备将R1、R3、R4的命中次数进行累加,得到第二和值82。
可以理解的是,网络设备获取的R3、R4的命中次数均为0,此时,网络设备在计算Bit的分离值时,取R3、R4的命中次数为1进行计算。
网络设备将第一和值与第二和值的乘积82*20=1640作为Bit0的分离值。
同理,网络设备计算Bit1的分离值为200,计算Bit2的分离值为101。
步骤230、从多个分离值中,选择分离值最大的比特位作为区分比特位。
具体地,根据步骤220的描述,网络设备计算得到多个分离值后,从多个分离值中,选择分离值最大的比特位作为区分比特位。
进一步地,根据前述例子,Bit0、Bit1、Bit2中Bit0的分离值为最大值,因此,网络设备将Bit0作为区分比特位。
需要说明的是,网络设备选取区分比特位的个数可由管理人员在先配置。例如,选取区分比特位的个数最多为1个,选取区分比特位的个数最多为2个。
步骤240、利用所述区分比特位,生成初始决策树,所述初始决策树包括根节点以及叶子结点,每个叶子节点承载所述规则集合中的至少一条规则。
具体地,根据步骤230的描述,网络设备选择出区分比特位后,利用区分比特位,生成初始决策树。该初始决策树包括根节点以及叶子节点,每个叶子节点承载规则集合中的至少一条规则。
进一步地,网络设备根据区分比特位,生成比特位掩码,该比特位掩码包括第三数量个比特位。其中,第三数量与前述第一数量、第二数量相同。网络设备将比特位掩码中区分比特位的值置1,其他比特位的值置0。如此,以表示比特位掩码中,哪一个比特位被占用,哪些比特位未被占用。
根据比特位掩码,网络设备生成对应的桶(Bucket),并将规则集合中包括的多条规则加入至对应的Bucket内。每个Bucket中包含了符合该Bucket规则的规则。
需要说明的是,网络设备根据比特位掩码内置1的比特位的个数,生成对应的Bucket。例如,比特位掩码内置1的比特位的个数为1个时,网络设备生成两个Bucket,分别为Bucket0以及Bucket1。比特位掩码内置1的比特位的个数为2个时,网络设备生成四个Bucket,分别为Bucket0(二进制00)、Bucket1(二进制01)、Bucket2(二进制10)以及Bucket3(二进制11)。
网络设备利用Bucket,生成初始决策树。
需要说明的是,决策树包括的每个叶子节点承载的最大规则个数可由管理人员在先配置。例如,每个叶子节点最大承载一条规则。
例如,根据前述例子,网络设备选择Bit0作为区分比特位。根据Bit0,网络设备生成两个Bucket,即Bucket0以及Bucket1。网络设备将R1、R2、R3、R4加入至对应的Bucket内。
其中,Bucket0用于包括Bit0的值置为0的规则;Bucket1用于包括Bit0的值置为1的规则。
Bucket0:R2
Bucket1:R1、R3、R4
网络设备利用Bucket0以及Bucket1,生成初始决策树。如图3-A所示,图3-A为本申请实施例提供的一种初始决策树。在图3-A中,根节点内包括区分比特位,每个叶子节点内分别承载对应的规则。左侧叶子节点内承载R2,右侧叶子节点内承载R1、R3、R4。
网络设备生成初始决策树后,判断每个叶子节点内承载的规则个数是否满足预设数量。若叶子节点承载的规则个数不满足预设数量,则执行步骤250;若叶子节点承载的规则个数满足预设数量,则网络设备确定该初始决策树即为目标决策树。
步骤250、若所述叶子节点承载的规则个数不满足预设数量,则重复执行计算所述候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用所述区分比特位,生成初始决策树的过程,直至所述叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
具体地,根据步骤240的描述,若叶子节点承载的规则个数不满足预设数量,则网络设备重复执行步骤220-步骤240,直至叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
进一步地,根据前述例子,每个叶子节点最大承载一条规则,如此,图3-A中的右侧叶子节点内承载的规则个数不满足预设数量,网络设备再次计算多个比特位的分离值。从多个分离值中,网络设备选择分离值最大的比特位作为区分比特位。网络设备利用区分比特位,再次生成初始决策树。
需要说明的是,网络设备再次计算多个比特位的分离值时,不再计算前一次已作为区分比特位的Bit0的分离值。网络设备计算Bit1、Bit2的分离值,Bit1的分离值为160,Bit2的分离值为81。
此时,网络设备选择Bit1作为区分比特位。根据Bit1,网络设备再次生成两个Bucket,即Bucket0以及Bucket1。网络设备将R1、R3、R4加入至对应的Bucket内。
Bucket0:R3、R4
Bucket1:R1
网络设备再次利用Bucket0以及Bucket1,生成初始决策树。如图3-B所示,图3-B为本申请实施例提供的另一种初始决策树。在图3-B中,第二层内的右侧叶子节点内包括区分比特位,并且,该右侧叶子节点再次被划分为两个三层叶子节点。第三层左侧叶子节点内承载R3、R4,第三层右侧叶子节点内承载R1。
网络设备生成初始决策树后,判断每个叶子节点内承载的规则个数是否满足预设数量。若叶子节点承载的规则个数不满足预设数量,则网络设备重复执行步骤220-步骤240,直至叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
可以理解的是,网络设备再次对第三层左侧叶子节点进行划分,与前述过程相同,在此不再复述。网络设备最终得到目标决策树,如图3-C所示,图3-C为本申请实施例提供的目标决策树。在图3-C中,每个叶子节点承载的规则个数均满足预设数量。
因此,通过应用本申请提供的决策树的生成方法,网络设备获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;根据规则集合、候选比特位集合以及命中次数,网络设备计算候选比特位集合中每个比特位的分离值;从多个分离值中,网络设备选择分离值最大的比特位作为区分比特位;利用区分比特位,生成初始决策树,该初始决策树包括根节点以及叶子结点,每个叶子节点承载规则集合中的至少一条规则;若叶子节点承载的规则个数不满足预设数量,则网络设备重复执行计算候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用区分比特位,生成初始决策树的过程,直至叶子节点承载的规则个数满足预设数量时停止,网络设备得到目标决策树。
如此,网络设备在计算比特位的分离值时,利用每条规则的命中次数计算比特位的分离值,该分离值可使得命中次数高的叶子节点靠近根节点。解决了现有MBitCut生成的决策树中命中次数高的叶子节点远离根节点,导致内存访问次数增多的问题。实现了利用网络流量不均衡的特性,降低内存访问次数,提升网络设备性能。
可选地,在步骤210之前,网络设备还根据前一次生成的目标决策树,周期性统计每条规则的命中次数。
具体地,为了使得目标决策树更好的适应网络中流量的变化,网络设备需对决策树进行更新。网络设备获取前一次生成的目标决策树,并从目标决策树中,周期性统计规则集合中每条规则的命中次数。网络设备根据前述步骤210-步骤250更新目标决策树。
基于同一发明构思,本申请实施例还提供了与通信方法对应的通信装置。参见图4,图4为本申请实施例提供的决策树的生成装置,所述装置包括:
获取单元410,用于获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;
计算单元420,用于根据所述规则集合、候选比特位集合以及命中次数,计算所述候选比特位集合中每个比特位的分离值;
选择单元430,用于从多个分离值中,选择分离值最大的比特位作为区分比特位;
生成单元440,用于利用所述区分比特位,生成初始决策树,所述初始决策树包括根节点以及叶子结点,每个叶子节点承载所述规则集合中的至少一条规则;
执行单元450,用于若所述叶子节点承载的规则个数不满足预设数量,则重复执行计算所述候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用所述区分比特位,生成初始决策树的过程,直至所述叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
可选地,所述获取单元410还用于,获取前一次生成的目标决策树;
所述装置还包括:统计单元,用于从所述目标决策树中,周期性统计所述规则集合中每条规则的命中次数。
可选地,所述每条规则包括第一数量个比特位,所述候选比特位集合包括第二数量个比特位,所述第一数量与所述第二数量相同。
可选地,所述计算单元420具体用于,针对所述候选比特位集合中的每个比特位,从所述规则集合中,选择所述比特位的值为0的至少一条第一规则;
获取所述至少一条第一规则中每条第一规则的第一命中次数;
将每条第一规则的第一命中次数进行累加,得到第一和值;
针对所述候选比特位集合中的每个比特位,从所述规则集合中,选择所述比特位的值为1的至少一条第二规则;
获取所述至少一条第二规则中每条第二规则的第二命中次数;
将每条第二规则的第二命中次数进行累加,得到第二和值;
将所述第一和值与第二和值的乘积作为所述比特位的分离值。
可选地,所述命中次数的最小值为1。
因此,通过应用本申请提供的决策树的生成装置,网络设备获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;根据规则集合、候选比特位集合以及命中次数,网络设备计算候选比特位集合中每个比特位的分离值;从多个分离值中,网络设备选择分离值最大的比特位作为区分比特位;利用区分比特位,生成初始决策树,该初始决策树包括根节点以及叶子结点,每个叶子节点承载规则集合中的至少一条规则;若叶子节点承载的规则个数不满足预设数量,则网络设备重复执行计算候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用区分比特位,生成初始决策树的过程,直至叶子节点承载的规则个数满足预设数量时停止,网络设备得到目标决策树。
如此,网络设备在计算比特位的分离值时,利用每条规则的命中次数计算比特位的分离值,该分离值可使得命中次数高的叶子节点靠近根节点。解决了现有MBitCut生成的决策树中命中次数高的叶子节点远离根节点,导致内存访问次数增多的问题。实现了利用网络流量不均衡的特性,降低内存访问次数,提升网络设备性能。
基于同一发明构思,本申请实施例还提供了一种网络设备,如图5所示,包括处理器510、收发器520和机器可读存储介质530,机器可读存储介质530存储有能够被处理器510执行的机器可执行指令,处理器510被机器可执行指令促使执行本申请实施例所提供的决策树的生成方法。前述图4所示的决策树的生成装置,可采用如图5所示的网络设备硬件结构实现。
上述计算机可读存储介质530可以包括随机存取存储器(英文:Random AccessMemory,简称:RAM),也可以包括非易失性存储器(英文:Non-volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,计算机可读存储介质530还可以是至少一个位于远离前述处理器510的存储装置。
上述处理器510可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例中,处理器510通过读取机器可读存储介质530中存储的机器可执行指令,被机器可执行指令促使能够实现处理器510自身以及调用收发器520执行前述本申请实施例描述的决策树的生成方法。
另外,本申请实施例提供了一种机器可读存储介质530,机器可读存储介质530存储有机器可执行指令,在被处理器510调用和执行时,机器可执行指令促使处理器510自身以及调用收发器520执行前述本申请实施例描述的决策树的生成方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对于决策树的生成装置以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种决策树的生成方法,其特征在于,所述方法包括:
获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;
根据所述规则集合、候选比特位集合以及命中次数,计算所述候选比特位集合中每个比特位的分离值;
从多个分离值中,选择分离值最大的比特位作为区分比特位;
利用所述区分比特位,生成初始决策树,所述初始决策树包括根节点以及叶子结点,每个叶子节点承载所述规则集合中的至少一条规则;
若所述叶子节点承载的规则个数不满足预设数量,则重复执行计算所述候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用所述区分比特位,生成初始决策树的过程,直至所述叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
2.根据权利要求1所述的方法,其特征在于,所述获取已配置的规则集合、候选比特位集合以及规则集合中每个规则的命中次数之前,所述方法还包括:
获取前一次生成的目标决策树;
从所述目标决策树中,周期性统计所述规则集合中每条规则的命中次数。
3.根据权利要求1所述的方法,其特征在于,所述每条规则包括第一数量个比特位,所述候选比特位集合包括第二数量个比特位,所述第一数量与所述第二数量相同。
4.根据权利要求1所述的方法,其特征在于,所述根据所述规则集合、候选比特位集合以及命中次数,计算所述候选比特位集合中每个比特位的分离值,具体包括:
针对所述候选比特位集合中的每个比特位,从所述规则集合中,选择所述比特位的值为0的至少一条第一规则;
获取所述至少一条第一规则中每条第一规则的第一命中次数;
将每条第一规则的第一命中次数进行累加,得到第一和值;
针对所述候选比特位集合中的每个比特位,从所述规则集合中,选择所述比特位的值为1的至少一条第二规则;
获取所述至少一条第二规则中每条第二规则的第二命中次数;
将每条第二规则的第二命中次数进行累加,得到第二和值;
将所述第一和值与第二和值的乘积作为所述比特位的分离值。
5.根据权利要求4所述的方法,其特征在于,所述命中次数的最小值为1。
6.一种决策树的生成装置,其特征在于,所述装置包括:
获取单元,用于获取已配置的规则集合、候选比特位集合以及规则集合中每条规则的命中次数;
计算单元,用于根据所述规则集合、候选比特位集合以及命中次数,计算所述候选比特位集合中每个比特位的分离值;
选择单元,用于从多个分离值中,选择分离值最大的比特位作为区分比特位;
生成单元,用于利用所述区分比特位,生成初始决策树,所述初始决策树包括根节点以及叶子结点,每个叶子节点承载所述规则集合中的至少一条规则;
执行单元,用于若所述叶子节点承载的规则个数不满足预设数量,则重复执行计算所述候选比特位集合中每个比特位的分离值、从多个分离值中,选择分离值最大的比特位作为区分比特位以及利用所述区分比特位,生成初始决策树的过程,直至所述叶子节点承载的规则个数满足预设数量时停止,得到目标决策树。
7.根据权利要求6所述的装置,其特征在于,所述获取单元还用于,获取前一次生成的目标决策树;
所述装置还包括:统计单元,用于从所述目标决策树中,周期性统计所述规则集合中每条规则的命中次数。
8.根据权利要求6所述的装置,其特征在于,所述每条规则包括第一数量个比特位,所述候选比特位集合包括第二数量个比特位,所述第一数量与所述第二数量相同。
9.根据权利要求6所述的装置,其特征在于,所述计算单元具体用于,针对所述候选比特位集合中的每个比特位,从所述规则集合中,选择所述比特位的值为0的至少一条第一规则;
获取所述至少一条第一规则中每条第一规则的第一命中次数;
将每条第一规则的第一命中次数进行累加,得到第一和值;
针对所述候选比特位集合中的每个比特位,从所述规则集合中,选择所述比特位的值为1的至少一条第二规则;
获取所述至少一条第二规则中每条第二规则的第二命中次数;
将每条第二规则的第二命中次数进行累加,得到第二和值;
将所述第一和值与第二和值的乘积作为所述比特位的分离值。
10.根据权利要求9所述的装置,其特征在于,所述命中次数的最小值为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210109371.8A CN114513460B (zh) | 2022-01-28 | 2022-01-28 | 决策树的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210109371.8A CN114513460B (zh) | 2022-01-28 | 2022-01-28 | 决策树的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114513460A true CN114513460A (zh) | 2022-05-17 |
CN114513460B CN114513460B (zh) | 2023-09-15 |
Family
ID=81552543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210109371.8A Active CN114513460B (zh) | 2022-01-28 | 2022-01-28 | 决策树的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114513460B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909793A (zh) * | 2019-11-21 | 2020-03-24 | 华中科技大学 | 一种基于fpga实现的决策森林***及决策森林推理方法 |
CN112163642A (zh) * | 2020-10-30 | 2021-01-01 | 北京云从科技有限公司 | 一种风控规则获取方法、装置、介质及设备 |
CN112580902A (zh) * | 2021-02-26 | 2021-03-30 | 腾讯科技(深圳)有限公司 | 对象数据处理方法、装置、计算机设备和存储介质 |
CN112966756A (zh) * | 2021-03-10 | 2021-06-15 | 北京云从科技有限公司 | 一种可视化的准入规则的生成方法、装置、机器可读介质及设备 |
CN113347173A (zh) * | 2021-05-31 | 2021-09-03 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
US20210334709A1 (en) * | 2020-04-27 | 2021-10-28 | International Business Machines Corporation | Breadth-first, depth-next training of cognitive models based on decision trees |
-
2022
- 2022-01-28 CN CN202210109371.8A patent/CN114513460B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909793A (zh) * | 2019-11-21 | 2020-03-24 | 华中科技大学 | 一种基于fpga实现的决策森林***及决策森林推理方法 |
US20210334709A1 (en) * | 2020-04-27 | 2021-10-28 | International Business Machines Corporation | Breadth-first, depth-next training of cognitive models based on decision trees |
CN112163642A (zh) * | 2020-10-30 | 2021-01-01 | 北京云从科技有限公司 | 一种风控规则获取方法、装置、介质及设备 |
CN112580902A (zh) * | 2021-02-26 | 2021-03-30 | 腾讯科技(深圳)有限公司 | 对象数据处理方法、装置、计算机设备和存储介质 |
CN112966756A (zh) * | 2021-03-10 | 2021-06-15 | 北京云从科技有限公司 | 一种可视化的准入规则的生成方法、装置、机器可读介质及设备 |
CN113347173A (zh) * | 2021-05-31 | 2021-09-03 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
Non-Patent Citations (2)
Title |
---|
S. B. KOTSIANTIS: "Decision trees: a recent overview", 《ARTIF INTELL REV》 * |
汪海锐;李伟;: "基于关联规则的决策树算法", 计算机工程, no. 09 * |
Also Published As
Publication number | Publication date |
---|---|
CN114513460B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10742722B2 (en) | Server load balancing | |
US9819637B2 (en) | Efficient longest prefix matching techniques for network devices | |
US7072304B2 (en) | Network path selection based on bandwidth | |
EP2924927B1 (en) | Techniques for aggregating hardware routing resources in a multi-packet processor networking system | |
US6721800B1 (en) | System using weighted next hop option in routing table to include probability of routing a packet for providing equal cost multipath forwarding packets | |
CN110442570B (zh) | 一种BitMap高速模糊查找方法 | |
CN108965141B (zh) | 一种多路径路由树的计算方法及装置 | |
CN108632235A (zh) | 一种网包分类决策树建立方法及装置 | |
CN107919973B (zh) | 用于配置网络设备参数的方法和装置 | |
CN106685862A (zh) | 一种分片数据包处理方法及装置 | |
US11729101B1 (en) | Load balancing over a plurality of packet forwarding components | |
CN106657128B (zh) | 基于通配符掩码规则的数据包过滤方法及装置 | |
CN114513460A (zh) | 决策树的生成方法及装置 | |
CN106789668B (zh) | 一种处理报文的方法和装置 | |
US20100138893A1 (en) | Processing method for accelerating packet filtering | |
CN117201365A (zh) | 流量确定方法、装置、电子设备及存储介质 | |
US20230052252A1 (en) | Network device that utilizes tcam configured to output multiple match indices | |
CN114710378B (zh) | 一种基于决策树的并行报文分类查找方法及*** | |
CN111641555B (zh) | 一种路由收敛方法及装置 | |
US8924640B2 (en) | Dynamic allocation of records to clusters in a ternary content addressable memory | |
CN113762424A (zh) | 比特选位决策树的均衡方法、网络包分类方法及相关装置 | |
CN116418492A (zh) | 一种路由建立方法、***及量子密码网络 | |
CN113890855A (zh) | 一种报文转发方法、***、设备以及介质 | |
EP3902212B1 (en) | A method to mitigate hash correlation in multi-path networks | |
CN114095231B (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 |