研究了当前几种时兴的频集挖掘算法(Apriori,DF,FP-growth 和DCI)及其技术特点,并对其分类和界定适用范围。对其算法复杂性及时空执行效率等性能指标进行了定性和定量的综合分析。研究的结果对于在各种应用环境下的 关联挖掘系统的设计具有参考价值。 关键词: 频集挖掘; Apriori; DF; FP-growth; DCI 种频集挖掘算法及其特点 2.1 Apriori 算法 A priori算法是目前最为著名也是应用最为广泛的一种算法,并且目前许多算法都是在A priori的基础上优化和改进而来的。A priori算法核心思想是:首先扫描一遍数据库D ,产生频繁1 项集L 1,然后产生频繁2 项集L 2,直到有某个r 值使得L r 为空,这时算法停止。在第k 次循环过程中,首先产生候选k-项集的集合C k,C k 中的每一个项集是对2 个只有一个项不同的属于L k-1 的频集做一个(k - 2) 连接产生的。C k 是用来产生频集的候选集,为了决定C k 中的元素是否频繁,必须扫描数据库D 计算其支持度,因此频集L k 是C k 的一个子集[1]。C k 中的每个元素需进行验证来决定其是否加入L k ,这里的验证过程是算法性能的一个瓶颈。A priori算法的不足之处在于:1)可能产生大量的候选集。例如,当长度为1 的频集有104 个的时候,长度为2 的候选集个数将会超过107;2)如果要生成一个很长的规则时,要产生的中间元素也是巨量的。 2.2 DF 算法 D F 算法其实是A priori的一种改进算法,最重要的区别在于其采用了深度优先的方法,这也正是其称之为D F(D epth F irst)的原因。D F 算法采用了层次树(trie)来存储频繁项集。因为任何一个频繁集的子集也是频繁的,所以trie 很适合用来存储频繁项集。D F 算法执行如下操作[2]:扫描一遍数据库;计算各个项的支持度;并将频繁项按支持度排序;在主存中建立trie,trie 从根到叶子的每一条路径代表一个唯一的频繁项集;最后,算法输出trie 中的所有路径,即所有的频繁项集。