Last active
April 25, 2020 12:05
-
-
Save kenwebb/be9cab67ffa7a0b3510b0d9f9211dc54 to your computer and use it in GitHub Desktop.
Learning classifier systems (LCS)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Sat Apr 25 2020 08:05:14 GMT-0400 (Eastern Daylight Time)--> | |
<XholonWorkbook> | |
<Notes><![CDATA[ | |
Xholon | |
------ | |
Title: Learning classifier systems (LCS) | |
Description: | |
Url: http://www.primordion.com/Xholon/gwt/ | |
InternalName: be9cab67ffa7a0b3510b0d9f9211dc54 | |
Keywords: | |
My Notes | |
-------- | |
April 25, 2020 | |
References | |
---------- | |
() https://en.wikipedia.org/wiki/Learning_classifier_system | |
Learning classifier systems, or LCS, are a paradigm of rule-based machine learning methods that combine a discovery component | |
(e.g. typically a genetic algorithm) with a learning component (performing either supervised learning, reinforcement learning, or unsupervised learning). | |
Learning classifier systems seek to identify a set of context-dependent rules that collectively store and apply knowledge in a piecewise manner in order to make predictions | |
(e.g. behavior modeling, classification, data mining, regression, function approximation, or game strategy). | |
This approach allows complex solution spaces to be broken up into smaller, simpler parts. | |
() search: learning classifier systems | |
() https://github.com/ryanurbs/eLCS | |
Educational Learning Classifier System (eLCS) - Implementation of a basic, generic Michigan-style LCS algorithm | |
Python | |
KSW I downloaded the .zip from the website, and ran the following: (it works) | |
cd Demo_1 | |
python ./eLCS_Run.py | |
() https://github.com/ryanurbs/eLCS_JupyterNotebook | |
Educational Learning Classifier System (eLCS) - Jupyter Notebook implementation of a basic, generic Michigan-style LCS algorithm | |
() https://github.com/ryanurbs/ExSTraCS_2.0 | |
Extended Supervised Tracking and Classifying System (ExSTraCS) Version 2.0.2 Beta (Python 3.5) | |
() https://github.com/tofti/java-zcs | |
Java Implementation of the simplified strength based learning classifier system | |
() https://www.researchgate.net/publication/26850330_Learning_Classifier_Systems_A_Complete_Introduction_Review_and_Roadmap | |
Learning Classifier Systems: A Complete Introduction, Review, and Roadmap | |
Ryan J. Urbanowicz, Jason H Moore, 2009 | |
Abstract | |
If complexity is your problem, learning classifier systems (LCSs) may offer a solution. | |
These rule-based, multifaceted, machine learning algorithms originated and have evolved in the cradle of evolutionary biology and artificial intelligence. | |
The LCS concept has inspired a multitude of implementations adapted to manage the different problem domains to which it has been applied | |
(e.g., autonomous robotics, classification, knowledge discovery, and modeling). | |
One field that is taking increasing notice of LCS is epidemiology, where there is a growing demand for powerful tools to facilitate etiological discovery. | |
Unfortunately, implementation optimization is nontrivial, and a cohesive encapsulation of implementation alternatives seems to be lacking. | |
This paper aims to provide an accessible foundation for researchers of different backgrounds interested in selecting or developing their own LCS. | |
Included is a simple yet thorough introduction, a historical review, and a roadmap of algorithmic components, emphasizing differences in alternative LCS implementations. | |
]]></Notes> | |
<_-.XholonClass> | |
<!-- domain objects --> | |
<PhysicalSystem/> | |
<Block/> | |
<Brick/> | |
<!-- quantities --> | |
<Height superClass="Quantity"/> | |
</_-.XholonClass> | |
<xholonClassDetails> | |
<Block> | |
<port name="height" connector="Height"/> | |
</Block> | |
</xholonClassDetails> | |
<PhysicalSystem> | |
<Block> | |
<Height>0.1 m</Height> | |
</Block> | |
<Brick multiplicity="2"/> | |
</PhysicalSystem> | |
<Blockbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[ | |
var a = 123; | |
var b = 456; | |
var c = a * b; | |
if (console) { | |
console.log(c); | |
} | |
//# sourceURL=Blockbehavior.js | |
]]></Blockbehavior> | |
<Heightbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[ | |
var myHeight, testing; | |
var beh = { | |
postConfigure: function() { | |
testing = Math.floor(Math.random() * 10); | |
myHeight = this.cnode.parent(); | |
}, | |
act: function() { | |
myHeight.println(this.toString()); | |
}, | |
toString: function() { | |
return "testing:" + testing; | |
} | |
} | |
//# sourceURL=Heightbehavior.js | |
]]></Heightbehavior> | |
<Brickbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[ | |
$wnd.xh.Brickbehavior = function Brickbehavior() {} | |
$wnd.xh.Brickbehavior.prototype.postConfigure = function() { | |
this.brick = this.cnode.parent(); | |
this.iam = " red brick"; | |
}; | |
$wnd.xh.Brickbehavior.prototype.act = function() { | |
this.brick.println("I am a" + this.iam); | |
}; | |
//# sourceURL=Brickbehavior.js | |
]]></Brickbehavior> | |
<Brickbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[ | |
console.log("I'm another brick behavior"); | |
]]></Brickbehavior> | |
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml, | |
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg"> | |
<g> | |
<title>Block</title> | |
<rect id="PhysicalSystem/Block" fill="#98FB98" height="50" width="50" x="25" y="0"/> | |
<g> | |
<title>Height</title> | |
<rect id="PhysicalSystem/Block/Height" fill="#6AB06A" height="50" width="10" x="80" y="0"/> | |
</g> | |
</g> | |
</svg> | |
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient> | |
</XholonWorkbook> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment