LCM ver. 2: Efficient Mining Algorithms forFrequent/Closed/Maximal Itemsets
Takeaki Uno1 , Masashi Kiyomi1 , Hiroki Arimura2
1
National Institute of Informatics 2-1-2 Hitotsubashi, Chiyoda-ku, Tokyo, 101-8430, Japane-mail: uno@nii.jp, masashi@grad.nii.ac.jp
2
Information Science and Technology, Hokkaido University
Kita 14-jo Nishi 9-chome, 060-0814 Sapporo, JAPAN, e-mail: arim@ist.hokudai.ac.jp
Abstract: For a transaction database, a frequent
itemset is an itemset included in at least a specified
number of transactions. A frequent itemset P
is maximal if P is included in no other frequent
itemset, and closed if P is included in no otheritemset included in the exactly same transactionsas P .
The problems of finding these frequent
itemsets are fundamental in data mining, andfrom the applications, fast implementations forsolving the problems are needed. In this paper,
we propose efficient algorithms LCM (Linear time
Closed itemset Miner), LCMfreq and LCMmax
for these problems. We show the efficiency of ouralgorithms by computational experiments comparedwith existing algorithms.

1

a ppc extension needs no previously obtained closed
itemset. Hence, the memory use of LCM does notdepend on the number of frequent closed itemsets,even if there are many frequent closed itemsets.
The time complexity of LCM is theoreticallybounded by a linear function in the number of frequent closed itemsets, while the existing algorithms
are not. We further developed algorithms for thefrequency counting, occurrence deliver and hybrid ofdiffsets. They reduce the practical computation time
efficiently. Moreover, the framework of LCM is simple. Generating ppc extensions needs no sophisticated data structure such as binary trees. LCM is
implemented with only arrays. Therefore, LCM isfast, and outperforms than other algorithms for somesparse datasets.
However, LCM does not have any routine for reducing the database, while many existing algorithms
have. Thus, the performance of LCM is not good for
dense datasets with large minimum supports, which
involve many unnecessary items and transactions.
At FIMI03, we also proposed modifications of LCM,
LCMfreq and LCMmax, for enumerating all frequent
itemsets and maximal frequent itemsets. Although
they are fast for some instances, if LCM is not fast
for an instance, they are also not fast for the instance.
Existing maximal frequent itemset mining algorithms
have efficient pruning methods to reduce the numberof iterations, while LCMmax does not have. It is alsoa reason of the slowness of LCMmax.
This paper proposes the second version of LCM
algorithms. We added database reduction to LCM,
so that problems of dense datasets can be solved in
short time. The second version of LCMmax includes
a pruning method, thus the computation time is reduced when the number of maximal frequent itemsets
is small. We further developed new algorithms forchecking the maximality of a frequent itemset andIntroduction

Frequent item set mining is one of the fundamental
problems in data mining and has many applications
such as association rule mining, inductive databases,and query expansion. From these applications, fast
implementations of frequent itemset mining problems
are needed. In this paper, we propose the second
versions of LCM, LCMfreq and LCMmax, for enumerating closed, all and maximal frequent itemsets.
LCM is an abbreviation of Linear time Closed item
set Miner .
In FIMI03[7], we proposed the first version of
LCM, which is for enumerating frequent closed itemsets. LCM uses prefix preserving closure extension(ppc extension in short), which is an extension froma closed itemset to another closed itemset. The extension induces a search tree on the set of frequent
closed itemsets, thereby we can completely enumerate closed itemsets without duplications. Generating1

for taking the closure of an itemset. We compare
the performance of LCM algorithms and other algorithms submitted to FIMI03 by computational experiments. In many instances, LCM algorithms performabove other algorithms.
The organization of the paper is as follows. Section 2 introduces preliminaries. The main algorithms
and practical techniques of LCM algorithms are described in Section 3. Section 4 shows the results ofcomputational experiments, and Section 5 concludes
the paper.

2

f rq(Q) < f rq(P ). We call the item with the maximum index in P the tail of P , and denote by tail(P ).

3

Algorithms for Efficient Enumeration

In this section, we explain the techniques used in thesecond versions of LCM algorithms. We explain themone-by-one with comparing to the techniques usedby the other algorithms, in the following subsections.
The new techniques used in the second version are:Preliminaries

3.2. new database reduction (reduce the frequency
counting cost)
3.6. database reduction for fast checking closedness
3.8. database reduction for fast checking maximality
3.7. new pruning algorithm for backtracking-based
maximal frequent itemset mining.

Let I = {1, ..., n} be the set of items. A transaction
database on I is a set T = {t1 , . . . , tm } such that eachti is included in I. Each ti is called a transaction. We
denote by ||T || the sum of sizes of all transactions in
T , that is, the size of database T . A set P ⊆ I iscalled an itemset.
For itemset P , a transaction including P is called
an occurrence of P . The denotation of P , denotedby T (P ) is the set of the occurrences of P . |T (P )| iscalled the frequency of P, and denoted by f rq(P ). For
given constant θ, called a minimum support, itemset
P is frequent if f rq(P ) ≥ θ. If a frequent itemset P
is included in no other frequent itemset, P is called
maximal. For any itemsets P and Q, T (P ∪ Q) =T (P )∩T (Q) holds, and if P ⊆ Q then T (Q) ⊆ T (P ).
An itemset P is called closed if no other itemset Q
satisfies T (P ) = T (Q), P ⊆ Q.
Given set S ⊆ T of transactions, let I(S) be the setof
T items common to all transactions in S, i.e., I(S) =itemset P
T ∈S T . Then, we define the closure of T
in T , denoted by clo(P ), by I(T (P ))(= t∈T (P ) t).
For every pair of itemsets P and Q, the following
properties hold[13, 14].

