FP-growth
算法优缺点:
优点:一般快于Apriori
缺点:实现比较困难,在某些数据上性能下降
适用数据类型:标称型数据
算法思想:
FP-growth算法是用来解决频繁项集发现问题的,这个问题再前面我们可以通过Apriori算法来解决,但是虽然利用Apriori原理加快了速度,仍旧是效率比较低的。FP-growth算法则可以解决这个问题。
FP-growth算法使用了频繁模式树(Frequent Pattern Tree)的数据结构。FP-tree是一种特殊的前缀树,由频繁项头表和项前缀树构成。所谓前缀树,是一种存储候选项集的数据结构,树的分支用项名标识,树的节点存储后缀项,路径表示项集。
FP-growth算法生成频繁项集相对Apriori生成频繁项集的主要好处就是速度快,能快到几个数量级;另一个好处就是用FP树存储数据可以减少存储空间,因为关联挖掘的数据集往往是重复性很高的,这就能带来很高的压缩比。
算法可以分成一下几个部分:
构建FP树
首先我们要统计出所有的元素的频度,删除不满足最小支持度的(Apriori原理)
然后我们要根据频度对所有的项集排序(保证我们的树是最小的)
最后根据排序的项集构建FP树
从FP树挖掘频繁项集:
生成条件模式基
生成条件FP树
算法的执行过程这篇文章有个很好的示例程序