LCS Demo 0

LCS Workshop- Educational LCS - eLCS

Outcome: Learn the concept and use of Learning Classifier Systems (LCSs)

Instructors: Dr Ryan Urbanowicz, Dr Will Browne And Dr Karthik Kuber,

The following topics will be covered in a series of hands-on exercises and demonstrations:

  1. LCS in a Nutshell
  2. LCS Concepts
  3. LCS Functional Cycle
  4. LCS Adaptability
  5. LCS Applications (toy and real problems)

Welcome to the Educational Learning Classifier System (eLCS).

It has the core elements of the functionality that help define the concept of LCSs. It’s the same family as the fully featured ExSTraCS system, so it is easy to transfer to a state-of-the-art LCS from this shallow learning curve.

eLCS complements the forthcoming Textbook on Learning Classifier Systems. Each demo is paired with one of the chapters in the textbook. Therefore, there are 5 different versions of an educational learning classifier system (eLCS), as relevant functionality (code) is added to eLCS at each stage. This builds up the eLCS algorithm in its entirety from Demo 1 through to 5. Demo 6 showcases how ExSTraCS may be applied to a real-world data mining example, i.e. large scale bioinformatics.

  • Demo 1 Understanding of what an LCS is attempting – how does it classify the training data?
  • Demo 2 Matching and Covering
  • Demo 3 Prediction, Rule Population Evaluations, GA Rule Discovery, Parental Selection and Deletion
  • Demo 4 Niche GA + Subsumption
  • Demo 5 Complete eLCS applied to a complex (toy) problem
  • Bonus Demo 6 ExSTraCS applied to a real-world data mining example

Like the ExSTraCS algorithm, eLCS is set up to handle discrete or continuous attributes and endpoints. Example domains are simple initially. The configuration files may be edited, to change run parameters, but initially they should be set to run on their own.

All code is in Python. This newest version is coded in Python 3.4. Here it is to be run in the Jupyter platform (http://jupyter.org/), as it supports interactive data science.

[Note eLCS was originally coded in Eclipse using PyDev 2.7, which is still valid and available on request from Ryan, although Python 2+ code will not function in Python 3+. Alternatively, each version may be run by calling eLCS Run.py.].

Each demo version only includes the minimum code needed to perform the functions they were designed for. This way users can start by examining the simplest version of the code and progress onwards. The demo exercises are to implement several functions in eLCS and view results in spreadsheet, text file or Python based graphics (preferable).

Set-up and introduction to Jupyter

Please see http://jupyter.org/ on how to set-up Jupyter with Python 3. Please download eLCS_1.ipynb, … , eLCS_5.ipynb from Github

0. Check Jupyter and Python 3 is installed correctly!

Firstly, check that the basic eLCS, eLCS_0.ipynb, is running in Jupyter -the “Hello LCS” input code produces an appropriate output when it is run. Run a code cell using Shift-Enter or pressing the button in the toolbar above when input highlighted).


In [4]:
a = "Hello, LCS!"

In [ ]:
print(a)

Hello, LCS! should appear above this line if everything is working :)