首页 > 代码库 > 关联规则之频繁模式树及其并行计算

关联规则之频繁模式树及其并行计算

       Frequent Pattern Tree(频繁模式树)是Jiawei Han在文章《Mining Frequent Patterns without Candidate Generation 》中提出的。

————————————————————————————————————————————————————

下面给出一些定义:

设项集(set of items),交易数据库(transaction database),其中交易(transaction),是中的元素组成的集合。模式(Pattern)A是中的元素组成的集合,模式A的支持度(support)是指交易数据库中包含A的交易的数量。是最小支持度阈值,如果,模式A的支持度大于,那么称A为频繁模式。

频繁模式树就是要找到交易数据库中的频繁模式。

————————————————————————————————————————————————————

例子:

设项集,交易数据库如下表:


最小支持度阈值

构造频繁模式树只需要扫描(scan)交易数据库次。

第一次:扫描数据库,对其中的每一个项进行计数,例如,项出现了4次,依次类推我们对其中的每一项进行计数,因为最小支持度阈值为3,,我们下面只给出出现次数大于3的项:

然后,我们对每一个交易,只保留大于3的项,并排序,然后我们得出下表,多出了一列就是排序频繁项(Ordered Frequent Items)

第二次:扫描数据库,构造频繁模式树(构造过程很简单,原论文给出了详细的阐述):


—————————————————————————————————————————————————————

根据上面的两步,我们已经构造出了频繁模式树,怎么样通过频繁模式树,找到频繁模式。

其中,我们拿和项有关的频繁模式举例,其他依次类推:

首先,我们找到所有的节点,并沿着树枝路径向上直到根节点,我们发现有两条路径:

然后,我们可以得出出现的3次同时出现了3次,是同时和出现次数最多的项,而且次数大于最小支持度阈值。所以就是一个频繁模式,依次类推得出其他项的频繁模式:

所以,通过频繁模式树找到了很多频繁模式。

—————————————————————————————————————————————————————

对于频繁模式树的并行计算(MapReduce),文章

《Parallel FP-Growth for Query Recommendation》中给出了详细说明。