Opened 4 years ago

Last modified 4 years ago

#1980 reviewing feature request

Implementing Learning Classifier Systems

Reported by: sforsten Owned by: mkommend
Priority: medium Milestone: HeuristicLab 3.3.x Backlog
Component: ### Undefined ### Version: branch
Keywords: Cc:

Description

Implementing Learning Classifier Systems, at least one Michigan and one Pittsburgh approach.

The implementation should be a reference implementation, if other LC systems will be added.

Change History (29)

comment:1 Changed 4 years ago by sforsten

r8941: A general implementation of most main components of LCS is done with an own encoding. At the moment you can just watch the LCS generating a number of solutions and selecting the match and action set in the debug engine.

comment:2 Changed 4 years ago by sforsten

r9089:

  • added ConditionActionClassificationProblem
  • added ConditionActionEncoding
  • added Manipulators, Crossovers and an LCSAdaptedGeneticAlgorithm
  • changed LearningClassifierSystemMainLoop

comment:3 Changed 4 years ago by sforsten

r9090: implemented covering and changed SinglePointCrossover for CombinedIntegerVectorEncoding

comment:4 Changed 4 years ago by sforsten

r9105:

  • included an adapted version of GA correctly
  • added action set subsumption
  • added deletion after GA and before covering

comment:5 Changed 4 years ago by sforsten

  • Status changed from new to accepted

r9110:

  • added GA subsumption
  • simplified deletion before covering
  • simplified XCSDeletionOperator

comment:6 Changed 4 years ago by sforsten

r9154:

  • added XCSSolution, XCSModel, XCSClassifier to represent the xcs classifier
  • XCSSolution also shows the current accuracy (training and test partition has to be added)
  • added XCSSolutionAnalyzer to create a XCSSolution during the run of the algorithm
  • added XCSModelView to show the xcs model
  • fixed a bug in XCSDeletionOperator (sometimes it deleted less classifiers than it should)
  • moved some parameter from ConditionActionClassificationProblem to ConditionActionClassificationProblemData

comment:7 Changed 4 years ago by sforsten

r9160:

  • added problem instance provider to import csv files for ConditionActionClassificationProblemData
  • adapted LCSAdaptedGeneticAlgorithm to use the crossover probability
  • fixed a bug in XCSModelView

comment:8 Changed 4 years ago by sforsten

r9161:

  • added training and test partition to ConditionActionClassificationProblemData
  • ClassifierFetcher only uses training partition

comment:9 Changed 4 years ago by sforsten

r9167:

  • change standard parameter settings in ConditionActionClassificationProblem
  • fixed bug: if a parent is copied instead of a crossover, the new individual is inserted in the population correctly
  • added missing attributes to ConditionActionClassificationProblemData

comment:10 Changed 4 years ago by sforsten

r9175:

  • added BestTrainingXCSSolutionAnalyzer and CurrentXCSSolutionAnalyzer
  • fixed bug: Equals method was not correct in CombinedIntegerVector

The interface IEquatable<IClassifier> in IClassifier will be removed soon and a IEqualityComparer<IClassifier> will be implemented instead.

comment:11 Changed 4 years ago by sforsten

r9191: branch project HeuristicLab.Core

r9194:

  • added necessary interface ICondition, IAction, IInput
  • removed not used class MatchSelector and interface IMatchSelector
  • added constructors to ItemDictionary
  • added new encoding

The new encoding still misses a manipulator and a covering operator. Also a problem which uses it has to be created or at least adapted.

comment:12 Changed 4 years ago by sforsten

r9204:

  • deleted not needed interface IMatching
  • finished VariableVector encoding
  • the algorithm LearningClassifierSystem is now independent of a specific encoding. It still needs the ConditionActionEncoding.
  • merged r9191:9203 HeuristicLab.Core from trunk to branch

comment:13 Changed 4 years ago by sforsten

r9205: forgot to remove the reference to any specific encodings in the LearningClassifierSystems project

comment:14 Changed 4 years ago by sforsten

r9226:

  • made classes in Problems.ConditionActionClassification abstract
  • added Problems.VariableVectorClassification and Problems.CombinedIntegerVectorClassification
  • LCS works now with arbitrary problems, which implement ConditionActionClassificationProblem

comment:15 Changed 4 years ago by sforsten

r9228:

  • property changes
  • removed Plugin.cs and AssemblyInfo.cs
  • added VariableVectorCVSInstanceProvider

comment:16 Changed 4 years ago by sforsten

r9242:

  • fixed several bugs (crossover, subsumption, serialization etc.)
  • added ModuloOperator
  • CombinedIntegerVectorClassificationProblem\Data and VariableVectorClassificationProblem\Data inherit from ConditionActionClassificationProblem\Data
  • it can now be set how often the analyzers have to be executed
  • VariableVectorAction, VariableVectorCondition and VariableVectorInput now inherit from Item

comment:17 Changed 4 years ago by sforsten

r9334:

  • added Algorithms.GAssist
  • adapted Problems.DecisionListClassification and Encodings.DecisionList

comment:18 Changed 4 years ago by sforsten

r9342:

  • added be project Optimization.Operators.LCS
  • added default rule strategies for GAssist

comment:19 Changed 4 years ago by sforsten

r9352:

  • added DecisionListView
  • added event handlers in *ProblemData
  • renamed project Problems.XCS.Views to Problems.lCS.Views and Problems.Instances.ConditionActionClassification to Problems.Instances.LCS
  • integrated niching in GAssist and added NichingTournamentSelector
  • minor code improvements and property changes

comment:20 Changed 4 years ago by sforsten

r9392:

  • several small bug fixes
  • added windowing technique ILAS to GAssist
  • GAssist and XCS work now with real-valued features
  • severely improved the performance of XCS

comment:21 Changed 4 years ago by sforsten

r9411:

  • added multiple discretizer to GAssist
  • created ensembles for LCS problems and edited CrossValidation to use them

comment:22 Changed 4 years ago by sforsten

r9467:

  • added ProportionalTournamentSelector for XCS
  • fixed bug: if an initial population is created in XCS, the initial population also creates general classifier, not only specific ones
  • merged r9204:9466 HeuristicLab.Core from trunk to branch

comment:23 Changed 4 years ago by sforsten

r9468: removed condition that all condition variables have to be double variables

comment:24 Changed 4 years ago by sforsten

r9470: added better check of which variables can be an action and which can be condition variables

comment:25 Changed 4 years ago by sforsten

r9475: several small bug fixes

comment:26 Changed 4 years ago by sforsten

r9494:

  • renamed algorithm Learning Classifier System to XCS
  • DecisionListSolution and XCSSolution show more information
  • VariableVectorClassificationProblemData can now also import datasets where the last variable is not the target variable

comment:27 Changed 4 years ago by sforsten

r9605:

  • set plugin dependencies
  • added smart initialization
  • added hierarchical selection
  • fixed major and minor default rule
  • fixed several smaller bugs
  • some refactoring has been done

MPLCS has still do be added to GAssist see http://icos.cs.nott.ac.uk/data/papers/Bacardit2009c.pdf.

Many newer operators are already available for XCS and should be added.

Some event handler are still missing.

comment:28 Changed 4 years ago by sforsten

r9606: forgot to delete a file

comment:29 Changed 4 years ago by mkommend

  • Owner changed from sforsten to mkommend
  • Status changed from accepted to reviewing
Note: See TracTickets for help on using tickets.