Chapter 5: Mining Frequent Patterns,
Association and Correlations
Basic concepts and a road map
Efficient and scalable frequent itemset mining
methods
Mining various kinds of association rules
From association mining to correlation
analysis
Constraint-based association mining
Summary
January 17, 2020 Data Mining: Concepts and Techniques 1
What Is Frequent Pattern Analysis?
Frequent pattern: a pattern (a set of items, subsequences, substructures,
etc.) that occurs frequently in a data set
First proposed by Agrawal, Imielinski, and Swami [AIS93] in the context
of frequent itemsets and association rule mining
Motivation: Finding inherent regularities in data
What products were often purchased together?— Beer and diapers?!
What are the subsequent purchases after buying a PC?
What kinds of DNA are sensitive to this new drug?
Can we automatically classify web documents?
Applications
Basket data analysis, cross-marketing, catalog design, sale campaign
analysis, Web log (click stream) analysis, and DNA sequence analysis.
January 17, 2020 Data Mining: Concepts and Techniques 2
Why Is Freq. Pattern Mining Important?
Discloses an intrinsic and important property of data sets
Forms the foundation for many essential data mining tasks
Association, correlation, and causality analysis
Sequential, structural (e.g., sub-graph) patterns
Pattern analysis in spatiotemporal, multimedia, time-
series, and stream data
Classification: associative classification
Cluster analysis: frequent pattern-based clustering
Data warehousing: iceberg cube and cube-gradient
Semantic data compression: fascicles
Broad applications
January 17, 2020 Data Mining: Concepts and Techniques 3
Basic Concepts: Frequent Patterns and
Association Rules
Transaction-id Items bought Itemset X = {x1, …, xk}
10 A, B, D
Find all the rules X Y with minimum
20 A, C, D support and confidence
30 A, D, E
support, s, probability that a
40 B, E, F
transaction contains X Y
50 B, C, D, E, F
confidence, c, conditional
Customer Customer probability that a transaction
buys both buys diaper
having X also contains Y
Let supmin = 50%, confmin = 50%
Freq. Pat.: {A:3, B:3, D:4, E:3, AD:3}
Association rules:
Customer A D (60%, 100%)
buys beer
D A (60%, 75%)
January 17, 2020 Data Mining: Concepts and Techniques 4
Closed Patterns and Max-Patterns
A long pattern contains a combinatorial number of sub-
patterns, e.g., {a1, …, a100} contains (1001) + (1002) + … +
(110000) = 2100 – 1 = 1.27*1030 sub-patterns!
Solution: Mine closed patterns and max-patterns instead
An itemset X is closed if X is frequent and there exists no
super-pattern Y כX, with the same support as X
(proposed by Pasquier, et al. @ ICDT’99)
An itemset X is a max-pattern if X is frequent and there
exists no frequent super-pattern Y כX (proposed by
Bayardo @ SIGMOD’98)
Closed pattern is a lossless compression of freq. patterns
Reducing the # of patterns and rules
January 17, 2020 Data Mining: Concepts and Techniques 5
Closed Patterns and Max-Patterns
Exercise. DB = {<a1, …, a100>, < a1, …, a50>}
Min_sup = 1.
What is the set of closed itemset?
<a1, …, a100>: 1
< a1, …, a50>: 2
What is the set of max-pattern?
<a1, …, a100>: 1
What is the set of all patterns?
!!
January 17, 2020 Data Mining: Concepts and Techniques 6
Chapter 5: Mining Frequent Patterns,
Association and Correlations
Basic concepts and a road map
Efficient and scalable frequent itemset mining
methods
Mining various kinds of association rules
From association mining to correlation
analysis
Constraint-based association mining
Summary
January 17, 2020 Data Mining: Concepts and Techniques 7
Scalable Methods for Mining Frequent Patterns
The downward closure property of frequent patterns
Any subset of a frequent itemset must be frequent
If {beer, diaper, nuts} is frequent, so is {beer,
diaper}
i.e., every transaction having {beer, diaper, nuts} also
contains {beer, diaper}
Scalable mining methods: Three major approaches
Apriori (Agrawal & Srikant@VLDB’94)
Freq. pattern growth (FPgrowth—Han, Pei & Yin
@SIGMOD’00)
Vertical data format approach (Charm—Zaki & Hsiao
@SDM’02)
January 17, 2020 Data Mining: Concepts and Techniques 8
Apriori: A Candidate Generation-and-Test Approach
Apriori pruning principle: If there is any itemset which is
infrequent, its superset should not be generated/tested!
(Agrawal & Srikant @VLDB’94, Mannila, et al. @ KDD’ 94)
Method:
Initially, scan DB once to get frequent 1-itemset
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
January 17, 2020 Data Mining: Concepts and Techniques 9
The Apriori Algorithm—An Example
Supmin = 2 Itemset sup
Itemset sup
Database TDB {A} 2
Tid Items
L1 {A} 2
C1 {B} 3
{B} 3
10 A, C, D {C} 3
1st scan {C} 3
20 B, C, E {D} 1
{E} 3
30 A, B, C, E {E} 3
40 B, E
C2 Itemset sup C2 Itemset
{A, B} 1
L2 Itemset sup 2nd scan {A, B}
{A, C} 2
{A, C} 2 {A, C}
{A, E} 1
{B, C} 2
{B, C} 2 {A, E}
{B, E} 3
{B, E} 3 {B, C}
{C, E} 2
{C, E} 2 {B, E}
{C, E}
C3 Itemset L3 Itemset sup
3rd scan
{B, C, E} {B, C, E} 2
January 17, 2020 Data Mining: Concepts and Techniques 10
The Apriori Algorithm
Pseudo-code:
Ck: Candidate itemset of size k
Lk : frequent itemset of size k
L1 = {frequent items};
for (k = 1; Lk !=; k++) do begin
Ck+1 = candidates generated from Lk;
for each transaction t in database do
increment the count of all candidates in Ck+1
that are contained in t
Lk+1 = candidates in Ck+1 with min_support
end
return k Lk;
January 17, 2020 Data Mining: Concepts and Techniques 11
Important Details of Apriori
How to generate candidates?
Step 1: self-joining Lk
Step 2: pruning
How to count supports of candidates?
Example of Candidate-generation
L3={abc, abd, acd, ace, bcd}
Self-joining: L3*L3
abcd from abc and abd
acde from acd and ace
Pruning:
acde is removed because ade is not in L3
C4={abcd}
January 17, 2020 Data Mining: Concepts and Techniques 12
How to Generate Candidates?
Suppose the items in Lk-1 are listed in an order
Step 1: self-joining Lk-1
insert into Ck
select p.item1, p.item2, …, p.itemk-1, q.itemk-1
from Lk-1 p, Lk-1 q
where p.item1=q.item1, …, p.itemk-2=q.itemk-2, p.itemk-1 <
q.itemk-1
Step 2: pruning
forall itemsets c in Ck do
forall (k-1)-subsets s of c do
if (s is not in Lk-1) then delete c from Ck
January 17, 2020 Data Mining: Concepts and Techniques 13
How to Count Supports of Candidates?
Why counting supports of candidates a problem?
The total number of candidates can be very huge
One transaction may contain many candidates
Method:
Candidate itemsets are stored in a hash-tree
Leaf node of hash-tree contains a list of itemsets and
counts
Interior node contains a hash table
Subset function: finds all the candidates contained in
a transaction
January 17, 2020 Data Mining: Concepts and Techniques 14
Example: Counting Supports of Candidates
Subset function
Transaction: 1 2 3 5 6
3,6,9
1,4,7
2,5,8
1+2356
13+56 234
567
145 345 356 367
136 368
357
12+356
689
124
457 125 159
458
January 17, 2020 Data Mining: Concepts and Techniques 15
Efficient Implementation of Apriori in SQL
Hard to get good performance out of pure SQL (SQL-
92) based approaches alone
Make use of object-relational extensions like UDFs,
BLOBs, Table functions etc.
Get orders of magnitude improvement
S. Sarawagi, S. Thomas, and R. Agrawal. Integrating
association rule mining with relational database
systems: Alternatives and implications. In SIGMOD’98
January 17, 2020 Data Mining: Concepts and Techniques 16
Challenges of Frequent Pattern Mining
Challenges
Multiple scans of transaction database
Huge number of candidates
Tedious workload of support counting for candidates
Improving Apriori: general ideas
Reduce passes of transaction database scans
Shrink number of candidates
Facilitate support counting of candidates
January 17, 2020 Data Mining: Concepts and Techniques 17
Partition: Scan Database Only Twice
Any itemset that is potentially frequent in DB must be
frequent in at least one of the partitions of DB
Scan 1: partition database and find local frequent
patterns
Scan 2: consolidate global frequent patterns
A. Savasere, E. Omiecinski, and S. Navathe. An efficient
algorithm for mining association in large databases. In
VLDB’95
January 17, 2020 Data Mining: Concepts and Techniques 18
DHP: Reduce the Number of Candidates
A k-itemset whose corresponding hashing bucket count is
below the threshold cannot be frequent
Candidates: a, b, c, d, e
Hash entries: {ab, ad, ae} {bd, be, de} …
Frequent 1-itemset: a, b, d, e
ab is not a candidate 2-itemset if the sum of count of
{ab, ad, ae} is below support threshold
J. Park, M. Chen, and P. Yu. An effective hash-based
algorithm for mining association rules. In SIGMOD’95
January 17, 2020 Data Mining: Concepts and Techniques 19
Sampling for Frequent Patterns
Select a sample of original database, mine frequent
patterns within sample using Apriori
Scan database once to verify frequent itemsets found in
sample, only borders of closure of frequent patterns are
checked
Example: check abcd instead of ab, ac, …, etc.
Scan database again to find missed frequent patterns
H. Toivonen. Sampling large databases for association
rules. In VLDB’96
January 17, 2020 Data Mining: Concepts and Techniques 20
DIC: Reduce Number of Scans
ABCD
Once both A and D are determined
frequent, the counting of AD begins
ABC ABD ACD BCD Once all length-2 subsets of BCD are
determined frequent, the counting of BCD
begins
AB AC BC AD BD CD
Transactions
1-itemsets
A B C D
Apriori 2-itemsets
…
{}
Itemset lattice 1-itemsets
S. Brin R. Motwani, J. Ullman, 2-items
and S. Tsur. Dynamic itemset DIC 3-items
counting and implication rules for
market basket data. In
SIGMOD’97
January 17, 2020 Data Mining: Concepts and Techniques 21
Bottleneck of Frequent-pattern Mining
Multiple database scans are costly
Mining long patterns needs many passes of
scanning and generates lots of candidates
To find frequent itemset i1i2…i100
# of scans: 100
# of Candidates: (1001) + (1002) + … + (110000) = 2100-
1 = 1.27*1030 !
Bottleneck: candidate-generation-and-test
Can we avoid candidate generation?
January 17, 2020 Data Mining: Concepts and Techniques 22
Mining Frequent Patterns Without
Candidate Generation
Grow long patterns from short ones using local
frequent items
“abc” is a frequent pattern
Get all transactions having “abc”: DB|abc
“d” is a local frequent item in DB|abc abcd is
a frequent pattern
January 17, 2020 Data Mining: Concepts and Techniques 23
Construct FP-tree from a Transaction Database
TID Items bought (ordered) frequent items
100 {f, a, c, d, g, i, m, p} {f, c, a, m, p}
200 {a, b, c, f, l, m, o} {f, c, a, b, m}
300 {b, f, h, j, o, w} {f, b} min_support = 3
400 {b, c, k, s, p} {c, b, p}
500 {a, f, c, e, l, p, m, n} {f, c, a, m, p} {}
Header Table
1. Scan DB once, find
frequent 1-itemset Item frequency head f:4 c:1
(single item pattern) f 4
c 4 c:3 b:1 b:1
2. Sort frequent items in a 3
frequency descending b 3
order, f-list m 3
a:3 p:1
p 3
3. Scan DB again, m:2 b:1
construct FP-tree
F-list=f-c-a-b-m-p p:2 m:1
January 17, 2020 Data Mining: Concepts and Techniques 24
Benefits of the FP-tree Structure
Completeness
Preserve complete information for frequent pattern
mining
Never break a long pattern of any transaction
Compactness
Reduce irrelevant info—infrequent items are gone
Items in frequency descending order: the more
frequently occurring, the more likely to be shared
Never be larger than the original database (not count
node-links and the count field)
For Connect-4 DB, compression ratio could be over 100
January 17, 2020 Data Mining: Concepts and Techniques 25
Partition Patterns and Databases
Frequent patterns can be partitioned into subsets
according to f-list
F-list=f-c-a-b-m-p
Patterns containing p
Patterns having m but no p
…
Patterns having c but no a nor b, m, p
Pattern f
Completeness and non-redundency
January 17, 2020 Data Mining: Concepts and Techniques 26
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
January 17, 2020 Data Mining: Concepts and Techniques 27
From Conditional Pattern-bases to Conditional FP-trees
For each pattern-base
Accumulate the count for each item in the base
Construct the FP-tree for the frequent items of the
pattern base
m-conditional pattern base:
{} fca:2, fcab:1
Header Table
Item frequency head All frequent
f:4 c:1 patterns relate to m
f 4 {}
c 4 c:3 b:1 b:1 m,
a 3 f:3 fm, cm, am,
b 3 a:3 p:1 fcm, fam, cam,
m 3 c:3 fcam
p 3 m:2 b:1
p:2 m:1 a:3
m-conditional FP-tree
January 17, 2020 Data Mining: Concepts and Techniques 28
Recursion: Mining Each Conditional FP-tree
{}
{} Cond. pattern base of “am”: (fc:3) f:3
c:3
f:3
am-conditional FP-tree
c:3 {}
Cond. pattern base of “cm”: (f:3)
a:3 f:3
m-conditional FP-tree
cm-conditional FP-tree
{}
Cond. pattern base of “cam”: (f:3) f:3
cam-conditional FP-tree
January 17, 2020 Data Mining: Concepts and Techniques 29
A Special Case: Single Prefix Path in FP-tree
Suppose a (conditional) FP-tree T has a shared
single prefix-path P
Mining can be decomposed into two parts
{}
Reduction of the single prefix path into one node
a1:n1 Concatenation of the mining results of the two
a2:n2 parts
a3:n3
{} r1
b1:m1 C1:k1 a1:n1
r1 = + b1:m1 C1:k1
a2:n2
C2:k2 C3:k3
a3:n3 C2:k2 C3:k3
January 17, 2020 Data Mining: Concepts and Techniques 30
Mining Frequent Patterns With FP-trees
Idea: Frequent pattern growth
Recursively grow frequent patterns by pattern and
database partition
Method
For each frequent item, construct its conditional
pattern-base, and then its conditional FP-tree
Repeat the process on each newly created conditional
FP-tree
Until the resulting FP-tree is empty, or it contains only
one path—single path will generate all the
combinations of its sub-paths, each of which is a
frequent pattern
January 17, 2020 Data Mining: Concepts and Techniques 31
Scaling FP-growth by DB Projection
FP-tree cannot fit in memory?—DB projection
First partition a database into a set of projected DBs
Then construct and mine FP-tree for each projected DB
Parallel projection vs. Partition projection techniques
Parallel projection is space costly
January 17, 2020 Data Mining: Concepts and Techniques 32
Partition-based Projection
Tran. DB
Parallel projection needs a lot fcamp
of disk space fcabm
fb
Partition projection saves it cbp
fcamp
p-proj DB m-proj DB b-proj DB a-proj DB c-proj DB f-proj DB
fcam fcab f fc f …
cb fca cb … …
fcam fca …
am-proj DB cm-proj DB
fc f …
fc f
fc f
January 17, 2020 Data Mining: Concepts and Techniques 33
FP-Growth vs. Apriori: Scalability With the Support
Threshold
100 Data set T25I20D10K
90 D1 FP-grow th runtime
D1 Apriori runtime
80
70
Run time(sec.)
60
50
40
30
20
10
0
0 0.5 1 1.5 2 2.5 3
Support threshold(%)
January 17, 2020 Data Mining: Concepts and Techniques 34
FP-Growth vs. Tree-Projection: Scalability with
the Support Threshold
Data set T25I20D100K
140
D2 FP-growth
120 D2 TreeProjection
100
Runtime (sec.)
80
60
40
20
0
0 0.5 1 1.5 2
Support threshold (%)
January 17, 2020 Data Mining: Concepts and Techniques 35
Why Is FP-Growth the Winner?
Divide-and-conquer:
decompose both the mining task and DB according to
the frequent patterns obtained so far
leads to focused search of smaller databases
Other factors
no candidate generation, no candidate test
compressed database: FP-tree structure
no repeated scan of entire database
basic ops—counting local freq items and building sub
FP-tree, no pattern search and matching
January 17, 2020 Data Mining: Concepts and Techniques 36
Implications of the Methodology
Mining closed frequent itemsets and max-patterns
CLOSET (DMKD’00)
Mining sequential patterns
FreeSpan (KDD’00), PrefixSpan (ICDE’01)
Constraint-based mining of frequent patterns
Convertible constraints (KDD’00, ICDE’01)
Computing iceberg data cubes with complex measures
H-tree and H-cubing algorithm (SIGMOD’01)
January 17, 2020 Data Mining: Concepts and Techniques 37
MaxMiner: Mining Max-patterns
1st scan: find frequent items Tid Items
A, B, C, D, E 10 A,B,C,D,E
20 B,C,D,E,
2nd scan: find support for 30 A,C,D,F
AB, AC, AD, AE, ABCDE
BC, BD, BE, BCDE
Potential
CD, CE, CDE, DE, max-patterns
Since BCDE is a max-pattern, no need to check BCD, BDE,
CDE in later scan
R. Bayardo. Efficiently mining long patterns from
databases. In SIGMOD’98
January 17, 2020 Data Mining: Concepts and Techniques 38
Mining Frequent Closed Patterns: CLOSET
Flist: list of all frequent items in support ascending order
Flist: d-a-f-e-c Min_sup=2
Divide search space TID Items
10 a, c, d, e, f
Patterns having d 20 a, b, e
30 c, e, f
Patterns having d but no a, etc. 40 a, c, d, f
50 c, e, f
Find frequent closed pattern recursively
Every transaction having d also has cfa cfad is a
frequent closed pattern
J. Pei, J. Han & R. Mao. CLOSET: An Efficient Algorithm for
Mining Frequent Closed Itemsets", DMKD'00.
January 17, 2020 Data Mining: Concepts and Techniques 39
CLOSET+: Mining Closed Itemsets by
Pattern-Growth
Itemset merging: if Y appears in every occurrence of X, then Y
is merged with X
Sub-itemset pruning: if Y כX, and sup(X) = sup(Y), X and all of
X’s descendants in the set enumeration tree can be pruned
Hybrid tree projection
Bottom-up physical tree-projection
Top-down pseudo tree-projection
Item skipping: if a local frequent item has the same support in
several header tables at different levels, one can prune it from
the header table at higher levels
Efficient subset checking
January 17, 2020 Data Mining: Concepts and Techniques 40
CHARM: Mining by Exploring Vertical Data Format
Vertical format: t(AB) = {T11, T25, …}
tid-list: list of trans.-ids containing an itemset
Deriving closed patterns based on vertical intersections
t(X) = t(Y): X and Y always happen together
t(X) t(Y): transaction having X always has Y
Using diffset to accelerate mining
Only keep track of differences of tids
t(X) = {T1, T2, T3}, t(XY) = {T1, T3}
Diffset (XY, X) = {T2}
Eclat/MaxEclat (Zaki et al. @KDD’97), VIPER(P. Shenoy et
al.@SIGMOD’00), CHARM (Zaki & Hsiao@SDM’02)
January 17, 2020 Data Mining: Concepts and Techniques 41
Further Improvements of Mining Methods
AFOPT (Liu, et al. @ KDD’03)
A “push-right” method for mining condensed frequent
pattern (CFP) tree
Carpenter (Pan, et al. @ KDD’03)
Mine data sets with small rows but numerous columns
Construct a row-enumeration tree for efficient mining
January 17, 2020 Data Mining: Concepts and Techniques 42
Visualization of Association Rules: Plane Graph
January 17, 2020 Data Mining: Concepts and Techniques 43
Visualization of Association Rules: Rule Graph
January 17, 2020 Data Mining: Concepts and Techniques 44
Visualization of Association Rules
(SGI/MineSet 3.0)
January 17, 2020 Data Mining: Concepts and Techniques 45
Chapter 5: Mining Frequent Patterns,
Association and Correlations
Basic concepts and a road map
Efficient and scalable frequent itemset mining
methods
Mining various kinds of association rules
From association mining to correlation
analysis
Constraint-based association mining
Summary
January 17, 2020 Data Mining: Concepts and Techniques 46
Mining Various Kinds of Association Rules
Mining multilevel association
Miming multidimensional association
Mining quantitative association
Mining interesting correlation patterns
January 17, 2020 Data Mining: Concepts and Techniques 47
Mining Multiple-Level Association Rules
Items often form hierarchies
Flexible support settings
Items at the lower level are expected to have lower
support
Exploration of shared multi-level mining (Agrawal &
Srikant@VLB’95, Han & Fu@VLDB’95)
uniform support reduced support
Level 1
Milk Level 1
min_sup = 5%
[support = 10%] min_sup = 5%
Level 2 2% Milk Skim Milk Level 2
min_sup = 5% [support = 6%] [support = 4%] min_sup = 3%
January 17, 2020 Data Mining: Concepts and Techniques 48
Multi-level Association: Redundancy Filtering
Some rules may be redundant due to “ancestor”
relationships between items.
Example
milk wheat bread [support = 8%, confidence = 70%]
2% milk wheat bread [support = 2%, confidence = 72%]
We say the first rule is an ancestor of the second rule.
A rule is redundant if its support is close to the “expected”
value, based on the rule’s ancestor.
January 17, 2020 Data Mining: Concepts and Techniques 49
Mining Multi-Dimensional Association
Single-dimensional rules:
buys(X, “milk”) buys(X, “bread”)
Multi-dimensional rules: 2 dimensions or predicates
Inter-dimension assoc. rules (no repeated predicates)
age(X,”19-25”) occupation(X,“student”) buys(X, “coke”)
hybrid-dimension assoc. rules (repeated predicates)
age(X,”19-25”) buys(X, “popcorn”) buys(X, “coke”)
Categorical Attributes: finite number of possible values, no
ordering among values—data cube approach
Quantitative Attributes: numeric, implicit ordering among
values—discretization, clustering, and gradient approaches
January 17, 2020 Data Mining: Concepts and Techniques 50
Mining Quantitative Associations
Techniques can be categorized by how numerical
attributes, such as age or salary are treated
1. Static discretization based on predefined concept
hierarchies (data cube methods)
2. Dynamic discretization based on data distribution
(quantitative rules, e.g., Agrawal & Srikant@SIGMOD96)
3. Clustering: Distance-based association (e.g., Yang &
Miller@SIGMOD97)
one dimensional clustering then association
4. Deviation: (such as Aumann and Lindell@KDD99)
Sex = female => Wage: mean=$7/hr (overall mean = $9)
January 17, 2020 Data Mining: Concepts and Techniques 51
Static Discretization of Quantitative Attributes
Discretized prior to mining using concept hierarchy.
Numeric values are replaced by ranges.
In relational database, finding all frequent k-predicate sets
will require k or k+1 table scans.
Data cube is well suited for mining. ()
The cells of an n-dimensional
(age) (income) (buys)
cuboid correspond to the
predicate sets.
(age, income) (age,buys) (income,buys)
Mining from data cubes
can be much faster.
(age,income,buys)
January 17, 2020 Data Mining: Concepts and Techniques 52
Quantitative Association Rules
Proposed by Lent, Swami and Widom ICDE’97
Numeric attributes are dynamically discretized
Such that the confidence or compactness of the rules
mined is maximized
2-D quantitative association rules: Aquan1 Aquan2 Acat
Cluster adjacent
association rules
to form general
rules using a 2-D grid
Example
age(X,”34-35”) income(X,”30-50K”)
buys(X,”high resolution TV”)
January 17, 2020 Data Mining: Concepts and Techniques 53
Mining Other Interesting Patterns
Flexible support constraints (Wang et al. @ VLDB’02)
Some items (e.g., diamond) may occur rarely but are
valuable
Customized supmin specification and application
Top-K closed frequent patterns (Han, et al. @ ICDM’02)
Hard to specify supmin, but top-k with lengthmin is more
desirable
Dynamically raise supmin in FP-tree construction and
mining, and select most promising path to mine
January 17, 2020 Data Mining: Concepts and Techniques 54
Chapter 5: Mining Frequent Patterns,
Association and Correlations
Basic concepts and a road map
Efficient and scalable frequent itemset mining
methods
Mining various kinds of association rules
From association mining to correlation analysis
Constraint-based association mining
Summary
January 17, 2020 Data Mining: Concepts and Techniques 55
Interestingness Measure: Correlations (Lift)
play basketball eat cereal [40%, 66.7%] is misleading
The overall % of students eating cereal is 75% > 66.7%.
play basketball not eat cereal [20%, 33.3%] is more accurate,
although with lower support and confidence
Measure of dependent/correlated events: lift
Basketball Not basketball Sum (row)
P( A B) Cereal 2000 1750 3750
lift Not cereal 1000 250 1250
P( A) P( B)
Sum(col.) 3000 2000 5000
2000 / 5000 1000 / 5000
lift ( B, C ) 0.89 lift ( B, C ) 1.33
3000 / 5000 * 3750 / 5000 3000 / 5000 *1250 / 5000
January 17, 2020 Data Mining: Concepts and Techniques 56
Are lift and 2 Good Measures of Correlation?
“Buy walnuts buy milk [1%, 80%]” is misleading
if 85% of customers buy milk
Support and confidence are not good to represent correlations
So many interestingness measures? (Tan, Kumar, Sritastava @KDD’02)
P( A B)
lift
P( A) P( B) Milk No Milk Sum (row)
Coffee m, c ~m, c c
sup( X ) No Coffee m, ~c ~m, ~c ~c
all _ conf
max_ item _ sup( X ) Sum(col.) m ~m
DB m, c ~m, c m~c ~m~c lift all-conf coh 2
sup( X ) A1 1000 100 100 10,000 9.26 0.91 0.83 9055
coh A2 100 1000 1000 100,000 8.44 0.09 0.05 670
| universe( X ) |
A3 1000 100 10000 100,000 9.18 0.09 0.09 8172
A4 1000 1000 1000 1000 1 0.5 0.33 0
January 17, 2020 Data Mining: Concepts and Techniques 57
Which Measures Should Be Used?
lift and 2 are not
good measures for
correlations in large
transactional DBs
all-conf or
coherence could be
good measures
(Omiecinski@TKDE’03)
Both all-conf and
coherence have the
downward closure
property
Efficient algorithms
can be derived for
mining (Lee et al.
@ICDM’03sub)
January 17, 2020 Data Mining: Concepts and Techniques 58
Chapter 5: Mining Frequent Patterns,
Association and Correlations
Basic concepts and a road map
Efficient and scalable frequent itemset mining
methods
Mining various kinds of association rules
From association mining to correlation analysis
Constraint-based association mining
Summary
January 17, 2020 Data Mining: Concepts and Techniques 59
Constraint-based (Query-Directed) Mining
Finding all the patterns in a database autonomously? —
unrealistic!
The patterns could be too many but not focused!
Data mining should be an interactive process
User directs what to be mined using a data mining
query language (or a graphical user interface)
Constraint-based mining
User flexibility: provides constraints on what to be
mined
System optimization: explores such constraints for
efficient mining—constraint-based mining
January 17, 2020 Data Mining: Concepts and Techniques 60
Constraints in Data Mining
Knowledge type constraint:
classification, association, etc.
Data constraint — using SQL-like queries
find product pairs sold together in stores in Chicago in
Dec.’02
Dimension/level constraint
in relevance to region, price, brand, customer category
Rule (or pattern) constraint
small sales (price < $10) triggers big sales (sum >
$200)
Interestingness constraint
strong rules: min_support 3%, min_confidence
60%
January 17, 2020 Data Mining: Concepts and Techniques 61
Constrained Mining vs. Constraint-Based Search
Constrained mining vs. constraint-based search/reasoning
Both are aimed at reducing search space
Finding all patterns satisfying constraints vs. finding
some (or one) answer in constraint-based search in AI
Constraint-pushing vs. heuristic search
It is an interesting research problem on how to integrate
them
Constrained mining vs. query processing in DBMS
Database query processing requires to find all
Constrained pattern mining shares a similar philosophy
as pushing selections deeply in query processing
January 17, 2020 Data Mining: Concepts and Techniques 62
Anti-Monotonicity in Constraint Pushing
TDB (min_sup=2)
Anti-monotonicity TID Transaction
When an intemset S violates the 10 a, b, c, d, f
constraint, so does any of its superset 20 b, c, d, f, g, h
30 a, c, d, e, f
sum(S.Price) v is anti-monotone 40 c, e, f, g
sum(S.Price) v is not anti-monotone Item Profit
Example. C: range(S.profit) 15 is anti- a 40
monotone b 0
c -20
Itemset ab violates C d 10
So does every superset of ab e -30
f 30
g 20
h -10
January 17, 2020 Data Mining: Concepts and Techniques 63
Monotonicity for Constraint Pushing
TDB (min_sup=2)
TID Transaction
Monotonicity
10 a, b, c, d, f
When an intemset S satisfies the 20 b, c, d, f, g, h
constraint, so does any of its 30 a, c, d, e, f
40 c, e, f, g
superset
sum(S.Price) v is monotone Item Profit
a 40
min(S.Price) v is monotone b 0
Example. C: range(S.profit) 15 c -20
d 10
Itemset ab satisfies C e -30
So does every superset of ab f 30
g 20
h -10
January 17, 2020 Data Mining: Concepts and Techniques 64
Succinctness
Succinctness:
Given A1, the set of items satisfying a succinctness
constraint C, then any set S satisfying C is based on
A1 , i.e., S contains a subset belonging to A1
Idea: Without looking at the transaction database,
whether an itemset S satisfies constraint C can be
determined based on the selection of items
min(S.Price) v is succinct
sum(S.Price) v is not succinct
Optimization: If C is succinct, C is pre-counting pushable
January 17, 2020 Data Mining: Concepts and Techniques 65
The Apriori Algorithm — Example
Database D itemset sup.
L1 itemset sup.
TID Items C1 {1} 2 {1} 2
100 134 {2} 3 {2} 3
200 235 Scan D {3} 3 {3} 3
300 1235 {4} 1 {5} 3
400 25 {5} 3
C2 itemset sup C2 itemset
L2 itemset sup {1 2} 1 Scan D {1 2}
{1 3} 2 {1 3} 2 {1 3}
{2 3} 2 {1 5} 1 {1 5}
{2 3} 2 {2 3}
{2 5} 3
{2 5} 3 {2 5}
{3 5} 2
{3 5} 2 {3 5}
C3 itemset Scan D L3 itemset sup
{2 3 5} {2 3 5} 2
January 17, 2020 Data Mining: Concepts and Techniques 66
Naïve Algorithm: Apriori + Constraint
Database D itemset sup.
L1 itemset sup.
TID Items C1 {1} 2 {1} 2
100 134 {2} 3 {2} 3
200 235 Scan D {3} 3 {3} 3
300 1235 {4} 1 {5} 3
400 25 {5} 3
C2 itemset sup C2 itemset
L2 itemset sup {1 2} 1 Scan D {1 2}
{1 3} 2 {1 3} 2 {1 3}
{2 3} 2 {1 5} 1 {1 5}
{2 3} 2 {2 3}
{2 5} 3
{2 5} 3 {2 5}
{3 5} 2
{3 5} 2 {3 5}
C3 itemset Scan D L3 itemset sup Constraint:
{2 3 5} {2 3 5} 2 Sum{S.price} < 5
January 17, 2020 Data Mining: Concepts and Techniques 67
The Constrained Apriori Algorithm: Push
an Anti-monotone Constraint Deep
Database D itemset sup.
L1 itemset sup.
TID Items C1 {1} 2 {1} 2
100 134 {2} 3 {2} 3
200 235 Scan D {3} 3 {3} 3
300 1235 {4} 1 {5} 3
400 25 {5} 3
C2 itemset sup C2 itemset
L2 itemset sup {1 2} 1 Scan D {1 2}
{1 3} 2 {1 3} 2 {1 3}
{2 3} 2 {1 5} 1 {1 5}
{2 3} 2 {2 3}
{2 5} 3
{2 5} 3 {2 5}
{3 5} 2
{3 5} 2 {3 5}
C3 itemset Scan D L3 itemset sup Constraint:
{2 3 5} {2 3 5} 2 Sum{S.price} < 5
January 17, 2020 Data Mining: Concepts and Techniques 68
The Constrained Apriori Algorithm: Push a
Succinct Constraint Deep
Database D itemset sup.
L1 itemset sup.
TID Items C1 {1} 2 {1} 2
100 134 {2} 3 {2} 3
200 235 Scan D {3} 3 {3} 3
300 1235 {4} 1 {5} 3
400 25 {5} 3
C2 itemset sup C2 itemset
L2 itemset sup {1 2} 1 Scan D {1 2}
{1 3} 2 {1 3} 2 {1 3}
not immediately
{1 5} 1 {1 5} to be used
{2 3} 2
{2 3} 2 {2 3}
{2 5} 3
{2 5} 3 {2 5}
{3 5} 2 {3 5}
{3 5} 2
C3 itemset Scan D L3 itemset sup Constraint:
{2 3 5} {2 3 5} 2 min{S.price } <= 1
January 17, 2020 Data Mining: Concepts and Techniques 69
Converting “Tough” Constraints
TDB (min_sup=2)
TID Transaction
Convert tough constraints into anti-
10 a, b, c, d, f
monotone or monotone by properly
20 b, c, d, f, g, h
ordering items
30 a, c, d, e, f
Examine C: avg(S.profit) 25 40 c, e, f, g
Order items in value-descending Item Profit
order a 40
b 0
<a, f, g, d, b, h, c, e>
c -20
If an itemset afb violates C d 10
e -30
So does afbh, afb* f 30
It becomes anti-monotone! g 20
h -10
January 17, 2020 Data Mining: Concepts and Techniques 70
Strongly Convertible Constraints
avg(X) 25 is convertible anti-monotone w.r.t.
item value descending order R: <a, f, g, d, b,
h, c, e> Item Profit
If an itemset af violates a constraint C, so a 40
does every itemset with af as prefix, such as b 0
afd c -20
avg(X) 25 is convertible monotone w.r.t. item d 10
value ascending order R-1: <e, c, h, b, d, g, f, e -30
a> f 30
If an itemset d satisfies a constraint C, so g 20
does itemsets df and dfa, which having d as h -10
a prefix
Thus, avg(X) 25 is strongly convertible
January 17, 2020 Data Mining: Concepts and Techniques 71
Can Apriori Handle Convertible Constraint?
A convertible, not monotone nor anti-monotone
nor succinct constraint cannot be pushed deep
into the an Apriori mining algorithm
Within the level wise framework, no direct
Item Value
pruning based on the constraint can be made a 40
Itemset df violates constraint C: avg(X)>=25 b 0
c -20
Since adf satisfies C, Apriori needs df to
d 10
assemble adf, df cannot be pruned
e -30
But it can be pushed into frequent-pattern f 30
growth framework! g 20
h -10
January 17, 2020 Data Mining: Concepts and Techniques 72
Mining With Convertible Constraints
Item Value
C: avg(X) >= 25, min_sup=2 a 40
f 30
List items in every transaction in value descending
g 20
order R: <a, f, g, d, b, h, c, e>
d 10
C is convertible anti-monotone w.r.t. R b 0
Scan TDB once h -10
c -20
remove infrequent items
e -30
Item h is dropped
Itemsets a and f are good, …
TDB (min_sup=2)
Projection-based mining
TID Transaction
Imposing an appropriate order on item projection 10 a, f, d, b, c
Many tough constraints can be converted into 20 f, g, d, b, c
(anti)-monotone 30 a, f, d, c, e
40 f, g, h, c, e
January 17, 2020 Data Mining: Concepts and Techniques 73
Handling Multiple Constraints
Different constraints may require different or even
conflicting item-ordering
If there exists an order R s.t. both C1 and C2 are
convertible w.r.t. R, then there is no conflict between
the two convertible constraints
If there exists conflict on order of items
Try to satisfy one constraint first
Then using the order for the other constraint to
mine frequent itemsets in the corresponding
projected database
January 17, 2020 Data Mining: Concepts and Techniques 74
What Constraints Are Convertible?
Convertible anti- Convertible Strongly
Constraint monotone monotone convertible
avg(S) , v Yes Yes Yes
median(S) , v Yes Yes Yes
sum(S) v (items could be of any value,
Yes No No
v 0)
sum(S) v (items could be of any value,
No Yes No
v 0)
sum(S) v (items could be of any value,
No Yes No
v 0)
sum(S) v (items could be of any value,
Yes No No
v 0)
……
January 17, 2020 Data Mining: Concepts and Techniques 75
Constraint-Based Mining—A General Picture
Constraint Antimonotone Monotone Succinct
vS no yes yes
SV no yes yes
SV yes no yes
min(S) v no yes yes
min(S) v yes no yes
max(S) v yes no yes
max(S) v no yes yes
count(S) v yes no weakly
count(S) v no yes weakly
sum(S) v ( a S, a 0 ) yes no no
sum(S) v ( a S, a 0 ) no yes no
range(S) v yes no no
range(S) v no yes no
avg(S) v, { , , } convertible convertible no
support(S) yes no no
support(S) no yes no
January 17, 2020 Data Mining: Concepts and Techniques 76
A Classification of Constraints
Monotone
Antimonotone
Strongly
convertible
Succinct
Convertible Convertible
anti-monotone monotone
Inconvertible
January 17, 2020 Data Mining: Concepts and Techniques 77
Chapter 5: Mining Frequent Patterns,
Association and Correlations
Basic concepts and a road map
Efficient and scalable frequent itemset mining
methods
Mining various kinds of association rules
From association mining to correlation analysis
Constraint-based association mining
Summary
January 17, 2020 Data Mining: Concepts and Techniques 78
Frequent-Pattern Mining: Summary
Frequent pattern mining—an important task in data mining
Scalable frequent pattern mining methods
Apriori (Candidate generation & test)
Projection-based (FPgrowth, CLOSET+, ...)
Vertical format approach (CHARM, ...)
Mining a variety of rules and interesting patterns
Constraint-based mining
Mining sequential and structured patterns
Extensions and applications
January 17, 2020 Data Mining: Concepts and Techniques 79
Frequent-Pattern Mining: Research Problems
Mining fault-tolerant frequent, sequential and structured
patterns
Patterns allows limited faults (insertion, deletion,
mutation)
Mining truly interesting patterns
Surprising, novel, concise, …
Application exploration
E.g., DNA sequence analysis and bio-pattern
classification
“Invisible” data mining
January 17, 2020 Data Mining: Concepts and Techniques 80