论文部分内容阅读
随着计算机技术和应用不断发展,人类面临着海量的数据。如何更好的利用好这些数据,以及怎么从这些数据中提取和挖掘出其中隐含的知识,是人们感兴趣的事情。知识发现和数据挖掘就逐渐成为现在计算机技术研究的一个重要领域。频繁模式挖掘是数据挖掘领域的一个重要方面,研究内容一般包括事务、序列、树和图。其方法被广泛应用于许多其它数据挖掘任务中,如相关性分析,周期分析,最大模式,闭合模式,查询,分类,索引等等。由于问题本身的基础性和内在复杂性,频繁模式挖掘方法成为许多研究者关注的课题。本文对频繁模式挖掘相关技术进行了研究。包含了以下几个方面:利用倒排表改进传统Apriori的算法挖掘频繁模式;利用组合树进行频繁模式的挖掘;利用组合树挖掘闭合频繁模式。基于倒排表的Apriori频繁模式挖掘算法传统的Apriori算法在处理短模式和稀疏数据集的时候表现很好,但是处理长频繁模式挖掘时候效率相当低下,需要多次扫描事务库。针对传统Apriori算法的缺点,我们利用倒排表来提出一种新的挖掘算法,即InList算法。与传统Apriori算法相比较,InList算法采用逐项插入而不是逐事务插入,在事务频繁库中存储已有的频繁项集,逐次插入新的频繁单项,和已有的频繁项集产生新的频繁项集,可以避免验证中的大量冗余操作。不需要连接和剪枝,仅需要扫描事务库两次。由于这些改进,InList算法具有较好的效率。基于组合树的频繁模式挖掘我们提出一种基于组合树频繁模式挖掘算法。与Apriori算法和FP-growth算法相比,该算法具有更好的效率。算法针对FP-growth算法的缺点,采用倒排表,逐次插入新的频繁单项,生成频繁树,再经过分枝间计数的传递,使各分枝相对独立。算法只需要两次扫描事务库,可以更大限度的利用事务间的共享项,可以排除掉局部无关项,同时有效的避免了大多数递归的操作。实验与理论分析表明,对于稠密和稀疏数据两类数据集,该算法都具有较好的效率。高效频繁闭合模式与完全频繁模式相比较,频繁闭合模式包含完全频繁模式的所有信息,但频繁闭合模式比完全闭合模式的数量却可以少几个数量级。这对于处理具有大量频繁项的事务库的频繁项挖掘是一个很好的选择。传统的挖掘闭合频繁模式都需要消耗大量的时间进行验证。本文利用组合树的优点,在生成组合树的同时,比较相应结点的计数,可以容易的区分每个频繁模式是否属于闭合频繁模式。然后通过对树的遍历,得到所有的频繁闭合模式。由于节省了检测操作,大大提高了效率。