Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
6a8e1ab
Gabe code update
ryanurbs Jun 15, 2025
0f8b461
Initial 4 Alternation Schemes
gabelip Aug 18, 2025
c2a33c5
Implemented Akshita Tree Init
gabelip Oct 10, 2025
9cfc6dd
one hot
khoiddinh Nov 14, 2025
17b4d1a
Merge pull request #3 from UrbsLab/khoi_categorical
gabelip Nov 23, 2025
5e3c137
Added Feedback Parameter
gabelip Dec 11, 2025
cec9b79
Fixed Reinitialization Bug and redundant stopping logic
gabelip Jan 2, 2026
b15e6bc
Fixed numerosity alternation issue and export_population issue
gabelip Jan 5, 2026
9dbf844
Merge Alternation Paper Code
gabelip Mar 5, 2026
341477b
deleted biohel+ripper code and folders not needed
raptor419 Mar 6, 2026
e772bbd
added readme files for BioHEL and RIPPER Scripts
raptor419 Mar 6, 2026
466b45b
Merge pull request #4 from UrbsLab/dev_harsh
raptor419 Mar 6, 2026
96a9c09
Commented out old tree settings and added bootstrap parameter
gabelip Mar 16, 2026
4609a07
Merge branch 'dev_gabe' of https://github.com/UrbsLab/heros into dev_…
gabelip Mar 16, 2026
2b4a928
Changed parameter names to underscores
gabelip Mar 16, 2026
5d8b2cc
Model Front Bug Fixes
Apr 8, 2026
a4f45f2
Updated job scripts
Apr 10, 2026
60682af
Merge branch 'main' into dev_gabe_to_merge
ryanurbs Apr 16, 2026
0ac653c
Minor updates
ryanurbs Apr 17, 2026
ee72e58
Update HEROS_Demo_Notebook.ipynb
ryanurbs Apr 17, 2026
0626a07
Reorganize and update hpc evaluation scripts
ryanurbs Apr 17, 2026
5bc9577
Minor jobs script fix
ryanurbs Apr 17, 2026
196d366
Reproducibility and basic performance improvements for tree initializ…
ryanurbs Apr 18, 2026
7ab2da6
Minor cleanup
ryanurbs Apr 18, 2026
6fb7673
update cluster scripts
ryanurbs Apr 18, 2026
5845196
Minor updates
ryanurbs Apr 19, 2026
fe9b916
Cluster script fixes
ryanurbs Apr 21, 2026
6f77c95
Package and requirements cleanup
ryanurbs Apr 21, 2026
ce66003
Finalized package fixes and notebook run
ryanurbs Apr 21, 2026
ffff968
Further file cleanup and fixes for tests and pypi actions.
ryanurbs Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:

strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]

steps:
- name: Checkout repository
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,5 @@ cython_debug/

#Project specific
output/
version.py
.DS_Store
version.py
1,867 changes: 916 additions & 951 deletions HEROS_Demo_Notebook.ipynb

Large diffs are not rendered by default.

32 changes: 25 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ To date, HEROS functionality has been validated on binary classification problem

A schematic detailing how the HEROS algorithm works is given below:

