This is the MIForest package, implementing the Multiple Instance Learning Algorithm with Random Forests as proposed in [1]. Note that this is a reimplementation of the original package used in [1] for off-line binary machine learning. On you will also find on-line random forest learning code.


Version 1.0: MIForest-1.0.tar.gz


We provide both a common Makefile as well as a CMakeLists file for cmake. For usage of cmake, simply create a binary folder, go to the folder and type: cmake . If everything works fine, cmake should have created a valid Makefile for you. Be sure to have installed libeigen2 and libconfig++. If you want to use multithreading, install openmp (should be fixed part of most linux distributions) and uncomment -fopenmp in CMakeLists.txt.


Simply start the compiled binary and add the path to the config file

./MIForest ../config.conf

Config file:

All the settings for the classifier are passed via the config file. You can find the config file in “conf” folder. It is
easy to see what are the meanings behind each of these settings:


  • data_file = path to the training data (features)
  • sample_labels = path to the training labels
  • bag_sample_indices = points to the corresponding bag for each index
  • bag_labels = path to the bag labels
  • train_bag_indices = indicates the bags used for training
  • test_bag_indices = indicates the bags used for testing


  • debugging_on = 1 // prints some debug messages

For the rest see the reference config file and the comments therein.

Data format:

The data formats used is a simple ASCII format. Data is a represented as a matrix (vectors are matrices with 1
column). The first line in data file indicates the datatype, i.e., either int or double. In the second line, matrix rows and columns, respectively, are indicated. The third number indicates the number of classes.


[1] Christian Leistner, Amir Saffari, and Horst Bischof,
MIForests: Multiple Instance Learning with Randomized Trees“, in the 11th European Conference on Computer Vision, 2010.


Christian Leistner: leisti “-a-t-”

Amir Saffari