Tutorial 02
Tutorial 02
2010
Tutorial 2 – Frequent Pattern
Mining
Frequent Patterns
Frequent pattern: a pattern (a set of items,
subsequences, substructures, etc.) that occurs
frequently in a data set
itemset: A set of one or more items
k-itemset: X = {x1, …, xk}
Mining algorithms
Tid Items bought
Apriori
FP-growth 10 Beer, Nuts, Diaper
frequent infrequent
AB AC AD AE BC BD BE CD CE DE
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
infrequent
ABCDE
Apriori: A Candidate
Generation & Test Approach
Initially, scan DB once to get frequent 1-
itemset
Loop
Generate length (k+1) candidate
itemsets from length k frequent
itemsets
Test the candidates against DB
Terminate when no frequent or candidate set
can be generated
5
Generate candidate itemsets
Example
Frequent 3-itemsets:
{1, 2, 3}, {1, 2, 4}, {1, 2, 5}, {1, 3, 4},
{1, 3, 5}, {2, 3, 4}, {2, 3, 5} and {3, 4, 5}
Candidate 4-itemset:
{1, 2, 3, 4}, {1, 2, 3, 5}, {1, 2, 4, 5}, {1, 3, 4,
5}, {2, 3, 4, 5}
Which need not to be counted?
6
Maximal vs Closed Frequent
Itemsets
An itemset X is a max-pattern if X is frequent and
there exists no frequent super-pattern Y כX
An itemset X is closed if X is frequent and there
exists no super-pattern Y כX, with the same
support as X
Frequent
Closed Frequent Itemsets are Lossless: Itemsets
the support for any frequent itemset
can be deduced from the closed Closed
Frequent
frequent itemsets Itemsets
Maximal
Frequent
Itemsets
7
Maximal vs Closed Frequent
Itemsets
null Closed but
minsup=2 not
maximal
124 123 1234 245 345
A B C D E
Closed and
maximal
frequent
12 124 24 4 123 2 3 24 34 45
AB AC AD AE BC BD BE CD CE DE
12 2 24 4 4 2 3 4
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
# Closed = 9
2 4
ABCD ABCE ABDE ACDE BCDE # Maximal = 4
8
ABCDE
Algorithms to find frequent
pattern
Apriori: uses a generate-and-test approach –
generates candidate itemsets and tests if they
are frequent
Generation of candidate itemsets is expensive (in both
space and time)
Support counting is expensive
Subset checking (computationally expensive)
Multiple Database scans (I/O)
FP-Growth: allows frequent itemset discovery
without candidate generation. Two step:
1.Build a compact data structure called the FP-tree
2 passes over the database
2.extracts frequent itemsets directly from the FP-tree
Traverse through FP-tree
9
Pattern-Growth Approach: Mining
Frequent Patterns Without
Candidate Generation
The FP-Growth Approach
Depth-first search (Apriori: Breadth-first search)
Avoid explicit candidate generation
FP-Growth approach:
• For each frequent item, Fp-tree construatioin:
construct its conditional pattern- • Scan DB once, find
base, and then its conditional frequent 1-itemset
FP-tree (single item pattern)
• Repeat the process on each • Sort frequent items in
newly created conditional FP- frequency descending
tree order, f-list
• Until the resulting FP-tree is • Scan DB again, construct
empty, or it contains only one FP-tree 10
path—single path will generate
all the combinations of its sub-
FP-tree Size
The size of an FPtree is typically smaller than the
size of the uncompressed data because many
transactions often share a few items in common
Bestcase scenario: All transactions have the same
set of items, and the FPtree contains only a single
branch of nodes.
Worstcase scenario: Every transaction has a unique
set of items. As none of the transactions have any
items in common, the size of the FPtree is
effectively the same as the size of the original data.
The size of an FPtree also depends on how the
items are ordered
11
Example
FP-tree with item FP-tree with item ascending
descending ordering ordering
12
Find Patterns Having p From P-
conditional Database
Starting at the frequent item header table in the FP-tree
Traverse the FP-tree by following the link of each frequent
item p
Accumulate all of transformed prefix paths of item p to
form p’s conditional pattern base
{}
Header Table
f:4 c:1 Conditional pattern bases
Item frequency head
f 4 item cond. pattern base
c 4 c:3 b:1 b:1
c f:3
a 3
b 3 a:3 p:1 a fc:3
m 3 b fca:1, f:1, c:1
p 3 m:2 b:1 m fca:2, fcab:1
p:2 m:1 p fcam:2, cb:1 13
FP-Growth
1 f, c, a, m
4 c, b +p
5 f, c, a, m
1 f, c, a
1 f, c, a, m, p 2 f, c, a, b + m
2 f, c, a, b, m 5 f, c, a
1 f, c, a, m 2 f, c, a
3 f, b 3f +b
2 f, c, a, b, m
4 c, b, p 4c
3 f, b 1 f, c, a 1 f, c
5 f, c, a, m, p
4 c, b 2 f, c, a, b 2 f, c + a
5 f, c, a, m 3 f, b 1 f, c, a 5 f, c
4 c, b 2 f, c, a
5 f, c, a 3 f 1 f, c
4 c 2 f, c
5 f, c, a 3 f
4 c 14
5 f, c
FP-Growth
1 f, c, a, m
+p 1 f, c, a
4 c, b
2 f, c, a, b + m
5 f, c, a, m
5 f, c, a
(1) (2)
1 f, c, a, m, p
2 f, c, a, b, m 2 f, c, a 1 f, c
3 f, b 3f +b 2 f, c + a
4 c, b, p 4c 5 f, c
5 f, c, a, m, p (3) (4)
1f
2f
+c f: 1,2,3,5
4
5f
15
(6)
(5)
{} {}
a:3 p:1 {} {}
{}
m:2 b:1
f:2 c:1 f:3 f:4
f:3
p:2 m:1
c:1 c:3 +
+
+ c
a:1 a
b 16
1 f, c, a 1 f, c, a
2 f, c, a, b + m 2 f, c, a + m
m: 3
min_sup = 3
5 f, c, a fm: 3
5 f, c, a
cm: 3
2 f, c, a
am: 3
3f +b b: 3 fcm: 3
1 f, c, a, m, p 4c fam: 3
2 f, c, a, b, m a: 3 cam: 3
1 f, c
3 f, b fa: 3 fcam: 3
2 f, c + a
4 c, b, p ca: 3
5 f, c fca: 3
5 f, c, a, m, p
1f
2f c: 4
+c
4 fc: 3
5f
17
f: 1,2,3,5 f: 4