XCSFramework: A Java Framework for XCS-based Machine Learning


XCSFramework: A Java Framework for Supervised and Reinforcement Learning based on Extended Classifier Systems

Projektstart: 01.07.2014
Projektträger: Universität Augsburg
Projektverantwortung vor Ort: Anthony Stein, M.Sc.


In this ongoing side project, several variants of the Extended Classifier System (XCS), as well as sophisticated extensions to improve their learning capabilities on several included challenging learning tasks have been developed over the past four years.


XCS is an evolutionary rule-based online machine learning system, which excells due to its high flexibility regarding the learning tasks it can solve, including classification, regression and control problems from the reinforcement learning domain. Furthermore, the knowledge base that is evolved in an incremental fashion is implicitly human-interpretable, since knowledge is represented via a collection of IF-THEN rules, also called classifiers (admittedly a somewhat confusing terminology) in the literature.

Currently, the XCSFramework provides the following functionality:

  • XCS for real-valued input (XCSR)
  • XCS for function approximation (XCSF)
  • Interpolation-assisted XCSR
  • Interpolation-assisted XCSF
  • Hyperrectangular conditions
  • Hyperellipsoidal conditions (General and Explicit)
  • Piece-wise scalar prediction
  • Piece-wise polynomial (coefficient) prediction (linear, quadratic, cubic)
  • Online coefficient fitting via Widrow-Hoff (delta) rule & Recursive Least Squares (RLS)
  • Interpolation-based prediction (Radial Basis Functions, Shepard Methods, Neighborhood-based Interpolation, ...)
  • Several improvement techniques: Guided Mutation, Local Deletion, Condensation & Compaction
  • A selection of standard learning problems: Checkerboard problem, more than 10 standard functions to be approximated (Cross-Ridge, Sine, Eggholder, RMS-like, etc.), a generic function generator, an interface for abstract external environments, ...
  • and further features under current development...

Current aspects of R&D are:

  • Automated hyperparameter tuning by means of Bayesian Optimization (Automated Machine Learning)
  • Knowledge extraction by leveraging rule-based knowledge representation (Explainable AI)
  • Increasing matching efficiency by means of parallelization and tree-based structures
  • Proactive knowledge construction on the basis of online popualtion analysis
  • Graphical User Interface (GUI) for experiment design and inspection purposes
  • Unified interface for loading arbitrary CSV and ARFF datasets

Potential topics for student theses:

Project modules:

  1. Technical documentation of the XCSFramework
    • Tasks:
      • UML modeling of the core components (component diagrams, class diagrams, etc.)
      • Description of the general workflow (activity diagrams of framework initialization and experiment design)
      • Tutorial on how to extend the framework
      • Tutorial on how to parametrize the framework
      • Identification of design weaknesses and formulation of refactoring proposal
    • Prerequisites:
      • Excellent skills in generic Java programming
      • Strong experience in UML modeling
      • Very good skills in written English
      • "Joy" (or at least no aversion) to dive into foreign source code

If you are interested, please don't hesitate to contact the project leader Anthony Stein, M.Sc.