序列挖掘算法比较
发布时间
阅读量:
阅读量
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的性能更好一些。
在实际应用中,在挖掘过程的不同阶段,数据集的特点,数据规模等因素可能不同,如果根据各阶段的特点,选择与之相应的算法,则序列模式挖掘能达到更好的效果。
全部评论 (0)
还没有任何评论哟~