The techniques also used in the first versions are:3.4. occurrence deliver (compute frequency inlinear time)
3.5. ppc extension (generates closed itemsets withneither memory nor duplication)
3.3. hypercube decomposition (fast enumeration bygrouping frequent itemsets by equivalence class).
The techniques used in the existing algorithms andthe first version have citations to the previous papers.

3.1

Enumerating Frequent Itemsets

Any itemset included in a frequent itemset is itself frequent. Thereby, the property “frequent” ismonotone. From this, we can construct any frequent
itemset from the empty set by adding items one-byone without passing through any infrequent itemset.
Roughly speaking, the existing algorithms are classified into two groups, and algorithms in both groups
use this property.
The first group is so called apriori or level-by-level
algorithms [1, 2]. Let Dk be the set of frequent itemsets of size k. Apriori algorithms start with D0 , thatis {∅}, and compute Dk from Dk−1 in the increasingorder of k from k = 1. Any itemset in Dk is obtained
from an itemset of Dk−1 by adding an item. Apriorialgorithms add every item to each itemset of Dk−1 ,and choose frequent itemsets among them. If Dk = ∅holds for some k, then Dk0 = ∅ holds for any k 0 > k.
Thus, apriori algorithms stop at such k. This is thescheme of apriori algorithms.

(1) If P ⊆ Q, then clo(P ) ⊆ clo(Q).
(2) If T (P ) = T (Q), then clo(P ) = clo(Q).
(3) clo(clo(P )) = clo(P ).
(4) clo(P ) is the unique smallest closed itemset
including P .
(5) A itemset P is a closed itemset if and only
if clo(P ) = P .
For itemset P and item i ∈ P , let P (i) = P ∩{1, . . . , i} be the subset of P consisting only of elements no greater than i, called the i-prefix of P .
An itemset Q is a closure extension of an itemset
P if Q = clo(P ∪ {i}) holds for some i 6∈ P . If
Q is a closure extension of P , then Q ⊃ P, and2

The other group is so called backtracking
algorithms[3, 18, 19]. Backtracking algorithm isbased on recursive calls. An iteration of a backtracking algorithm inputs a frequent itemset P , and generates itemsets by adding every items to P . Then, foreach itemset being frequent among them, the iteration generates recursive calls with respect to it. To
avoid duplications, an iteration of backtracking algorithms adds items with indices larger than the tailof P . We describe the framework of backtracking
algorithms as follows.
ALGORITHM BackTracking (P :current solution)
1. Output P
2. For each e ∈ I, e > tail(P ) do
3.
If P ∪ {e} is frequent thencall BackTracking (P ∪ {e})An execution of backtracking algorithms gives atree structure such that the vertices of the tree areiterations, and edges connect two iterations if one of
the iteration calls the other. If an iteration I recursively calls another iteration I 0 , then we say that I
is the parent of I 0 , and I 0 is a child of I. For an iteration, the itemset received from the parent is called
the current solution.
Apriori algorithms use much memory for storing
Dk in memory, while backtracking algorithms use
less memory since they keep only the current solution. Backtracking algorithms need no computation
for maintaining previously obtained itemsets, so thecomputation time of backtracking algorithms is generally short. However, apriori algorithms have advantages for the frequency counting.
LCM algorithms are based on backtracking algorithms, and use an efficient techniques for thefrequency counting, which are occurrence deliver
and anytime database reduction described below.
Hence, LCM algorithms compute the frequency efficiently without keeping previously obtained itemsets
in memory.

3.2

Maintaining Databases

In the existing studies, database reduction is said tobe important to reduce the computation time. It is
to reduce the input database as the following rules:
1. remove each item included in less than θ transactions
2. remove each item included in all transactions
3. merge the identical transactions into one.
3

