频繁项集查找算法
假设: 1. 数据集不更新,2. 内存无限大,3. 数据集大小合理
FP-Growth:将数据库里的频繁项集以一种压缩的方式储存于树中(目前测试过的内存及速度最优算法)
Apriori:频繁项集的子集一定频繁
Eclat:垂直tid-list,切分search space
去除假设1:
处理新增数据需要重新对整个更新后的数据集进行运算
解决方案:存储利用中间结果
注意:若算法足够高效,重新处理整个数据集有可能比下列两个算法快,且空间占用少
CanTree:用FP-Tree的方式储存所有数据
ZigZag: 基于GenMax,仅存储频繁项集
去除假设2:
需要利用磁盘,慢
解决方案:分布式
去除假设3:
单机处理时间过长
解决方案:并行,分布式
有非常多使用MapReduce和Spark的算法改进,也有一些使用MPI的
作者:JYZ