Selected Software Implementations
Pier Luca Lanzi's
XCS Library (xcslib) implements XCS and XCSF in C++ and includes many
examples. After unpacking, see manual.pdf for complete instructions.
JavaXCSF is a sophisticated development of XCSF that employs
four condition types (rectangles, ellipsoids, rotating rectangles, and
rotating ellipsoids), three predictors (constant, linear, and quadratic RLS),
and various test functions. Search for "JavaXCSF" on the web page.
ExSTraCS is an XCS- and UCS-based classifier system for prediction,
data mining, and knowledge discovery tasks. It was primarily developed
for epidemiological data mining. ExSTraCS can flexibly handle (1) discrete
or continuous attributes, (2) missing data, (3) balanced or imbalanced
datasets, and (4) binary or many classes. Coded in Python 2.7.
Aaron Hosford offers a new implementation in Python of the canonical
XCS algorithm, as described in Butz and Wilson's paper, "An algorithmic
description of XCS". It is available for download from
He writes: "I did take some liberties in refactoring the algorithm into a
more object-oriented structure. The code has not been fully tested or vetted
but is functional at this point".
Nugroho Fredivianus's XCS-RC is the first accuracy-based
classifier system to use inductive reasoning instead of random genetic
in the discovery component. His results show that XCS-RC substantially
outperforms XCS in learning speed and resource usage (classifiers).
Nugg's PhD thesis is
A directory containing XCS-RC, a real input
version of XCS-RC, and the thesis appendix is
XCS-RC is based on Martin Butz's Java XCS.