Database reduction performs well when the minimum support is large, and many existing algorithms
use it. LCM algorithms also use database reduction.
In the existing studies, the input databases areoften stored and maintained by using FP-tree (frequent pattern tree), which is a version of prefix tree
(trie) [9]. By using FP-tree, we can search specified
transactions from the datasets efficiently. FP-treecompresses the common prefix, so we can decrease
the memory use. In addition, FP-tree can detect theidentical transactions, thus we can merge them into
one. This merge accelerates the frequency counting.
From these reasons, FP-trees are used in many algorithms and implementations.
Although FP-tree has many good advantages, we
do not use it in the implementation of LCM, but use
simple arrays. The main reason is that LCM does
not have to search transactions in the database. The
main operation of LCM is tracing the transactions in
the the denotation of the current solution. Thus, we
do not need to use sophisticated data structures forsearching.
The other reason is the computation time for the
initialization. If we use a standard binary tree for
implementing FP-tree, the initialization of the input database takes O(||T || + |T | log |T |) time. forconstructing FP-tree in memory. Compared to this,LCM detects the identical transactions and storesthe database in memory within linear time of thedatabase size. This is because that LCM uses radix
sort for this task, which sorts the transactions in a
lexicographic order in linear time. In general, thedatasets of data mining problems have many transactions, and each transaction has few items. Thus,||T || is usually smaller than |T | log |T |, and LCM hasan advantage. The constant factors of the computation time of binary tree operations are relatively
larger than that of array operations. LCM also hasan advantage at this point. Again, we recall that
LCM never search the transactions, so each operation required by LCM can be done in constant time.
FP-tree has an advantage in reducing the memoryuse. This memory reduction can also reduce thecomputation time of the frequency counting. To
check the efficiency of the reduction, we checked
the reduction ratio by FP-tree for some datasets
examined in FIMI03. The result is shown in Table
1. Each cell shows the ratio of the number of items
needed to be stored by arrays and FP-tree. Usually,
the input database is reduced in each iteration,
hence we sum up the numbers over all iterations tocompute the ratio. In the results of our experiments,

the ratio was not greater 3 in many instances. If|I| is small, |T | is large, and the dataset has arandomness, such as accidents, the ratio was up to 6.
Generally, a binary tree uses memory three times asmuch as an array. Thus, the performance of FP-tree
seems to be not quite good rather than an array inboth memory use and computation time, for many
datasets.

3.3

generated itemset. To reduce the computation time,
existing algorithms uses down project. For an itemset
P , down project computes its denotation T (P ) by using two subsets P1 and P2 of P . If P = P1 ∪ P2 , thenT (P ) = T (P1 )∩T (P2 ). Under the condition that theitems of P1 and P2 are sorted by their indices, the intersection can be computed in O(|T (P1 )| + |T (P2 )|)time. Down project uses this property, and computes
the denotations quickly. Moreover, if |T (P1 )| < θ or
|T (P2 )| < θ holds, we can see that P never be frequent. It also helps to reduce the computation time.
Apriori-type algorithms accelerates the frequency
counting by finding a good pair P1 and P2 of subsetsof P , such that |T (P1 )| + |T (P2 )| is small, or either
P1 or P2 is infrequent. Backtracking algorithm adds
an item e to the current solution P in each iteration, and compute its denotation. By using T ({e}),the computation
P time for the frequency counting is
reduced to O( e>tail(P ) (|T (P )| + |T ({e})|)).
The bitmap method[5] is a technique for speeding up the computation of taking the intersection in
down project. It uses a bitmap image (the characteristic vector) of the denotations. To take the intersection, we have to take O(|T |) time with bitmap.
However, a 32bit CPU can take the intersection of
32bits at once, thus roughly speaking the computation time is reduced to 1/32. This method has a
disadvantage for sparse datasets, and is not orthogonal to anytime database reduction described in the
below. From the results of the experiments in FIMI
03, bitmap method seems to be not good for sparse
large datasets.
LCM algorithms use another method for the frequency counting, called occurrence deliver[18, 19].
Occurrence deliver computes the denotations of P ∪{e} for e = tail(P ) + 1, ..., |I| at once by tracing
transactions in T (P ). It use a bucket for each e tobe added, and set them to empty set at the beginning. Then, for each transaction t ∈ T (P ), occurrence deliver inserts t to the bucket of e for eache ∈ t, e > tail(P ). After these insertions, the bucketof e is equal to T (P ∪ {e}). For each transaction t,
occurrence deliver takes O(|t ∩ {tail(P )P+ 1, ..., |I|}|)
time. Thus, the computation time is O( T ∈T (P ) |T ∩P
{tail(P )+1, ..., |I|}|) =O(|T (P )|+ e>tail(P ) |T (P ∪{e})|). This time complexity is smaller than down
project. We describe the pseudo code of occurrencedeliver in the following.

Hypercube Decomposition

LCM finds a number of frequent itemsets at once for
reducing the computation time[18]. Since the itemsets obtained at once compose a hypercube in theitemset lattice, we call the technique hypercube decomposition. For a frequent itemset P , let H(P )be the set of items e satisfying e > tail(P ) andT (P ) = T (P ∪ {e}). Then, for any Q ⊆ H(P ),T (P ∪ Q) = T (P ) holds, and P ∪ Q is frequent.
LCMfreq uses this property. For two itemsets P andP ∪ Q, we say that P 0 is between P and P ∪ Q if
P ⊆ P 0 ⊆ P ∪ Q. In the iteration with respect to
P , we output all P 0 between P and P ∪ H(P ). This
saves about 2|H(P )| times of the frequency counting.
To avoid duplications, we do not generate recursive calls with respect to items included in H(P ).
Instead of generating these recursive calls, we output
frequent itemsets including items of H(P ) in recursive calls with respect to items not included in H(P ).
When the algorithm generates a recursive call withrespect to e 6∈ H(P ), we pass H(P ) to it. In the recursive call, we output all itemsets between P ∪ {e}and P ∪ {e} ∪ H(P ) ∪ H(P ∪ {e}). Since any itemset
Q satisfies T (P ∪ Q ∪ H(P )) = T (P ∪ Q), the itemsets output in the recursive calls are frequent. We
describe hypercube decomposition as follows.
ALGORITHM HypercubeDecomposition(P :current solution, S:itemset)
S 0 := S ∪ H(P )Output all itemsets including P
and included in P ∪ S 0
For each item e ∈ I \ (P ∪ S 0 ), e > tail(P ) do
If P ∪ {e} is frequent thencall HypercubeDecomposition (P ∪ {e}, S 0 )End for

