Mining Frequent Patterns without Candidate Generation


Mining frequent patterns in transaction databases, time-series databases, and many other kinds of databases has been studied popularly in data mining research. Most of the previous studies adopt an Apriori-like candidate set generation-and-test approach. However, candidate set generation is still costly, especially when there exist prolific patterns and/or long patterns. In this study, we propose a novel frequent pattern tree (FP-tree) structure, which is an extended prefix-tree structure for storing compressed, crucial information about frequent patterns, and develop an efficient FP-tree-based mining method, FP-growth, for mining <i>the complete set of frequent patterns</i> by pattern fragment growth. Efficiency of mining is achieved with three techniques: (1) a large database is compressed into a highly condensed, much smaller data structure, which avoids costly, repeated database scans, (2) our FP-tree-based mining adopts a pattern fragment growth method to avoid the costly generation of a large number of candidate sets, and (3) a partitioning-based, divide-and-conquer method is used to decompose the mining task into a set of smaller tasks for mining confined patterns in conditional databases, which dramatically reduces the search space. Our performance study shows that the FP-growth method is efficient and scalable for mining both long and short frequent patterns, and is about an order of magnitude faster than the Apriori algorithm and also faster than some recently reported new frequent pattern mining methods.

DOI: 10.1145/342009.335372
View Slides

Extracted Key Phrases

11 Figures and Tables

Citations per Year

5,219 Citations

Semantic Scholar estimates that this publication has 5,219 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@inproceedings{Han2000MiningFP, title={Mining Frequent Patterns without Candidate Generation}, author={Jiawei Han and Jian Pei and Yiwen Yin}, booktitle={SIGMOD Conference}, year={2000} }