0 引 言
从Apriori算法执行过程可以了解到Apriori算法的缺点:一方面,在每一次产生候选项集时循环产生的组合过多,没有具体考虑不符合阈值的组合;另一方面,对每个项集计算支持度时要对整个数据库扫描一遍,对于分析网络数据包这样大型的数据库会增加I/O开销。这种开销是随着数据库的记录的增加呈几何级数的增长。现阶段人们开始探索一种能减少系统I/O开销的更为快捷的算法,相继提出了许多改进的算法。主要有Park等人提出的基于哈希技术的DHP算法,Savasere等人提出的基于划分技术的Partition算法,Toivonen提出的抽样算法,Sampling、Zaki等人提出的基于等价类和图论的MaxCique系列算法,S.Agarwal等人提出的采用有序树数据结构的TreeP-rojection算法以及Orlando等人提出的Apriori增强版的DCP算法等。而对于挖掘数据包是网络数据包时,数据源的特征属性较多而且数据包的记录数较大,这就需要必须选择合理的算法才能发现能描述用户特征的规则。
1 引用作用度的Apriori_lift算法
1.1 作用度
作用度是采用相关分析描述规则内在价值的度量,它描述的是项集X对Y的影响力的大小。作用度越高表示X的出现对Y出现的可能性影响越大,作用度度量的是X与Y之间蕴涵的实际强度。
作用度表示为:
1.2 Aprior=>lift算法的描述
第一步:大项集的生成;
第二步:采用作用度找出强关联规则。
使用第一步找到的所有频繁项集产生期望的规则。为了获取强有效关联规则,在使用信任度的基础上增加作用度计算来度量规则的有效性。具体描述过程如下:
(1)对于每个频繁K(K≥2)项集L,产生L的所有非空子集S;
(2)对于项集L的每个非空子集S,规则:
如果lift[S=>(L-S)]>1,则规则“S=>(L-S)”是强有效关联规则,输出。
2 算法性能比较
在局域网环境中(如图1所示)捕获网络数据包2 000个,分别采用Apriori,Apriori_lift算法挖掘,其挖掘过程及结果如下:
表3是实验采用的两个数据集Tcppro,Udppro。
表4是二种算法在不同支持度(Supp)信任度(Conf)下的挖掘结果统计。
由表4可知,在相同的作用度与支持度的情况下,Apriori,Apriori_lift算法挖掘得到的规则逐渐递减;在不同的作用度与支持度情况下,参数值越低挖掘出的规则越多,这主要体现在Apriori算法的挖掘上,而对于Apriori_lift算法当参数值达到一定阈值时,改变参数值对其挖掘结果影响不大,改善了挖掘规则遗漏的情况。
作者:关德君 林丽 来源:现代电子技术