3.4

Frequency Counting

ALGORITHM OccurrenceDeliver(T:database, P :itemset)
1. Set Bucket[e] := ∅ for each item e > tail(P )Generally, the most heavy part of the frequent itemset mining is the frequency counting, which is tocount the number of transactions including a newly4

dataset andminimum support
reduction factor
by FP-tree
reduction factor byHypercube decomposition
reduction factor
by apriori (best)

chess
40%

accidents
30%

BMS-WebView2
0.05%

T40I10D100K
0.1%

2.27

6.01

1.9

1.57

6.25

1

1.21

1

1.11

1.34

1.35

2.85

Table 1: Efficiency test of FP-tree, hypercube decomposition, and apriori: the reduction factor of FP-tree is(sum of # of elements in reduced database by LCM) / ( sum of # of elements in reduced database by FP-tree),over all iterations, the reduction ratio of hypercube decomposition is the
P average number of output frequent
itemsets in an iteration, and the reduction ratio of apriori is (sum of/ (sum ofe>tail(P ) |T (P ∪ {e})|)
P
|T
(P
∪
{e})|),
overalliterations.
e>F (P )2. For each transaction t ∈ T (P ) do
3.
For each item e ∈ t, e > tail(P ) do
4.
Insert t to Bucket[e]5.
End for6. End for7. Output Bucket[e] for all e > tail(P )be merged.
According to this, LCM algorithms recursively reduce the database while the execution of recursive
calls. Before the recursive call, LCM algorithms generate a reduced database according to the above discussion, and pass it to the recursive call. We call thistechnique anytime database reduction.
Anytime database reduction reduces the computation time of the iterations located at the lower
levels of the recursion tree. In the recursion tree,
many iterations are on the lower levels and few
iterations are on the upper levels. Thus, anytime
database reduction is expected to be efficient. In
our experiments, anytime database reduction works
quite well. The following table shows the efficiency
of anytime database reduction. We sum up over all
iterations the sizes of the database received fromthe parent, in both cases with anytime database
reduction and without anytime database reduction.
Each cell shows the sum. The reduction ratio is large
especially if the dataset is dense and the minimum
support is large.

Let F (P ) be the set of items e such that e >tail(P ) and P ∪ {e} is frequent. Apriori algorithms
have possibility to find out in short time that P ∪ {e}is infrequent, thus, in the bestPcase, their computation time can be reduced to O( e∈F (P ) |T (P ∪{e})|).
P
If e>tail(P ),e6∈F (P ) |T (P ∪ {e})| is large, occurrencedeliver will be slow.
P
To decrease e>tail(P ),e6∈F (P ) |T (P ∪ {e})|, LCM
algorithms sort indices of items e in the increasingorder of |T ({e})|.
As we can see in Table 1, thisP
sort reduces e>tail(P ),e6∈F (P ) |T (P ∪ {e})| to 1/4 ofP
e>tail(P ) |T (P ∪ {e})| in many cases. Since apriorialgorithms take much time to maintain previously
obtained itemsets, the possibility of speeding up by
apriori algorithms is not so large.
LCM algorithms further speeds up the frequency
counting by iteratively reducing the database. Suppose that an iteration I of a backtracking algorithm
receives a frequent itemset P from its parent. Then,in any descendant iteration of I, no item of indicessmaller than tail(P ) is added. Hence, any such item
can be removed from the database while the execution of the descendant iterations. Similarly, thetransactions not including P never include the current solution of any descendant iteration, thus suchtransactions can be removed while the execution of
the descendant iterations. Indeed, infrequent items
can be removed, and the identical transactions can

3.5

Prefix Preserving Closure Extension

Many existing algorithms for mining closed itemsets
are based on frequent itemset mining. That is, thealgorithms enumerate frequent itemsets, and output
those being closed. This approach is efficient when
the number of frequent itemsets and the number of
frequent closed itemsets differ not so much. However, if the difference between them is large, the algorithms generate many non-closed frequent itemsets,
5

dataset andminimum support
Database reduction
Anytime database reduction
Reduction factor

connect
50%
188319235
538931
349.4

pumsb
60%
2125460007
7777187
273.2

BMS-WebView2
0.1%
2280260
521576
4.3

T40I10D100K
0.03%
1704927639
77371534
22.0

Table 2: Accumulated number of transactions in database in all iterations
thus they will be not efficient. Many pruning methods have been developed for speeding up, however
they are not complete. Thus, the computation time
is not bounded by a linear function in the number of
frequent closed itemsets. There is a possibility of overlinear increase of computation time in the number of
output.
LCM uses prefix preserving closure extension (ppcextension in short) for generating closed itemsets[18,19]. For a closed itemset P , we define the closure
tail clo tail(P ) by the item i of the minimum index
satisfying clo(P (i)) = P . clo tail(P ) is always included in P . We say that P 0 is a ppc extension of P
if P 0 = clo(P ∪ {e}) and P 0 (e − 1) = P (e − 1) hold for
an item e > clo tail(P ). Let P0 be the itemset satisfying T (P 0 ) = T . Any closed itemset P 0 6= P0 is a
ppc extension of another closed itemset P , and such
P is unique for P 0 . Moreover, the frequency of P isstrictly larger than P 0 , hence ppc extension induces arooted tree on frequent closed itemsets. LCM starts
from P0 , and finds all frequent closed itemsets in a
depth first manner by recursively generating ppc extensions. The proof of ppc extension algorithms aredescribed in [18, 19].
By ppc extension, the time complexity is bounded
by a linear function in the number of frequent closed
itemsets. Hence, the computation time of LCM neverbe super linear in the number of frequent closed itemsets.

3.6

ate the closure of P . By adding to P all items e suchthat f rq(P ) = f rq(P ∪ {e}), we can construct theclosure of P . We call the second closure operation.
LCM uses closure operations for generating ppc extensions. Similar to the frequency counting, we use
database reduction for closure operation. Supposethat the current solution is P , the reduced databaseis composed of transactions S1 , ..., Sh , and each Sl is
obtained from transactions T1l , ..., Tkl of the original
database. For eachTSl , we define the interior intersection In(Sl ) by T ∈{T l ,...,T l } T . Here the closure1kTof P is equal to S∈{S1 ,...,Sh } In(S). Thus, by using
interior intersections, we can efficiently construct theclosure of P .
When we merge transactions to reduce thedatabase, interior intersections can be updated efficiently, by taking the intersection of their interior intersections. In the same way as the frequency counting, we can remove infrequent items from the interior
intersections for more reduction. The computation
time for the closure operation in LCM depends on
the size of database, but not on the number of previously obtained itemsets. Thus, storage method has
advantages if the number of frequent closed itemsets
is small. However, for the instances with a lot of
frequent closed itemsets, which take long time to besolved, LCM has an advantage.

3.7

Closure Operation

Enumerating Maximal Frequent
Itemsets

Many existing algorithms for maximal frequent itemset enumeration are based on the enumeration of frequent itemsets. In breadth-first manner or depthfirst manner, they enumerate frequent itemsets andoutput maximal itemsets among them. To reduce thecomputation time, the algorithms prune the unnecessary itemsets and recursive calls.
Similar to these algorithms, LCMmax enumerates
closed itemsets by backtracking, and outputs maximal itemsets among them. It uses a pruning to cut
off unnecessary branches of the recursion. The pruning is based on a re-ordering of the indices of items,
in each iteration. We explain the re-ordering in the

To enumerate closed itemsets, we have to check
whether the current solution P is a closed itemset
or not. In the existing studies, there are two methods for this task. The first method is to store inmemory previously obtained itemsets which are currently maximal among itemsets having the identicaldenotation. In this method, we find frequent itemsets
one-by-one, and store them in memory with removing itemsets included in another itemset having theidentical denotation. After finding all frequent itemsets, only closed itemsets remain in memory. We callthis storage method. The second method is to gener6

is a heavy task, thus many existing algorithms avoid
it. They store in memory maximal itemsets among
previously obtained frequent itemsets, and updatethem when they find a new itemset. When the algorithms terminate and obtain all frequent itemsets,
only maximal frequent itemsets remain in memory.
We call this storage method. If the number of maximal frequent itemsets is small, storage method isefficient. However, if the number is large, storage
method needs much memory. When a frequent itemset is newly found, storage method checks whether
the itemset is included in some itemsets in the memory or not. If the number of frequent itemsets is large,
the operation takes long time.

following.
Let us consider a backtracking algorithm for enumerating frequent itemsets. Let P be the current solution of an iteration of the algorithm. Suppose thatP 0 is a maximal frequent itemset including P . LCMmax puts new indices to items with indices larger
than tail(P ) so that any item in P 0 has an index
larger than any item not in P 0 . Note that this reordering of indices has no effect to the correctness of
the algorithm.
Let e > tail(P ) be an item in P 0 , and consider therecursive call with respect to P ∪ {e}. Any frequent
itemset P̂ found in the recursive call is included in
P 0 , since every item having an index larger than e
is included in P 0 , and the recursive call adds to P
items only of indices larger than e. From this, we
can see that by the re-ordering of indices, recursive
calls with respect to items in P 0 ∩ H generates nomaximal frequent itemset other than P 0 .
According to this, an iteration of LCMmax chooses
an item e∗ ∈ H, and generates a recursive call withrespect to P ∪ {e∗ } to obtain a maximal frequent
itemset P 0 . Then, re-orders the indices of items otherthan e∗ as the above, and generates recursive callswith respect to each e > tail(P ) not included in P 0 ∪{e∗ }. In this way, we save the computation time forfinding P 0 , and by finding a large itemset, increase
the efficiency of this approach. In the following, we
describe LCMmax.
ALGORITHM LCMmax (P :itemset, H:items tobe added)
1. H 0 := the set of items e in H s.t. P ∪ {e} is frequent
2. If H 0 = ∅ then3.
If P ∪ {e} is infrequent for any e thenoutput P ; return4.
End if
5. End if
6. Choose an item e∗ ∈ H 0 ; H 0 := H 0 \ {e∗ }7. LCMmax (P ∪ {e}, H 0 )8. P 0 := frequent itemset of the maximum size
found in the recursive call in 7
9. For each item e ∈ H \ P 0 do
10.
H 0 := H 0 \ {e}11.
LCMmax (P ∪ {e}, H 0 )12. End for

3.8

Checking Maximality

When LCMmax finds a frequent itemset P , it checks
the current solution is maximal or not. We callthis operation maximality check. Maximality check7

To avoid the disadvantage of storage method,
LCMmax operates maximality check. LCMmax
checks the maximality by finding an item e suchthat P ∪ {e} is frequent. If and only if such e exists, P is not maximal. To operate this efficiently,
we reduce the database. Let us consider an iteration of LCMmax with respect to a frequent itemset
P . LCM algorithms reduce the database by anytime
database reduction for the frequency counting. Suppose that the reduced database is composed of transactions S1 , ..., Sh , and each Sl is obtained by merging transactions T1l , ..., Tkl of the original database.
Let H be the set of items to be added in the iteration. Suppose that we remove all items e from H
such that P ∪ {e} is infrequent. Then, for any l,
T1l ∩ H = T2l ∩ H =, ..., = Tkl ∩ H holds. For an item e
and a transaction Sl , we define the weight w(e, Sl ) by
the number of transactions in P
T1l , ..., Tkl including e.
Here the frequency of P ∪{e} is S∈{S1 ,...,Sh } w(e, S).
Thus, by using the weights, we can efficiently checkthe maximality, in linear time of the size of the reduced database.
When we merge transactions to reduce thedatabase, the weights can be updated easily. For each
item e, we take the sum of w(e, S) over all transactions S to be merged. In the same way as frequency
counting, we can remove infrequent items from thedatabase for maximality checking, for more reduction.
The computation time for maximality check in
LCMmax depends on the size of database, but noton the number of previously obtained itemsets. Thus,
storage method has advantages if the number of maximal frequent itemsets is small, but for the instanceswith a lot of maximal frequent itemsets, which takelong time to be solved, LCMmax has an advantage.

BMS-WebView-2-all
BMS-WebView-2-all
BMS-WebView-2-all

cputime (sec)

100

10
1000
10

afopt_allafopt_allafopt_all afopt_all
fpg_all
fpg_all
fpg_all fpg_all
lcm_alllcm_all lcm_all
mafia_all mafia_all
dci_all dci_all
patriciamine_all100
cputime (sec)

10
1000
10

BMS-WebView-2-closed
BMS-WebView-2-closed
BMS-WebView-2-closed

1
10

1

afopt_closed
afopt_closed
afopt_closed
fpg_closed
fpg_closed
fpg_closed
lcm_closed
lcm_closed
mafia_closed

1
10

1

0.1
10.1
0.11
0.11
0.110.1
0.1
0.10.09
0.09
0.090.08
0.08
0.080.07
0.07
0.070.06
0.06
0.060.05
0.05
0.050.04
0.04
0.04 0.03
0.03
0.03 0.02
0.02 0.01
minsupminsupminsup(%)
(%)
(%)

0.1
10.1
0.11
0.11
0.110.1
0.1
0.10.09
0.09
0.090.08
0.08
0.080.07
0.07
0.070.06
0.06
0.060.05
0.05
0.050.04
0.04
0.04 0.03
0.03
0.03 0.02
0.02 0.01
minsupminsupminsup(%)(%)(%)

BMS-WebView-2-maximal
BMS-WebView-2-maximal
BMS-WebView-2-maximal
10
1000
10

cputime (sec)100

afopt_maximal
afopt_maximal
afopt_maximal
fpg_maximal
fpg_maximal
fpg_maximal
lcm_maximal
lcm_maximal
mafia_maximal

1
10

1

0.1
10.1
0.11
0.11
0.110.1
0.1
0.10.09
0.09
0.090.08
0.08
0.080.07
0.07
0.070.06
0.06
0.060.05
0.05
0.050.04
0.04
0.04 0.03
0.03
0.03 0.02
0.02 0.01
minsupminsupminsup(%)(%)(%)

Figure 1: Results 1

4

Computational Experiments

minutes, or abnormal terminations. The results are
displayed in Figure 1 and 2. In each graph, the horizontal axis is the size of minimum supports, and thevirtical axis is the CPU time written in a log scale.

In this section, we show the results of our computational experiments. We implemented our three algorithms LCM, LCMfreq, and LCMmax. They arecoded by ANSI C, and complied by gcc. The experiments were executed on a notebook PC, with AMD
athron XP 1600+ of 224MB memory. The performance of LCM algorithms are compared with thealgorithms which marked good score on FIMI 03:
fpgrowth[8], afopt[11], MAFIA[5, 6], kDCI[12], and
PATRICIAMINE[16]. We note that kDCI and PATRICIAMINE are only for all frequent itemset mining. To reduce the time for experiments, we stopthe execution when an algorithm takes more than
10 minute. The following figures show the results.
We do not plot if the computation time is over 10

From the performances of implementations, the instances were classified into three groups, in which theresults are similar. Due to the space limitation, weshow one instance as a representative for each group.
The first group is composed of BMS-WebView1,
BMS-WebView2, BMS-POS, T10I4D100K, kosarak,and retail. These datasets have many items andtransactions but are sparse. We call these datasets
sparse datasets. We chosen BMS-WebView2 as therepresentative.
The second group is composed of datasets taken
8chess-allchess-all10
10chess-closed
1000

afopt_allafopt_all afopt_all
fpg_all
fpg_all fpg_all
lcm_all lcm_all
mafia_all mafia_all
dci_all dci_all
patriciamine_all

1
1
0.1

0.1
0.01
90
90

afopt_closed
fpg_closed
lcm_closed
mafia_closed

100
cputime (sec)cputime (sec)

100
100

10

1

80
80

70
70

60
60
50
50
minsupminsup(%)
(%)

40
40

30

0.1

20

90

80
80

7070

chess-maximal
afopt_maximal
fpg_maximal
lcm_maximal
mafia_maximal

10

1

0.1

90

80

70

60
50
minsup (%)

40

30

100

80
80

70
70

10

70
70

6060 50 50 40 4030
minsupminsup(%)
(%)

60
60 50
50
40
40
minsupminsup(%)
(%)

10

30

20

10

accidents-maximal

afopt_closed
afopt_closed
fpg_closed
fpg_closed
lcm_closed
mafia_closed

80
80

20

10

1000

10

11
90
90

30
30

10

11
90
90

20

cputime (sec)cputime (sec)

100

30
20

afopt_allafopt_all afopt_all
fpg_all
fpg_all fpg_all
lcm_all lcm_all
mafia_all mafia_all
dci_all dci_all
patriciamine_all

accidents-closed
accidents-closed
100
1000

40
30

accidents-all
accidents-all
100
1000

cputime (sec)cputime (sec)100

60 60 50 5040
minsup (%)

30
20

100

10

1

20
10

Figure 2: Results 2

9afopt_maximal
fpg_maximal
lcm_maximal
mafia_maximal

90

80

70

60
50
40
minsup (%)

5from UCI-Machine Learning Repository1 , connect,
chess, mushrooms, pumsb, and pumsb-star. These
datasets have many transactions but few items. We
call these datasets middle density datasets. As a representative, we show the result of chess.
The third group is accidents. It is different fromany other dataset. It has huge number of transactions, but few items. Transactions includes many
items, so the dataset is very dense. We call thisdataset very dense dataset.
In almost instances and minimum supports, LCM
algorithms perform well. When the minimum support is large, LCM algorithms are the fastest for all
instances, because of the fast initialization. For all
instances with any minimum support, LCM outperforms other closed itemset mining algorithms. Thisshows the efficiency of ppc extension.
For sparse datasets, LCM algorithms are thefastest, for any minimum support. The efficiency ofFP-tree is not large, and occurrence deliver works efficiently. The performances of afopt and fp-growth
are quite similar for these problems. They are thesecond bests, and 2 to 10 times slower than LCM
algorithms. For enumerating frequent closed itemsets, they take much time when the number of closed
itemsets is large. Although PATRICIAMINE is fast
as much as fp-groth and afopt, it abnormally terminated for some instances. kDCI is slow when thenumber of frequent itemsets is large. MAFIA was theslowest for these instances, for any minimum support.
For middle density datasets, LCM is the fastest
for all instances on closed itemset mining. On all
and maximal frequent itemset mining, LCMfreq andLCMmax are the fastest for large minimum supports,
for any dataset. For small minimum supports, forhalf instances LCMfreq and LCMmax are the fastest.
For the other instances, the results are case by case:each algorithm won in some cases.
For accidents, LCM algorithms are the fastest
when the minimum support is large. For small supports, LCM(closed) is the fastest, however LCMfreq
and LCMmax are slower than fp-growth For thisdataset, the efficiency of FP-tree is large, and thecompression ratio is up to 6. Bitmap is also efficientfrom the density. Hence, the computation time forthe frequency counting is short in the execution ofexisting implementations. However, by ppc extension, LCM has an advantage for closed itemset mining. hence LCM(closed) is the fastest.
1 http://www.ics.uci.edu/

Conclusion

In this paper, we proposed a fast implementation of
LCM for enumerating frequent closed itemsets, which
is based on prefix preserving closure extension. We
further gave implementations LCMfreq and LCMmax for enumerating all frequent itemsets and maximal frequent itemsets by modifying LCM. We showby computational experiments that our implementsof LCM, LCMfreq and LCMmax perform above theother algorithms for many datasets, especially forsparse datasets. There is a possibility of speeding up
LCM algorithms by developing more efficient maximality checking algorithms, or developing a hybrid ofarray and FP-tree like data structures.

Acknowledgment
This research is supported by joint-research funds of
National Institute of Informatics.

References[1] R. Agrawal and R. Srikant, “Fast Algorithms for
Mining Association Rules in Large Databases,”
In Proceedings of VLDB ’94, pp. 487–499, 1994.
[2] R. Agrawal, H. Mannila, R. Srikant, H. Toivonenand A. I. Verkamo, “Fast Discovery of Association Rules,” In Advances in Knowledge Discovery and Data Mining, MIT Press, pp. 307–328,
1996.
[3] R. J. Bayardo Jr., “Efficiently Mining Long Patterns from Databases”, In Proc. SIGMOD’98,
pp. 85–93, 1998.
[4] E. Boros, V. Gurvich, L. Khachiyan, andK. Makino, “On the Complexity of Generating Maximal Frequent and Minimal Infrequent
Sets,” STACS 2002, pp. 133-141, 2002.
[5] D. Burdick, M. Calimlim, J. Gehrke, “MAFIA:
A Maximal Frequent Itemset Algorithm forTransactional Databases,” In Proc. ICDE 2001,
pp. 443-452, 2001.
[6] D. Burdick, M. Calimlim, J. Flannick, J.
Gehrke, and T. Yiu, “MAFIA: A Performance
Study of Mining Maximal Frequent Itemsets,”
In Proc. IEEE ICDM’03 Workshop FIMI’03,
2003. (Available as CEUR Workshop Proc. series, Vol. 90, http://ceur-ws.org/vol-90)[7] B. Goethals,
the FIMI’03 Homepage,
http://fimi.cs.helsinki.fi/, 2003.

mlearn/MLRepository.html

10[8] G. Grahne and J. Zhu, “Efficiently Using
Prefix-trees in Mining Frequent Itemsets,” In
Proc. IEEE ICDM’03 Workshop FIMI’03, 2003.
(Available as CEUR Workshop Proc. series,
Vol. 90, http://ceur-ws.org/vol-90)[9] J. Han, J. Pei, Y. Yin, “Mining Frequent Patterns without Candidate Generation,” SIGMOD
Conference 2000, pp. 1-12, 2000
[10] R. Kohavi, C. E. Brodley, B. Frasca, L. Mason and Z. Zheng, “KDD-Cup 2000 Organizers’
Report: Peeling the Onion,” SIGKDD Explorations, 2(2), pp. 86-98, 2000.
[11] Guimei Liu, Hongjun Lu, Jeffrey Xu Yu, Wang
Wei, and Xiangye Xiao, “AFOPT: An Efficient
Implementation of Pattern Growth Approach,”
In Proc. IEEE ICDM’03 Workshop FIMI’03,
2003. (Available as CEUR Workshop Proc. series, Vol. 90, http://ceur-ws.org/vol-90)[12] S. Orlando, C. Lucchese, P. Palmerini, R. Perego
and F. Silvestri, “kDCI: a Multi-Strategy Algorithm for Mining Frequent Sets,” In Proc. IEEE
ICDM’03 Workshop FIMI’03, 2003. (Available
as CEUR Workshop Proc. series, Vol. 90,
http://ceur-ws.org/vol-90)[13] N. Pasquier, Y. Bastide, R. Taouil, L. Lakhal,
Efficient Mining of Association Rules Using
Closed Itemset Lattices, Inform. Syst., 24(1),25–46, 1999.
[14] N. Pasquier, Y. Bastide, R. Taouil, L. Lakhal,
Discovering Frequent Closed Itemsets for Association Rules, In Proc. ICDT’99, 398-416, 1999.

as CEUR Workshop Proc. series, Vol. 90,
http://ceur-ws.org/vol-90)[19] T. Uno, T. Asai, Y. Uchida, H. Arimura, “An
Efficient Algorithm for Enumerating Closed Patterns in Transaction Databases,” to appear in
Proc. of Discovery Science 2004, 2004.
[20] M. J. Zaki, C. Hsiao, “CHARM: An Efficient
Algorithm for Closed Itemset Mining,” 2nd
SIAM International Conference on Data Mining(SDM’02), pp. 457-473, 2002.
[21] Z. Zheng, R. Kohavi and L. Mason, “Real World
Performance of Association Rule Algorithms,”
KDD 2001, pp. 401-406, 2000.

[15] J. Pei, J. Han, R. Mao, “CLOSET: An Efficient
Algorithm for Mining Frequent Closed Itemsets,” ACM SIGMOD Workshop on Research Issues in Data Mining and Knowledge Discovery
2000, pp. 21-30, 2000.
[16] A. Pietracaprina and D. Zandolin, “Mining
Frequent Itemsets using Patricia Tries,” In
Proc. IEEE ICDM’03 Workshop FIMI’03, 2003.
(Available as CEUR Workshop Proc. series,
Vol. 90, http://ceur-ws.org/vol-90)[17] S. Tsukiyama, M. Ide, H. Ariyoshi and I. Shirakawa, “A New Algorithm for Generating All
the Maximum Independent Sets,” SIAM Journal on Computing, Vol. 6, pp. 505–517, 1977.
[18] T. Uno, T. Asai, Y. Uchida, H. Arimura,“LCM: An Efficient Algorithm for Enumerating Frequent Closed Item Sets,” In Proc. IEEE
ICDM’03 Workshop FIMI’03, 2003. (Available
11