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.

Martin Butz's 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.

Ryan Urbanowicz's 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 operations 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 here. A directory containing XCS-RC, a real input version of XCS-RC, and the thesis appendix is here. XCS-RC is based on Martin Butz's Java XCS.