README

Table of Contents

1 Dominance Programming Solver

1.1 Publications:

  • Benjamin Negrevergne, Anton Dries, Tias Guns, and Siegfried Nijssen. Dominance programming for itemset mining. In International Conference on Data Mining (ICDM), 2013.

1.3 Compile

1.3.1 Without Gecode installed (default)

./configure
make 
make install

1.3.2 with Gecode installed

If you already have Gecode 4 installed on your system, you can avoid compilation time by using it. To do so, follow this procedure:

set the environement variable to GECODE_LIBRARIES to your gecode lib dir and the GECODE_INCLUDES to your gecode include dir.

E.g.

./configure GECODE_LIBRARIES=/path/to/gecode-4.0.0/lib GECODE_LIBRARIES=/path/to/gecode-4.0.0/include

Then:

make
make install

For more advanced setups, see ./configure –help

1.4 Specifying models

Models for itemset mining can be found in the src/main.cpp file.

Thanks to the new syntax, specifying a "dominance program" is quite simple. For example the complete program for closed itemset mining looks like this:

#include "common.h"					        // core functionality
#include "pattern_mining.h"					// macros and constraints for pattern mining

OperatorChain closed(int argc, char* argv[]) {
    LOAD_DATA;							// initializes tdb0, tdb1, nr_i, nr_t0, nr_t1
    LOAD_FREQ;							// initializes freq

    return OperatorChain()
    << DefineOperator("items", 0, 1, nr_i)			// define "items" variable
    << DefineOperator("cover", 0, 1, nr_t)			// define "cover" variable
    << CoverConstraint("items", "cover", tdb)			// apply cover constraint
    << FrequencyConstraint("items", "cover", tdb, freq);	// apply frequency constraint
    << DominanceOperator( Preorder("items", GEQ) &		// apply closedness constraint
                                 Preorder("cover", EQ) )
    << OutputOperator(cout,					// specify output formatting
                OutSpec(OutSpecType::ARR2SET, "items") &
                OutSpec(OutSpecType::CONSTANT, "| ") &
                OutSpec(OutSpecType::SETSIZE, "cover"));
}

int main(int argc, char* argv[]) {
    closed(argc,argv).solve();					// solve the algebra expression
}

See src/README doc/userguide.html and src/main.cpp for more information.

1.5 Report BUGs

Report bugs to Benjamin Negrevergne or Anton Dries at:

  • Benjamin.Negrevergne@dauphine.fr
  • Anton.Dries@cs.kuleuven.be

Author: Benjamin Negrevergne

Created: 2017-01-04 Wed 14:56

Emacs 24.5.1 (Org mode 8.1.2)

Validate