<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Taneli Mielika ̈inen HIIT Basic Research Unit Department of Computer Science University of Helsinki</institution>
          ,
          <country country="FI">Finland</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We describe a method for computing closed sets with data-dependent constraints. Especially, we show how the method can be adapted to find frequent closed sets in a given data set. The current preliminary implementation of the method is quite inefficient but more powerful pruning techniques could be used. Also, the method can be easily applied to wide variety of constraints. Regardless of the potential practical usefulness of the method, we hope that the sketched approach can shed some additional light to frequent closed set mining.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Much of the research in data mining has concentrated on
finding from some given (finite) set R all subsets that
satisfy some condition. (For the rest of the paper we assume,
w.l.o.g., that R is a finite subset of N.)</p>
      <p>The most prominent example of this task is probably
the task of finding all subsets X ⊆ R that are contained
at least minsupp times in the sets of a given sequence
d = d1 . . . dn of subsets di ⊆ R, i.e., to find the
collection
F (minsupp, d) = {X ⊆ R : supp (X, d) ≥ minsupp}
where</p>
      <p>supp (X, d) = |{i : X ⊆ di, 1 ≤ i ≤ n}| .</p>
      <p>The collection F (minsupp, d) is known as the collection
of frequent sets. (We could have defined the collection of
frequent sets by by the frequency of sets which is a
normalized version of supports: f r (X, d) = supp (X, d) /n.)</p>
      <p>Recently one particular subclass of frequent sets,
frequent closed sets, has received quite much attention. A set
X is closed in d if supp (X, d) &gt; supp (Y, d) for all proper
supersets Y of X. The collection of closed sets (in d) is
denoted by</p>
      <p>C (d) =
{X ⊆ R : Y ⊆ R, Y ⊃ X</p>
      <p>⇒ supp (X, d) &gt; supp (Y.d)}</p>
      <p>The collection of frequent closed sets consists of the sets
that are frequent and closed, i.e.,</p>
      <p>F C (minsupp, d) = F (minsupp, d) ∩ C (d) .</p>
      <p>
        Most of the closed set mining algorithms [
        <xref ref-type="bibr" rid="ref12 ref13 ref14 ref16 ref19 ref20 ref3">3, 12, 13, 14,
16, 19, 20</xref>
        ] are based on backtracking [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. In this paper we
describe an alternative approach based on alternating
between closed set generation by intersections and pruning
heuristics. The method can be adapted to many kinds of
constraints and needs only few passes over the data.
      </p>
      <p>The paper is organized as follows. In Section 2 we
sketch the method, in Section 3 we adapt the method for
finding closed sets with frequency constraints, in Section 4
we describe some implementations details the method, and
in Section 5 we experimentally study the properties of the
method. Section 6 concludes the work and suggests some
improvements to the work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The Method</title>
      <p>Let us assume that R = Si∈{1,...,n} di as sometimes R is
not known explicitly. Furthermore, we shall use shorthand
di,j for the subsequence di . . . dj , 1 ≤ i ≤ j ≤ n. The
elements of R are sometimes called items and the sets di
transactions.</p>
      <p>
        As noted in the previous section, a set X ⊆ R is closed
in d if and only if supp (X, d) &gt; supp (Y, d) for all proper
supersets Y of X. However, the closed sets can be defined
also as intersection of the transactions (see e.g. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]):
Definition 1 A set X ⊆ R is closed in d if and only if there
is I ⊆ {1, . . . , n} such that X = Ti∈I di. (By convention,
Ti∈∅ di = R.)
A straightforward implementation of Definition 1
\ di : I ⊆ {1, . . . , n}
i∈I
)
leads to quite inefficient method for computing all closed
sets:1
BRUTE-FORCE(d)
1 R ← Si∈{1,...,n} di
2 supp (R) ← 0
3 for each I ⊆ {1, . . . , n} , I 6= ∅
4 do X ← Ti∈I di
5 if supp (X) &lt; |I|
6 then supp (X) ← |I|
7 return (supp : C → N)
      </p>
      <p>A more efficient solution can be found by the following
recursive definition of closed sets:</p>
      <p>C (d1,i+1)</p>
      <p>C (d1) =
