4种序列模式挖掘算法的比较分析
来源:互联网 发布:淘宝视觉营销 编辑:程序博客网 时间:2024/06/06 16:38
http://fpcheng.blog.51cto.com/2549627/829527
算法简介
AprioriAll算法属于Apriori类算法,其基本思想为首先遍历序列数据库生成候选序列并利用Apriori性质进行剪枝得到频繁序列。每次遍历都是通过连接上次得到的频繁序列生成新的长度加1的候选序列,然后扫描每个候选序列验证其是否为频繁序列。
GSP(generalized sequential pattern)算法是AprioriAll算法的扩展算法,其算法的执行过程和AprioriAll类似,最大的不同在于GSP引入了时间约束、滑动时间窗和分类层次技术,增加了扫描的约束条件,有效地减少了需要扫描的候选序列的数量。此外GSP利用哈希树来存储候选序列,减少了需要扫描的序列数量。
FreeSpan算法是基于模式投影的序列挖掘算法,其基本思想:利用当前挖掘的频繁序列集将序列数据库递归地投影到一组更小的投影数据库上,分别在每个投影数据库上增长子序列。这一过程对数据和待检验的频繁模式集都进行了分割,并且每一次检验限制在与其相符合的更小投影数据库中。
PrefixSpan是FreeSpan的改进算法,即通过前缀投影挖掘序列模式。其基本思想:投影时不考虑所有可能出现的频繁子序列,只检查前缀序列,然后把相应的后缀投影成投影数据库。每个投影数据库中,只检查局部频繁模式,在整个过程中不需要生成候选序列。
2. 算法的定性比较
表1.算法的分类比较
属性
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. 算法的适用范围分析
通常数据集可分为稠密数据集和稀疏数据集。稠密数据集有大量的长尺度和高支持度的频繁模式,在这样的数据集中,许多事件是相似的,例如DNA分析或者股票序列分析。稀疏数据集主要由短模式组成,长模式也存在,但相应的支持度很小,例如超级市场的交易数据集,用户在网站中的浏览页面序列等。
Apriori类算法在稀疏数据集的应用中比较合适,不适合稠密数据集的应用。对于有约束条件(例如相邻事务的时间间隔约束)序列模式挖掘,GSP更适用。
FreeSpan和PrefixSpan在两种数据集中都适用,而且在稠密数据集中它们的优势更加明显。两者相比,PrefixSpan的性能更好一些。
在实际应用中,在挖掘过程的不同阶段,数据集的特点,数据规模等因素可能不同,如果根据各阶段的特点,选择与之相应的算法,则序列模式挖掘能达到更好的效果。
此外由于Apriori类算法使用较简单,FreeSpan和PrefixSpan虽然效率高,但实现起来难度大。所以,现在大多数应用都是采用Apriori类算法的改进算法,以克服Apriori类算法执行效率不高的缺点。
- 4种序列模式挖掘算法的比较分析
- 序列挖掘算法比较
- 数据挖掘进阶之序列模式分析算法GSP的实现
- PrefixSpan序列模式挖掘算法
- 序列模式挖掘算法BIDE
- PrefixSpan序列模式挖掘算法
- PrefixSpan序列模式挖掘算法
- 机器学习:序列模式挖掘算法
- 序列模式挖掘——GSP算法
- 序列模式挖掘算法之PrefixSpan
- 序列模式分析算法GSP的实现
- 数据挖掘进阶之序列模式挖掘GSP算法
- GSP序列模式分析算法
- GSP序列模式分析算法
- 时间序列频繁模式挖掘:GSP算法、SPADE算法
- 序列模式挖掘
- 序列模式挖掘
- 数据挖掘之关联分析五(序列模式)
- 读入优化
- 迷宫问题bfs+打印路径
- LeetCode(169)Majority Element
- SkyEye硬件模拟平台, 第一部分: SkyEye 介绍
- JS自定义data-*属性与jquery的data()方法的使用
- 4种序列模式挖掘算法的比较分析
- 插入排序
- poj 2528 (线段树+离散化)
- JAVA二进制转换
- 用jdbc中加载配置文件是出现java.io.FileNotFoundException的解决之道
- 要求循环输入一个数,判断是否为回文数
- JAVA判断与循环语句
- 威盛电子- via ASIC 笔试题
- MFC访问对话框控件的7种方法