论文部分内容阅读
关联挖掘作为数据挖掘的一个重要研究分支,其主要研究目的就是从大型数据集中发现隐藏的、有趣的、属性间的规律,即关联规则。由于形式简单、易于理解,且是从大型数据库中提取知识的主要手段,因此,关联规则挖掘的研究和应用已经得到了相关领域里学者的极大关注,并取得了不少的研究成果。关联规则的发现可以分成两个步骤:首先发现所有的频繁项集,然后用这些频繁项集生成强关联规则。Apriori算法是经典的频繁项目集生成算法,在数据挖掘界起着里程碑的作用,它的基本思想是利用一个层次顺序搜索的迭代方法来生成频繁项集,即利用k—项集来生成(k+1)一项集,用候选项集Ck找频繁项集Lk。首先,找出频繁1—项集的集合,记作L1,L1用于找频繁2—项集的集合L2,而L2用于找L3,如此下去,直到不能找到频繁k—项集。找每个Lk需要一次数据库扫描。一旦找出所有的频繁项集,就根据最小置信度来产生强关联规则。但是,在第k次循环中产生的候选k—项集的集合Ck中的项集是用来产生频集的候选集,最后的频集Lk必须是Ck的一个子集。Ck中的每个元素需在交易数据库中进行验证来决定其是否加入Lk,这里的验证过程是算法性能的一个瓶颈。这个方法要求多次扫描可能非常大的交易数据库。而用于关联规则挖掘的事务数据库的规模通常是非常大的,这样一来,开销就非常大。而在有限的内存容量下,系统I/O负载相当大,每次扫描数据库的时间就会很长,这样,其效率就非常低。Apriori算法涉及的数据对象包括事务集D,候选集C,频繁集L。算法涉及的操作包括:扫描事务集计算支持度,Lk-1与Lk-1连接生成Ck,扫描Lk-1来对Ck进行剪枝。可见,对Apriori算法的优化方向包括缩减三个数据集和提高三个操作的执行效率。在对Apriori算法进行分析时将会发现:随着k的增大,不仅k—项目集的个数减小,而且包含任意k—项目集的事务集也更少。所以,如果我们在计算各个候选项集的支持频度时,随着k的增大,我们也逐步缩小用于扫描的事务数,这样一来就可以大大节省输入输出开支。另外,Apriori算法利用Apriori性质大大压缩了搜索空间,提高频繁项集逐层产生的效率。能否采用一种方法使得在扫描的过程中Ck的规模逐步减小,以提高算法的效率?基于以上的分析,本文对Apriori算法进行了改进(GBARM算法),该算法能够逐步缩小用于扫描的事务数,并同时逐步减小Ck的规模,使得算法的性能大大提高。最后,对关联规则挖掘算法的应用领域给出了总结,并指明了进一步研究的方向。