=
{R, d1}</p>
      <p>C (d1,i) ∪ {X ∩ di+1 : X ∈ C (d1,i)}</p>
      <p>Thus the closed sets can be computed by initializing
C = nR = Si∈{1,...,n} dio (since R is always closed),
initializing supp to R 7→ 0, and calling the following
algorithm for each di (1 ≤ i ≤ n):
INTERSECT(supp : C → N, di)
1 for each X ∈ C
2 do C ← C ∪ {X ∩ di}
3 if supp (X ∩ di) &lt; supp (X) + 1
4 then supp (X ∩ di) ← supp (X) + 1
5 return (supp : C → N)</p>
      <p>Using the above algorithm the sequence d does not have
to be stored as each di is needed just for updating the current
approximation of R and intersecting the current collection
C of closed sets.</p>
      <p>
        The closed sets can be very useful way to understand
data sets that consist of only few different transactions and
they have been studied in the field of Formal Concept
Analysis [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. However, many times all closed sets are not of
interest but only frequent closed sets are needed. The
simplest way to adapt the approach described above for finding
the frequent closed sets is to first compute all closed sets
C (d) and then remove the infrequent ones:
F C (minsupp, d) = {X ∈ C (d) : supp (X, d) ≥ minsupp}
by removing all closed sets that are not frequent.
      </p>
      <p>Unfortunately the collection of closed sets can be much
larger than the collection of frequent closed sets. Thus the
1If supp (X) is not defined then its value is interpreted to be 0.
above approach can generate huge number of closed sets
that do not have to be generated.</p>
      <p>A better approach to find the frequent closed sets is to
prune the closed sets that cannot satisfy the constraints –
such as the minimum support constraint – as soon as
possible. If the sequence is scanned only once and nothing is
known about the sequence d in advance then no pruning of
infrequent closed sets can be done: the rest of the sequence
can always contain each closed set at least minsupp times.</p>
      <p>If more than one pass can be afforded or something is
known about the data d in advance then the pruning of
closed sets that do not satisfy the constraints can be done
as follows:
INTERSECTOR(d)
1 supp ← INIT-CONSTRAINTS (d)
2 for each di in d
3 do supp ← INTERSECT (supp, di)
4 UPDATE-CONSTRAINTS (supp, di)
5 supp ← PRUNE-BY-CONSTRAINTS (supp, di)
6 return (supp : C → N)</p>
      <p>The function INTERSECTOR is based on three
subroutines: function INIT-CONSTRAINTS initializes the data
structures used in pruning and computes the initial
collection of closed sets, e.g. the the collection C = {R},
function UPDATE-CONSTRAINTS updates the data
structures by one transaction at a time, and function
PRUNE-BYCONSTRAINTS prunes those current closed sets that cannot
satisfy the constraints.
3</p>
      <p>Adaptation to Frequency Constraints</p>
      <p>The actual behaviors of the functions
INITCONSTRAINTS, UPDATE-CONSTRAINTS and
PRUNE-BYCONSTRAINTS depend on the constraints used to determine
the closed sets that are interesting. We shall concentrate
on implementing the minimum and the maximum support
constraints, i.e., finding the closed sets X ∈ C (d) such that
minsupp ≤ supp (X, d) ≤ maxsupp.</p>
      <p>The efficiency of pruning depends crucially on how
much is known about the data. For example, if only the
number of transactions in the sequence is known, then all
possible pruning is essentially determined by Observation 1
and Observation 2.</p>
      <p>Observation 1 For all 1 ≤ i ≤ n holds:
supp (X, d1,i)+n−i &lt; minsupp ⇒ supp (X, d) &lt; minsupp
Observation 2 For all 1 ≤ i ≤ n holds:
supp (X, d1,i) &gt; maxsupp ⇒ supp (X, d) &gt; maxsupp
Checking the constraints induced by Observation 1 and
Observation 2 can be computed very efficiently. However,
the pruning based on these observations might not be very
effective: all closed sets in d1,n−minsupp can have
frequency at least minsupp and all closed sets in d1,maxsupp
can have frequency at most maxsupp. Thus all closed sets
in d1,min{n−minsupp,maxsupp} are generated before the
observations can be used to prune anything.</p>
      <p>To be able to do more extreme pruning we need more
information about the sequence d. If we are able to know the
number of transactions in the sequence, it might be possible
to count the supports of items. In that case Observation 3
can be exploited.</p>
      <p>Observation 3 If there exists A ∈
supp (X, d1,i) + supp ({A} , di+1,n) &lt;
supp (X, d) &lt; minsupp.</p>
      <p>X such that
minsupp then</p>
      <p>Also, if we know the frequencies of some sets then we
can make the following observation:
Observation 4 If there exists Y
supp (X, d1,i) + supp (Y, di+1,n)
supp (X, d) &lt; minsupp.
⊆
&lt;</p>
      <p>X such that
minsupp then</p>
      <p>Note that these observations do not mean that we could
remove the infrequent closed sets from the collection since
an intersection of an infrequent closed set with some
transaction might still be frequent in the sequence d. However,
we can do some pruning based on the observations as shown
in Proposition 1.</p>
      <p>Proposition 1 Let Z be the largest subset of X ∈
C such that for all A ∈ Z hold supp (X, d1,i) +
supp ({A} , di+1,n) ≥ minsupp. Then X ∈ C can be
removed from C if there is a W ⊆ Y ∈ C, Z ⊂ W , such
that supp (Y, d1,i) ≥ supp (X, d1,i) and for all A ∈ W
hold supp (Y, d1,i) + supp ({A} , di+1,n) ≥ minsupp, and
replaced by Z otherwise.</p>
      <p>Proof. All frequent subsets of X are contained in Z. If
there is a proper superset W ⊆ Y ∈ C of Z such that
supp (Y, d1,i) + supp ({A} , di+1,n) ≥ minsupp then all
frequent subsets of X are contained in W and thus X can
be removed. Otherwise Z is the largest subset of X that can
be frequent and there is no superset of Z that could be
frequent. If Z is not closed, then its support is equal to some of
its proper supersets’ supports. If Z is added to C then none
of proper supersets is frequent and thus also Z is infrequent.</p>
      <p>This idea of replacing infrequent sets based on the
supports items can be generalized to the case where we know
supports for some collection S of sets.</p>
      <p>Proposition 2 Let S be the collection of sets such that
supp (Y, d1,i) and supp (Y, d1,i) are known for all Y ∈ S,
and let S0 consist of sets Y ∈ S, Y ⊆ X, such that
supp (X, d1,i) + supp (Y, di+1,n) &lt; minsupp. Then all
frequent subsets of X ∈ C are the collection S00 of subsets
Z ⊆ X such that Z 6⊆ Y for all Y ∈ S0, no W ⊂ Z ∈ S00
is contained in S00.</p>
      <p>Proof. If Z ⊆ X is frequent then there is a set in S00
containing Z, or Z is contained in some set in S0 but there is
another set Y ∈ C such that supp (Y, d1,i) &gt; supp (X, d1,i).
Proposition 3 Let S, S0 and S00 be as in
Proposition 2. Then X ∈ C can be replaced by the collection
S000 consisting of sets in S00 such that supp (Y, d1,i) +
supp (W, di+1,n) &lt; minsupp for some W ⊆ Z ⊆ Y with
Y ∈ C and W ∈ S.</p>
      <p>Proof. If Z ⊆ X is frequent then it is subset of some set
in S00 or there is Y ∈ C, Z ⊆ Y , such that supp (Y, d1,i) +
supp (W, di+1,n) &lt; minsupp for all W ∈ S, W ⊆ Z.</p>
      <p>If Z ∈ S00 is not closed then it is infrequent since none
of its supersets is frequent.</p>
      <p>The efficiency of pruning depends crucially also on the
ordering of the transactions. In Section 5 we experimentally
evaluate some orderings with different data sets.
4</p>
      <p>The Organization of the Implementation
A preliminary adaptation of the algorithm
INTERSECTOR of Section 2 to minimum support and maximum
support constraints is implemented as a program
intersector. The main components of the implementation are
classes Itemarray, ItemarrayInput and
ItemarrayMap.</p>
      <p>The class Itemarray is a straightforward
implementation consisting of int n expressing the number of items
in the set and int* items that is a length (at least) n
array of items (that are assumed to be nonnegative integers)
in ascending order. One of the reasons why this very simple
representation of a set is used is that Itemarrays are used
also in the data sources, and although some more
sophisticated data structures would enable to do some operations
more efficiently, we believe that Itemarray reflects
better what an arbitrary source of transactions could give.</p>
      <p>
        The class ItemarrayInput implements an
interface to the data set d. The class handles the
pruning of infrequent items from the input and
maintaining the numbers of remaining occurrences of each
item occurring in the data set. The data set d is
accessed by a function pair&lt;Itemarray*,int&gt;*
getItemarray() which returns a pointer to next
pair&lt;Itemarray*,int&gt;. The returned pointer is
NULL if the previous pair were the last one in the data set d.
The main difference to the reference implementation given
at the home page of Workshop on Frequent Itemset Mining
Implementations2 is that pair&lt;Itemarray*,int&gt;* is
returned instead of Itemarray*. This change were made
partly to reflect the attempt to have the closure property of
inductive databases [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] but also because in some cases the
data set is readily available in that format (or can be easily
transformed into that format). The interface
ItemarrayInput is currently implemented in two classes
ItemarrayFileInput and ItemarrayMemoryInput. Both
of the classes read the data set d from a file consisting of
rows of integers with possible count in brackets. Multiple
occurrences of same item in one row are taken into account
only once. For example, the input file
1 2 4 3 2 5 (54)
1 1 1 1
is transformed into pairs h(1, 2, 3, 4, 5) , 54i and h(1) , 1i.
      </p>
      <p>The class ItemarrayFileInput maintains in the
main memory only the item statistics (such as the
number of remaining occurrences of each item) thus
possibly reading the data set several times. The class
ItemarrayMemoryInput reads the whole data set d
into main memory. The latter one can be much faster since
it can also reorder the data set and replace all transactions
di, 1 ≤ i ≤ n, with same frequent items by one pair with
appropriate count. The implementations of these classes are
currently quite slow which might be seen as imitating the
performance of real databases quite faithfully.</p>
      <p>The class ItemarrayMap represents a mapping
from Itemarrays to supports. The class
consists of a mapping map&lt;Itemarray*,int,CardLex&gt;
itemarrays that maps the sets to supports, and a
set set&lt;Itemarray*,CardLex&gt; forbidden
consisting of the sets that are known to be infrequent or
too frequent. The set set&lt;Itemarray*,CardLex&gt;
forbidden is needed mainly because of the maximum
frequency constraint. The class consists two methods:
• The method intersect(const
pair&lt;Itemarray*,int&gt;*) intersects the
current collection sets represented by the
mapping map&lt;Itemarray*,int,CardLex&gt;
itemarrays by the given set
pair&lt;Itemarray*,int&gt;* and updates the
supports appropriately.
• The method prune(ItemarrayInput&amp;) prunes
the sets that are already known to be infrequent or
too frequent based on the statistics maintained by the
implementation of the interface ItemarrayInput.
(The class CardLex defines a total ordering of sets
(of integers) by their cardinality and lexicographically
within of each group with same sizes.) The
pruning rules used in the current implementation of the
method prune(ItemarrayInput&amp;) are
Observation 1, Observation 2, and Observation 3.
5</p>
    </sec>
    <sec id="sec-3">
      <title>The Experiments</title>
      <p>name
T10I4D100K
T40I10D100K
chess
connect
internet
kosarak
mushroom
pumsb
pumsb*</p>
      <p>We tested the efficiency and behavior of the
implementation by the data sets listed in Table 1. All data sets except
internet were provided by the Workshop on Frequent
Itemset Mining Implementations. The data set internet
is the Internet Usage data from UCI KDD Repository3.</p>
      <p>
        If the data sequence is read to main memory then it can
be easily reordered. Also, even if this is not the case, there
exist efficient external memory sorting algorithms that can
be used to reorder the data [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The ordering of the data
can affect the performance significantly.
      </p>
      <p>We experimented especially with two orderings:
ordering in ascending cardinality and ordering in descending
cardinality. The results are shown in Figures 1–9. Each
point (|C| , i) in the figures corresponds to the number |C|
of closed sets in the sequence d1,i that could be frequent in
the whole sequence d. Note that the reason why there is
no point for each number i (1 ≤ i ≤ n) of seen
transactions is that same set of items can occur several times in the
sequence d.</p>
      <p>There is no clear winner within the ascending and
descending orderings: with data sets T10I4D100K,
T40I10D100K, internet, kosarak, and mushroom
the ascending order is better whereas the descending order
seems to be better with data sets chess, connect, and
pumsb. However, it is not clear whether this is due to the
chosen minimum support thresholds.</p>
      <sec id="sec-3-1">
        <title>2http://fimi.cs.helsinki.fi/</title>
      </sec>
      <sec id="sec-3-2">
        <title>3http://kdd.ics.uci.edu/</title>
        <p>number of seen transactions
number of seen transactions
2500
3000
3500
increasing cardinality
decreasing cardinality
1000
500
0
0</p>
        <p>0 0
800
700
tse600
s
d
e
s
lco500
t
n
e
u
q
fre400
ilt
a
n
e
t
fpo300
o
r
e
b
unm200
100
0 0</p>
        <p>4000 5000
number of seen transactions
1000
2000
3000
6000
7000
8000
9000</p>
        <p>One interpretation of the results is the following: small
set di cannot increase the size of C dramatically since all
new closed sets are subsets of di and di has at most 2|di|
closed subsets. However, the small sets do not decrease the
remaining number of occurrences of items very much either.
In the case of large sets dj the situation is the opposite: each
large set dj decreases the supports supp ({A} , dj+1,n) of
each item A ∈ dj but on the other hand it can generate
several new closed sets.</p>
        <p>Also, we experimented with two data sets internet
and mushroom to see how the behavior of the method
changes when changing the minimum support threshold
minsupp. The results are shown in Figure 10 and
Figure 11.</p>
        <p>The pruning seems to work satisfactory if the minimum
support threshold minsupp is high enough. However, it is
not clear how much this is due to the pruning of infrequent
items in the class ItemarrayInput and how much due
to the pruning done by the class ItemarrayMap.
Unfortunately, the performance rapidly collapses as the minimum
support threshold decreases. It is possible that more
aggressive pruning could help when the minimum support
threshold minsupp is low.
6</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusions and Future Work</title>
      <p>In this paper we have sketched an approach for finding
closed sets with some constraints from data with only few
passes over the data. Also, we described a preliminary
implementation of the method for finding frequent but not too
frequent closed sets from data. The current version of the
implementation is still quite inefficient but it can hopefully
shed some light to the interplay of data and closed sets.</p>
      <p>
        As the current implementation of the approach is still
very preliminary, there is plenty of room for improvements,
e.g., the following ones:
• The ordering of input seems to play crucial role in the
efficiency of the method. Thus the favorable
orderings should be detected and strategies for
automatically finding them should be studied.
• The pruning heuristics described in this paper are still
quite simplistic. Thus, more sophisticated pruning
techniques such as inclusion-exclusion [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] should be
tested. Also, pruning co-operation between closed sets
generation and the data source management should be
tighten.
• The pruning done by the data source management
could be improved. For example, the data source
management could recognize consecutive redundancy in
the the data source.
4000
4200
      </p>
      <p>
        4400
minimum support threshold
4600
4800
5000
1800
2000
2600
2800
3000
2200 2400
minimum support threshold
40000
35000
4000 5000
number of seen transactions
• After two passes over the data it is easy to do the third
pass, or even more. Thus one could apply the
intersections with several different minimum support
thresholds to get refining collection of frequent closed sets in
the data: the already found frequent closed sets with
high frequencies could be used to prune less frequent
closed sets more efficiently than e.g. the occurrence
counters for frequent items.
• If it is not necessary to find the exact collection of
closed sets with exact supports, then a sampling could
be applied [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Also, if the data is generated by e.g.
an i.i.d. source then one can sometimes obtain accurate
bounds for the supports from relatively short prefixes
d1,i of the sequence d.
• Other kinds of constraints than frequency thresholds
should be implemented and experimented with.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R. J. Bayardo</given-names>
            <surname>Jr</surname>
          </string-name>
          .
          <article-title>Efficiently mining long patterns from databases</article-title>
          . In A. T. Laura M. Haas, editor,
          <source>SIGMOD 1998, Proceedings ACM SIGMOD International Conference on Management of Data</source>
          , pages
          <fpage>85</fpage>
          -
          <lpage>93</lpage>
          . ACM,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>E.</given-names>
            <surname>Boros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Gurvich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Khachiyan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Makino</surname>
          </string-name>
          .
          <article-title>On the complexity of generating maximal frequent and minimal infrequent sets</article-title>
          . In H. Alt and
          <string-name>
            <surname>A</surname>
          </string-name>
          . Ferreira, editors,
          <source>STACS</source>
          <year>2002</year>
          , volume
          <volume>2285</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>133</fpage>
          -
          <lpage>141</lpage>
          . Springer-Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.-F.</given-names>
            <surname>Boulicaut</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Bykowski</surname>
          </string-name>
          .
          <article-title>Frequent closures as a concise representation for binary data mining</article-title>
          . In T. Terano, H. Liu,
          <article-title>and</article-title>
          <string-name>
            <surname>A. L. P.</surname>
          </string-name>
          Chen, editors,
          <source>Knowledge Discovery and Data Mining</source>
          , volume
          <volume>1805</volume>
          <source>of Lecture Notes in Artificial Intelligence</source>
          , pages
          <fpage>62</fpage>
          -
          <lpage>73</lpage>
          . Springer-Verlag,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Burdick</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Calimlim</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. Gehrke.</surname>
          </string-name>
          <article-title>MAFIA: A maximal frequent itemset algorithm for transactional databases</article-title>
          .
          <source>In Proceedings of the 17th International Conference of Data Engineering (ICDE'01)</source>
          , pages
          <fpage>443</fpage>
          -
          <lpage>452</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>T.</given-names>
            <surname>Calders</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Goethals</surname>
          </string-name>
          .
          <article-title>Mining all non-derivable frequent itemsets</article-title>
          . In T. Elomaa,
          <string-name>
            <given-names>H.</given-names>
            <surname>Mannila</surname>
          </string-name>
          , and H. Toivonen, editors,
          <source>Principles of Data Mining and Knowledge Discovery</source>
          , volume
          <volume>2431</volume>
          <source>of Lecture Notes in Artificial Intelligence</source>
          , pages
          <fpage>74</fpage>
          -
          <lpage>865</lpage>
          . Springer-Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>B.</given-names>
            <surname>Ganter</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Wille</surname>
          </string-name>
          .
          <source>Formal Concept Analysis: Mathematical Foundations</source>
          . Springer-Verlag,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>K.</given-names>
            <surname>Gouda</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Zaki</surname>
          </string-name>
          .
          <article-title>Efficiently mining maximal frequent itemsets</article-title>
          . In N. Cercone,
          <string-name>
            <given-names>T. Y.</given-names>
            <surname>Lin</surname>
          </string-name>
          , and
          <string-name>
            <surname>X</surname>
          </string-name>
          . Wu, editors,
          <source>Proceedings of the 2001 IEEE International Conference on Data Mining</source>
          , pages
          <fpage>163</fpage>
          -
          <lpage>170</lpage>
          . IEEE Computer Society,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Gunopulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Khardon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Mannila</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Saluja</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Toivonen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Sharma</surname>
          </string-name>
          .
          <article-title>Discovering all most specific sentences</article-title>
          .
          <source>ACM Transactions on Database Systems</source>
          ,
          <volume>28</volume>
          (
          <issue>2</issue>
          ):
          <fpage>140</fpage>
          -
          <lpage>174</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T.</given-names>
            <surname>Imielinski</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Mannila</surname>
          </string-name>
          .
          <article-title>A database perspective on knowledge discovery</article-title>
          .
          <source>Communications of The ACM</source>
          ,
          <volume>39</volume>
          (
          <issue>11</issue>
          ):
          <fpage>58</fpage>
          -
          <lpage>64</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D. L.</given-names>
            <surname>Kreher</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Stinson</surname>
          </string-name>
          . Combinatorial Algorithms: Generation,
          <article-title>Enumeration and Search</article-title>
          . CRC Press,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mielika</surname>
          </string-name>
          <article-title>¨inen. Finding all occurring sets of interest</article-title>
          . In J.-
          <string-name>
            <given-names>F.</given-names>
            <surname>Boulicaut</surname>
          </string-name>
          and S. Dzˇeroski, editors,
          <source>2nd International Workshop on Knowledge Discovery in Inductive Databases</source>
          , pages
          <fpage>97</fpage>
          -
          <lpage>106</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Cong</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. K. H. Tung</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Yang</surname>
            , and
            <given-names>M. J.</given-names>
          </string-name>
          <string-name>
            <surname>Zaki</surname>
          </string-name>
          . CARPENTER:
          <article-title>Finding closed patterns in long biological datasets</article-title>
          .
          <source>In Proceedings of the Ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N.</given-names>
            <surname>Pasquier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bastide</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Taouil</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Lakhal</surname>
          </string-name>
          .
          <article-title>Discovering frequent closed itemsets for association rules</article-title>
          . In C. Beeri and P. Buneman, editors,
          <source>Database Theory - ICDT'99</source>
          , volume
          <volume>1540</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>398</fpage>
          -
          <lpage>416</lpage>
          . Springer-Verlag,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Pei</surname>
          </string-name>
          , J. Han, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Mao</surname>
          </string-name>
          . CLOSET:
          <article-title>An efficient algorithm for mining frequent closed itemsets</article-title>
          . In D. Gunopulos and R. Rastogi, editors,
          <source>ACM SIGMOD Workshop on Research Issues in Data Mining and Knowledge Discovery</source>
          , pages
          <fpage>21</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>K.</given-names>
            <surname>Satoh</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Uno</surname>
          </string-name>
          .
          <article-title>Enumerating maximal frequent sets using irredundant dualization</article-title>
          . In G. Grieser,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Tanaka</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Yamamoto, editors,
          <source>Discovery Science</source>
          , volume
          <volume>2843</volume>
          <source>of Lecture Notes in Artificial Intelligence</source>
          , pages
          <fpage>256</fpage>
          -
          <lpage>268</lpage>
          . Springer-Verlag,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>G.</given-names>
            <surname>Stumme</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Taouil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bastide</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Pasquier</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Lakhal</surname>
          </string-name>
          .
          <article-title>Computing iceberg concept lattices with TITANIC</article-title>
          .
          <source>Data &amp; Knowledge Engineering</source>
          ,
          <volume>42</volume>
          :
          <fpage>189</fpage>
          -
          <lpage>222</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>H.</given-names>
            <surname>Toivonen</surname>
          </string-name>
          .
          <article-title>Sampling large databases for association rules</article-title>
          . In T. Vijayaraman,
          <string-name>
            <given-names>A. P.</given-names>
            <surname>Buchmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Mohan</surname>
          </string-name>
          , and N. L. Sarda, editors,
          <source>VLDB'96, Proceedings of 22nd International Conference on Very Large Data Bases</source>
          , pages
          <fpage>134</fpage>
          -
          <lpage>145</lpage>
          . Morgan Kaufmann,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Vitter</surname>
          </string-name>
          .
          <article-title>External memory algorithms and data structures: Dealing with massive data</article-title>
          .
          <source>ACM Computing Surveys</source>
          ,
          <volume>33</volume>
          (
          <issue>2</issue>
          ):
          <fpage>209</fpage>
          -
          <lpage>271</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          , J. Han, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Pei</surname>
          </string-name>
          . CLOSET+:
          <article-title>Searching for the best strategies for mining frequent closed itemsets</article-title>
          .
          <source>In Proceedings of the Ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Zaki</surname>
          </string-name>
          and
          <string-name>
            <surname>C.-J. Hsiao. CHARM:</surname>
          </string-name>
          <article-title>An efficient algorithms for closed itemset mining</article-title>
          . In R. Grossman, J. Han,
          <string-name>
            <given-names>V.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Mannila</surname>
          </string-name>
          , and R. Motwani, editors,
          <source>Proceedings of the Second SIAM International Conference on Data Mining. SIAM</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>