首页 > 代码库 > 关联规则之频繁模式树及其并行计算
关联规则之频繁模式树及其并行计算
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》中给出了详细说明。