![alttext](https://github.com/UrbsLab/heros/blob/main/images/HEROS_1.0_Paper_Schematic_white_back.png?raw=true)
![alttext](https://github.com/UrbsLab/heros/blob/main/images/HEROS_1.1_Paper_Schematic_New4.png?raw=true)


***
Expand Down Expand Up @@ -188,6 +188,9 @@ The table below gives other HEROS hyperparameters that should generally be left

| Hyperparameter | Description | Type/Options | Default Value |
| -------------- | ----------- | ------------- | ------------- |
| *rule_pop_init* | Specifies rule population pre-initialization method | None, 'load','dt'| None |
| *alternate* | Number of phase alternations (i.e. Phase I to Phase II transitions) | int | 5 |
| *alternate_mode* | Phase alternation strategy | 'equal', None | 'equal' |
| *beta* | Learning parameter - used in calculating average match set size (Phase I) | float | 0.2 |
| *theta_sel* | The fraction of the correct set to be included in tournament selection (Phases I & II) | float | 0.5 |
| *cross_prob* | The probability of applying crossover in rule discovery with the genetic algorithm (Phases I & II) | float | 0.8 |
Expand Down Expand Up @@ -219,7 +222,7 @@ This last table gives hyperparameters that are 'in-development' and should be le
| *outcome_type* | Defines the type of outcome in the dataset | 'class','quant' | 'class' |
| *fitness_function* | Defines the Phase I fitness function used by HEROS. The 'accuracy' option should only be used for clean-signal problems. | 'accuracy','pareto' | 'pareto' |
| *feat_track* | Feature tracking strategy applied | None, 'add','wh','end' | None |
| *rule_pop_init* | Specifies rule population pre-initialization method | None, 'load','dt'| None |
| *feedback* | Feedback strategy used between phases when alternation is applied | Bool | False |

### fit() Parameters
In addition to the typical *X* and *y* parameters for HEROS's fit function users can utilize the following fit() parameters:
Expand Down Expand Up @@ -262,13 +265,26 @@ Most recently, in 2024, we released [Survival-LCS](https://github.com/UrbsLab/su
***
<a id="item-seven"></a>
## Citing HEROS
If you use HEROS in a scientific publication, cite the following paper:
If you use HEROS in a scientific publication, cite the following paper(s):

Gabe Lipschutz-Villa, Harsh Bandhey, Ruonan Yin, Malek Kamoun, Ryan Urbanowicz. 2025. [Rule-based Machine Learning: Separating Rule and Rule-Set Pareto-Optimization for Interpretable Noise-Agnostic Modeling](https://dl.acm.org/doi/10.1145/3712256.3726461) GECCO '25: Proceedings of the Genetic and Evolutionary Computation Conference. 407-415.

BibTeX entry:
```bibtex
Not yet available
@inproceedings{lipschutz2025rule,
title={Rule-based Machine Learning: Separating Rule and Rule-Set Pareto-Optimization for Interpretable Noise-Agnostic Modeling},
author={Lipschutz-Villa, Gabriel and Bandhey, Harsh and Yin, Ruonan and Kamoun, Malek and Urbanowicz, Ryan},
booktitle={Proceedings of the Genetic and Evolutionary Computation Conference},
pages={407--415},
year={2025}
}
```

Gabe Lipschutz-Villa, Harsh Bandhey, Khoi Dinh, Michael Heider, Malek Kamoun, Ryan Urbanowicz. 2026. [Phase-Alternation and Tree-Initialization to Facilitate Interpretable Rule-based Machine Learning](https://dl.acm.org/doi/10.1145/3712256.3726461) GECCO '26: Proceedings of the Genetic and Evolutionary Computation Conference.(In Press)

BibTeX entry:
```bibtex
Not Yet Available
```

***
Expand All @@ -295,9 +311,11 @@ The study was supported by Cedars Sinai Medical Center and NIH grants R01 AI1730

### Code Contributors
* Ryan Urbanowicz - Developed algorithm concepts, implemented algorithm, led debugging and evaluation
* Gabriel Lipschutz-Villa - Prototyped implementation of Phase II, model initialization strategies, and phase alternation (in development)
* Harsh Bandhey - Prototyped implementation of random forest rule initialization (in development)
* Khoi Dinh - Prototyped implementation of model interpretation visualization
* Gabriel Lipschutz-Villa - Prototyped implementation of Phase II, model initialization strategies, and phase alternation
* Harsh Bandhey - Prototyped implementation of random forest rule initialization
* Akshita Islam - Further prototyped random forest rule initialization
* Khoi Dinh - Prototyped implementation of model interpretation visualization, and contributions to tree-initialization and LLM explanation translator
* Ruonan Yin - Developed strategy for calculating distance from the rule-pareto front for Phase I rule fitness
* Robert Zhang - Prototyped strategy for rule batch-learning (adapted for HEROS)


Loading
Loading