序列挖掘算法比较

AprioriAll + GSP + FreeSpan + PrefixSpan

1.基本概念

AprioriAll算法属于Apriori类算法,其基本思想为首先遍历序列数据库生成候选序列并利用Apriori性质进行剪枝得到频繁序列。

GSP(generalized sequential pattern)算法是AprioriAll算法的扩展算法,不同在于GSP引入了时间约束、滑动时间窗和分类层次技术,有效地减少了需要扫描的候选序列的数量。

FreeSpan算法是基于模式投影的序列挖掘算法,其基本思想:利用当前挖掘的频繁序列集将序列数据库递归地投影到一组更小的投影数据库上,分别在每个投影数据库上增长子序列。

PrefixSpan是FreeSpan的改进算法,即通过前缀投影挖掘序列模式。


2.     算法的定性比较

属性

Apriori类算法

模式增长算法

AprioriAll

GSP

FreeSpan

PrefixSpan

候选序列

产生

产生

不产生

不产生

数据结构

Hash树

Hash树

Hash树

WAP树

数据库分割

数据库的扫描次数

反复多次

反复多次

3次

2次

算法执行

循环

循环

递归

递归

 

3.     算法的时空执行效率比较

Apriori

All算法

这两种算法都属于Apriori类算法,都要产生大量的候选序列,需要有足够的存贮空间。同时还需要反复扫描数据库,需要占用很多运行时间。该类算法的执行效率比较低,特别是在支持度比较低的情况下,其执行效率将会大大下降。和AprioriAll相比,GSP的执行效率比较高,总体来说要比AprioriAll高2~20倍。

GSP算法

FreeSpan算法

这两种算法都属于模式增长算法,它们的查找更加集中和有效。由于该类算法不生成大量的候选序列以及不需要反复扫描原数据库,和Apriori类算法相比该类算法要快且更有效,特别是在支持度比较低的情况下更明显。此外,在时空的执行效率上,PrefixSpan比FreeSpan更优。

PrefixSpan算法

 

4.     算法的适用范围分析

Apriori类算法在稀疏数据集的应用中比较合适,不适合稠密数据集的应用。对于有约束条件(例如相邻事务的时间间隔约束)序列模式挖掘,GSP更适用。

FreeSpan和PrefixSpan在两种数据集中都适用,而且在稠密数据集中它们的优势更加明显。两者相比,PrefixSpan的性能更好一些。

在实际应用中,在挖掘过程的不同阶段,数据集的特点,数据规模等因素可能不同,如果根据各阶段的特点,选择与之相应的算法,则序列模式挖掘能达到更好的效果。

你可能感兴趣的:(数据挖掘)