在频繁模式挖掘中,FPGrowth是否仍被视为“最新技术”?


12

据我所知,用于解决频繁模式挖掘(FPM)问题的算法的开发,改进之路有一些主要检查点。首先,Apriori算法是由Agrawal等人于1993年提出的,以及问题的形式化。该算法能够通过使用网格来维护数据,从而从集合(功率集)中剥离一些集合2^n - 1。该方法的缺点是需要重新读取数据库以计算每个扩展集的频率。

后来,在1997年,Zaki等人。提出了Eclat算法,该算法将每个集合的结果频率插入晶格中。这是通过在网格的每个节点处添加具有从根到所引用节点的项的事务ID集合来完成的。主要贡献在于,不必重新读取整个数据集即可知道每个集合的频率,但是保持这种数据结构建立所需的内存可能会超过数据集本身的大小。

2000年,Han等。提出了一种名为FPGrowth的算法,以及一个名为FPTree的前缀树数据结构。该算法能够提供显着的数据压缩,同时还可以仅产生频繁的项目集(不生成候选项目集)。这主要是通过按降序对每个事务的项目进行排序来完成的,以便最频繁的项目是树数据结构中重复次数最少的项目。由于频率仅在深度遍历树时下降,因此该算法能够剥离非频繁项集。

编辑

据我所知,这可能被认为是最先进的算法,但是我想了解其他建议的解决方案。FPM还有哪些其他算法被认为是“最新技术”?这种算法的直觉 / 主要贡献是什么?

在频繁模式挖掘中,FPGrowth算法是否仍被视为“最新技术”?如果不是,哪种算法可以更有效地从大型数据集中提取频繁项集?


这篇文章已经过研究,并且介绍得很好。对于SE网络站点来说,这是一个很糟糕的问题,但是从论坛开始是一个很好的话题。
航空

@AirThomas感谢您的警告。我试图通过提出一个适当的问题来保存帖子。
鲁本斯2014年

Answers:


9

最新技术水平:是在实践中使用还是在理论上进行研究?

除开发新的频繁项集算法外,APRIORI随处可见。它很容易实现,并且可以在非常不同的域中轻松重用。您会发现数百种质量不同的APRIORI实现。实际上,很容易弄错APRIORI。

FPgrowth很难实现,但也更有趣。因此,从学术角度来看,每个人都在尝试提高FPgrowth-到目前为止,要使基于APRIORI的工作得到认可是非常困难的。

如果您有一个好的实现,那么我认为每种算法都有其优缺点。一个好的APRIORI实现需要扫描数据库k次以找到所有长度为k的频繁项集。特别是如果您的数据适合主存储器,则价格便宜。杀死APRIORI的原因是太多的频繁2个项目集(尤其是当您不使用Trie和类似的加速技术等时)。它最适合于频繁项目集数量少的大型数据。

Eclat在圆柱上工作;但是它需要更频繁地阅读每一列。diffsets有一些工作可以减少这项工作。如果您的数据不适合主内存,那么Eclat遭受的痛苦可能会大于Apriori。通过深入浅出,它还可以比Apriori更早地返回第一个有趣的结果,您可以使用这些结果来调整参数。因此,您只需进行较少的迭代即可找到合适的参数。但是从设计上讲,它不能像Apriori那样巧妙地利用修剪功能。

FPGrowth将数据集压缩到树中。当您有很多重复的记录时,这种方法最有效。如果您可以对数据进行预排序并将重复项合并到加权向量中,则可能也可以从Apriori和Eclat中获得很多收益。FPGrowth在极端级别上执行此操作。缺点是实现起来困难得多。一旦这棵树不再适合内存,它就会变得一团糟。

至于性能结果和基准-不要相信它们。有很多事情要执行不正确。尝试10种不同的实现,您将获得10种非常不同的性能结果。特别是对于APRIORI,我的印象是,大多数实现都因缺少APRIORI的一些主要贡献而被打破了……而那些拥有正确部分的人,优化的质量变化很大。

实际上,甚至还有关于如何有效实现这些算法的论文:

Apriori和Eclat的高效实现。
Christian Borgelt
频繁项目集挖掘实现研讨会(FIMI 2003,美国佛罗里达州墨尔本)。

您可能还想阅读有关此域的这些调查:

  • Goethals,Bart。“关于频繁模式挖掘的调查。” 大学 赫尔辛基(2003)。

  • Ferenc Bodon,频繁项集采矿调查,技术报告,布达佩斯科技经济大学,2006年,

  • 频繁项目集挖掘
    Christian Borgelt
    Wiley跨学科评论:数据挖掘和知识发现2(6):437-456。2012年


2

我在文献中看到的大多数最近的“频繁模式”方法都基于优化FPGrowth。我必须承认,多年来我没有在FPM的文献中看到很多发展。

该Wikibook重点介绍了FPGrowth上的许多变体。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.