Code for Multiclass Boosting
Here are the source files I used for the paper
Multiclass Boosting with Repartitioning.
You may also find the data sets used for the paper at
my data page.
Main Code
You will need LEMGA
(later than 2006/05/16) and
LIBSVM
to compile the files here.
- Makefile:
Works for me on Linux.
You'll probably modify the LEMGA path in this file.
- runecoc.cpp:
Builds different multiclass boosting classifiers, performs
cross-validation if need be, and records training and test errors.
See the comments at the beginning of the file
for compiling tips. The program outputs the training error, test
error, and training cost for the ensemble, and the coefficients
for the base models.
Helper Functions
Experiments were carried out on different splits of the data sets,
and also with different base learners. Here are some helper functions
to generate the data splits, collect the results, and plot the figures.
- mkperms.m:
Generates the permutation files for different (kinds of) data sets.
- runecoc.sh:
A simple shell wrapper for running the experiments.
It helps to standardize the file names.
- collect.m:
Collects and analyzes the experiment results.
Some of the complications were caused by cross-validation and the
fact that some data sets have test examples, and some don't.
- cmplot.m:
Plots error/cost curves for different methods.
- A few utility functions:
assert.m,
options.m,
savedata.m,
and
xload.m.
Here are the files for the tangram experiment:
- tangram.m:
Generates random examples for the tangram problem. It can also
plot a colorful tangram.
- tangram_binary.m:
Given a class partition, plots the associated binary layout.
- tangram_pattern.m,
tangram_pattern.sh:
(With
OUTPUT_TEST_CLASS
set to 1 in runecoc.cpp,
class partitions for each boosting step are logged.)
Counts the times and the coefficient sums of class partitions.