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.2 Latest release:
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