A new framework to generate interpretable classification rules
Clone or download
Latest commit 7eb8cc9 Jan 15, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
Benchmarks readme updated Jan 15, 2019
Scripts readme updated Jan 15, 2019
output adding result scripts Jan 8, 2019
.gitignore aux files removed Jan 8, 2019
README.md readme updated Jan 15, 2019
default.py adding result scripts Jan 8, 2019



MLICv2 is an incremental learning framework based on MaxSAT for generating interpretable classification rules. This tool is based on our work published in AIES 2019. We have introduced this framework as IMLI in the paper.

Directory Description

The directory Benchmarks/Data consists of all the benchmark files used for the experiment.

The directory Scripts contains all the scripts that are employed in testing and required for reproducibility. In the Scripts directory, we have added imli.py which is the incremental learning framework for generating interpretable rules. To run imli.py, you will need an off the self MaxSAT solver (e.g., MaxHS, Open-Wbo) to be in the PATH variable.

Scripts also contains some additional scripts. Scripts/mlic.py includes the source code of the state of the art MaxSAT based interpretable rule learning framework and requires a MaxSAT solver in PATH. Scripts/helper.py consists of several methods for discretizing a non-binary featured dataset into a binary featured dataset, partitioning training data, storing processed data in temporary space etc. Scripts/init.py is the entry point in the system which processes a user-specific dataset by calling methods from Scripts/helper.py.

Scripts/other_classifiers.py contains the code for comparing MaxSAT based approach with other machine learning tools e.g., nearest neighbour, support vector classifier, logistic regression, random forest, and ripper. Ripper algorithm is supported by WEKA (jRIP). Carefully check the path of weka.jar, and make sure that PATH is consistent with the script (run_weka_RIPPER method in script).

output directory contains an additional script and is called within the scripts from Scripts directory for presenting the experiment results in CSV format under output directory.


Run init.py in Scripts directory to process the dataset.

python init.py <dataset> <partition>

Example: python init.py --dataset=iris --partition=4

Run imli.py in Scripts directory to generate interpretable rules using incremental learning framework.

python imli.py  <dataset> <partition> 

Example: python imli.py --dataset=iris --partition=4

You can pass python imli.py -h to see all the possible options.

To execute the state of the art tool MLIC and other ML tools, initialize the system using the following command from Scripts directory.

python init.py <dataset>

Then run mlic.py from the same directory.

python mlic.py  <dataset>

Similarly to conduct experiments with other tools, run other_classifiers.py in Scripts directory.

python other_classifiers.py <dataset> <classifier> 

Refer to Scripts/other_classifiers.py for a list of classifiers and parameter settings.

In the root directory, execute python default.py to go to the initial state of the system.

For more details, refer to the source code.

Issues, questions, bugs, etc.

Please click on "issues" at the top and create a new issue. All issues are responded to promptly.


  1. Bishwamittra Ghosh (bishwa@comp.nus.edu.sg)
  2. Kuldeep Meel (meel@comp.nus.edu.sg)

Old Versions

The old version, MLIC is available under the branch "MLIC". Please read the README of the old release to know how to compile the code.