Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 18 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: heidmic
- License: gpl-3.0
- Language: Python
- Default Branch: master
- Size: 1.86 MB
Statistics
- Stars: 7
- Watchers: 3
- Forks: 4
- Open Issues: 19
- Releases: 5
Metadata Files
README.md
SupRB
What is SupRB?
SupRB is a rule-set learning algorithm (or Learning Classifier System (LCS)) that utilises two separate optimizers that discover new rules and create global solutions to the learning problem, respectively. Those rules are stored in a Pool that expands during runtime and provides rules for solution creation.

Rules use interval bounds for matching and a simple local model for outputs.

Solutions of the problem select classifiers from the unchanging pool.

Usage
For a quick entry into to using SupRB, have a look at the examples directory or the suprb-experimentation repository for more complex setups including automated parametertuning.
The most basic way of using SupRB is by specifying the rule_discovery and solution_composition with its default parameters:
SupRB(rule_discovery=ES1xLambda(), solution_composition=GeneticAlgorithm())
Most of the time you want to use cross_validate from sklearn.model_selection for your model to get a better idea of general performance, which is why the examples use it consistently.
Make sure that the data you feed the model is in the correct format (use the examples for reference): - Inputs/features should be min-max-scaled to [-1, 1]. - Output/target should be standardized (mean to zero, variance to one).
The examples in the examples directory are: - example_1.py: Using default parameters - example_2.py: With one level of changed parameters - example_3.py: With two levels of changed parameters - example_4.py: Without any default parameters - compare_sklearn.py: Code to run a direct comparison between suprb and various other sklearn models
Install all requirements
pip3 install -r requirements.txt
We recommend to use Python version 3.12
Contributing
Newly created branch should follow a pattern that allows easy comprehension of what is being done and why, e.g.:
If there is no open issue the branch name should just reflect a short description of the feature/fix, e.g. introducevolumeforrulediscovery.
The commit messages of all the commits in your PR should be properly formatted: - The first line is the commit message's summary line. - The summary line starts with a capitalized imperative (e.g. “Add …”, “Fix …”, “Merge …”). - The summary line is just one line (aim for 50 characters or less). - The summary line is a heading—it doesn't end with a period! - If more text follows (which will often be the case) there must be one blank line after the summary line. - All lines after the summary line (the commit message's body) should be wrapped at around 72 characters. Remember to leave a blank line after the summary line. - Use the message body for more detailed explanations if necessary. Don't put these in the summary line. - The body may contain multiple paragraphs, separated by blank lines. - The body may contain bullet lists. - Basically, adhere to this.
Avoid merge commits by using rebase rather than merge when combining branches
Publications
The Concept
Michael Heider, Helena Stegherr, Jonathan Wurth, Roman Sraj, and Jörg Hähner. 2022. Separating Rule Discovery and Global Solution Composition in a Learning Classifier System. In Genetic and Evolutionary Computation Conference Companion (GECCO ’22 Companion). https://doi.org/10.1145/3520304.3529014
Comparisons with other Systems
Michael Heider, Helena Stegherr, Jonathan Wurth, Roman Sraj, and Jörg Hähner. 2022. Investigating the Impact of Independent Rule Fitnesses in a Learning Classifier System. In: Mernik, M., Eftimov, T., Črepinšek, M. (eds) Bioinspired Optimization Methods and Their Applications. BIOMA 2022. Lecture Notes in Computer Science, vol 13627. Springer, Cham. https://doi.org/10.1007/978-3-031-21094-5_11 http://arxiv.org/abs/2207.05582 A comparison with XCSF.
Michael Heider, Helena Stegherr, Roman Sraj, David Pätzel, Jonathan Wurth and Jörg Hähner. 2023. SupRB in the context of rule-based machine learning methods: a comparative study. Applied Soft Computing 147, 110706. DOI: 10.1016/j.asoc.2023.110706 A comparison with XCSF, Decision Trees, and Random Forests.
Investigating Components
Jonathan Wurth, Michael Heider, Helena Stegherr, Roman Sraj, and Jörg Hähner. 2022. Comparing different Metaheuristics for Model Selection in a Supervised Learning Classifier System. In Genetic and Evolutionary Computation Conference Companion (GECCO ’22 Companion). https://doi.org/10.1145/3520304.3529015
Michael Heider, Helena Stegherr, David Pätzel, Roman Sraj, Jonathan Wurth and Jörg Hähner. 2022. Approaches for Rule Discovery in a Learning Classifier System. In Proceedings of the 14th International Joint Conference on Computational Intelligence - ECTA. https://doi.org/10.5220/0011542000003332
Michael Heider, Helena Stegherr, David Pätzel, Roman Sraj, Jonathan Wurth, Benedikt Volger and Jörg Hähner. 2023. Discovering rules for rule-based machine learning with the help of novelty search. SN Computer Science 4, 6, 778. DOI: 10.1007/s42979-023-02198-x
Michael Heider, Maximilian Krischan, Roman Sraj and Jörg Hähner. 2024 Exploring Self-Adaptive Genetic Algorithms to Combine Compact Sets of Rules. In Proceedings of the 2024 IEEE Congress on Evolutionary Computation (CEC). https://doi.org/10.1109/CEC60901.2024.10612101.
Explainability of LCS
Michael Heider, Helena Stegherr, Richard Nordsieck and Jörg Hähner. 2023. Assessing model requirements for explainable AI: a template and exemplary case study. Artificial Life 29, 4, 468-486. MIT press. DOI: https://doi.org/10.1162/artla00414
A general description of LCS and its optimizers
Michael Heider, David Pätzel, Helena Stegherr, Jörg Hähner. 2023. A Metaheuristic Perspective on Learning Classifier Systems. In: Eddaly, M., Jarboui, B., Siarry, P. (eds) Metaheuristics for Machine Learning. Computational Intelligence Methods and Applications. Springer, Singapore. https://doi.org/10.1007/978-981-19-3888-7_3
Experiments
We provide the experiment scripts used in associated publications under: https://github.com/heidmic/suprb-experimentation
Citation
If you use this code for research, please cite:
Michael Heider, Helena Stegherr, Jonathan Wurth, Roman Sraj, and Jörg Hähner. 2022. Separating Rule Discovery and Global Solution Composition in a Learning Classifier System. In Genetic and Evolutionary Computation Conference Companion (GECCO ’22 Companion). https://doi.org/10.1145/3520304.3529014
Formatting
Install black formatter (pip install black) and use it in the root directory of the project to format all python files (black .)
Owner
- Login: heidmic
- Kind: user
- Repositories: 2
- Profile: https://github.com/heidmic
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: Heider
given-names: Michael
orcid: https://orcid.org/0000-0003-3140-1993
- family-names: Sraj
given-names: Roman-Alexander
orcid: https://orcid.org/0009-0003-7930-4276
- family-names: Wurth
given-names: Jonathan
orcid: https://orcid.org/0000-0002-5799-024X
title: "SupRB: The Supervised Rule-based Learning System"
url: "https://github.com/heidmic/suprb"
version: 1.0.0
date-released: 2024-11-18
preferred-citation:
type: conference-paper
authors:
- family-names: Heider
given-names: Michael
- family-names: Stegherr
given-names: Helena
- family-names: Wurth
given-names: Jonathan
- family-names: Sraj
given-names: Roman
- family-names: Hähner
given-names: Jörg
title: "Separating Rule Discovery and Global Solution Composition in a Learning Classifier System"
year: 2022
conference: "Genetic and Evolutionary Computation Conference Companion (GECCO ’22 Companion)"
doi: "10.1145/3520304.3529014"
url: "https://doi.org/10.1145/3520304.3529014"
GitHub Events
Total
- Create event: 17
- Issues event: 12
- Release event: 3
- Watch event: 1
- Delete event: 16
- Issue comment event: 43
- Push event: 84
- Pull request review comment event: 38
- Pull request review event: 37
- Pull request event: 46
- Fork event: 1
Last Year
- Create event: 17
- Issues event: 12
- Release event: 3
- Watch event: 1
- Delete event: 16
- Issue comment event: 43
- Push event: 84
- Pull request review comment event: 38
- Pull request review event: 37
- Pull request event: 46
- Fork event: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 9
- Total pull requests: 21
- Average time to close issues: over 1 year
- Average time to close pull requests: 10 days
- Total issue authors: 4
- Total pull request authors: 4
- Average comments per issue: 0.89
- Average comments per pull request: 0.9
- Merged pull requests: 12
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 6
- Pull requests: 21
- Average time to close issues: 3 months
- Average time to close pull requests: 10 days
- Issue authors: 4
- Pull request authors: 4
- Average comments per issue: 1.0
- Average comments per pull request: 0.9
- Merged pull requests: 12
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- heidmic (15)
- Saethox (3)
- RomanSraj (2)
- felixheptner (1)
- dpaetzel (1)
- hubanton (1)
- tniemeier (1)
Pull Request Authors
- RomanSraj (20)
- heidmic (9)
- felixheptner (3)
- tniemeier (2)
- dpaetzel (2)
- hubanton (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- hypothesis *
- joblib *
- matplotlib *
- mlflow *
- numpy *
- pandas *
- pytest *
- scikit-learn *
- scikit-optimize *
- scipy *
- tqdm *