Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi armed bandits, solving some issues, and more #59

Open
wants to merge 146 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
16392eb
Fixed core dump in average_precision_score. exposing scorer to python…
gAldeia Jun 14, 2024
937a710
Shuffle validation split option. data types as argument in Dataset
gAldeia Jun 19, 2024
a9ea589
Daniel now has a github account!
gAldeia Jun 19, 2024
4f161c1
Storing parent fitness for making it easy to use MABs
gAldeia Jun 19, 2024
5bb2a2d
implemented structure for having bandits in brush
gAldeia Jun 19, 2024
0ed4b78
Bug fix when writing to rewards. Implemented calc_reward
gAldeia Jun 20, 2024
21dd880
Templating bandits
gAldeia Jun 21, 2024
fb61282
Updated how bandits work. Finished implementing MAB for variation
gAldeia Jun 21, 2024
013cfaf
Fixed missing symbols in python wrapper
gAldeia Jun 24, 2024
a1bc0d0
Improved bandit class. starting to implement thompson sampling. new t…
gAldeia Jun 24, 2024
b2ac374
weights_init as parameter. changing how we initialize engine
gAldeia Jun 25, 2024
517da75
Bandit is now working, but needs improvements. Changed several interf…
gAldeia Jun 25, 2024
6245f53
updated cpp tests
gAldeia Jun 25, 2024
e4e8473
Fixed average_precision score not working properly
gAldeia Jun 26, 2024
dd808ac
Fixed crash when logistic was not in functions
gAldeia Jun 26, 2024
01f3ff3
updated notebookx
gAldeia Jun 26, 2024
e508cbc
Bandits notebook
gAldeia Jun 26, 2024
004ff7a
linear complexity objective (alternative to the recursive version)
gAldeia Jun 26, 2024
4bb9527
fixed incomplete instruction
gAldeia Jul 5, 2024
c344fca
Updated example to show how to access size, depth, and complexity
gAldeia Jul 6, 2024
5ed2fc3
Fixed boost-cpp version (newer version is breaking)
gAldeia Jul 7, 2024
3194b59
interface to select parent selection and pop survival methods
gAldeia Jul 7, 2024
675ce91
updated guide to show how to access archive in saving_loading_populat…
gAldeia Jul 7, 2024
0d0d58a
Install fail was actually due to gcc version. fixed it until we finis…
gAldeia Jul 7, 2024
c102bb6
Removed sufix added while testing install locally
gAldeia Jul 7, 2024
03476d8
Option to print the search space or get a string with the output
gAldeia Jul 8, 2024
d003203
Using shuffle split. Better print for offset
gAldeia Jul 8, 2024
9368414
OffsetSum starts with zero offset
gAldeia Jul 8, 2024
a2c9f4f
MeanLabel uses the most frequent y value in classification tasks
gAldeia Jul 10, 2024
5d2f057
Implemented thompson sampling correctly
gAldeia Jul 23, 2024
ec59c5a
Fixing average_precision_score metric
gAldeia Jul 24, 2024
72e492d
GOD I FIXED THE BUG WHERE FIXED NODES WOULD DISAPPEAR
gAldeia Jul 25, 2024
8e5146e
Fixed test not working when root is weighted
gAldeia Jul 25, 2024
c8890d5
Fixed MAD not working with average_precision_score
gAldeia Jul 29, 2024
0fad21e
Updated docstrings for lexicase and objectives
gAldeia Jul 29, 2024
8b1da3f
Improving readability of nsga2 crowd dist
gAldeia Jul 29, 2024
f7f8994
Removed bad line
gAldeia Jul 29, 2024
59137f7
Just unique individuals in archive when saving the entire pop
gAldeia Jul 29, 2024
bbf5f06
Complexity will ignore weights if it does not affect predictions
gAldeia Jul 29, 2024
eaba775
dynamic bandit implemented
gAldeia Jul 29, 2024
82133ea
Docstrings
gAldeia Jul 29, 2024
fc38023
updated example notebook with MABs
gAldeia Jul 29, 2024
72fd367
Plotting the pareto front of archive
gAldeia Jul 29, 2024
d530c19
Showing the population as archive
gAldeia Jul 29, 2024
8cd56b3
Updated output of notebook
gAldeia Jul 29, 2024
00e89cd
Serialization of entire estimator with pickle*
gAldeia Jul 30, 2024
0bfc7e4
Fixed missalign between docs and default values
gAldeia Jul 30, 2024
1a7ae95
Comments
gAldeia Jul 30, 2024
c4bd2ef
Properly reading booleans represented as 0 or 1
gAldeia Jul 30, 2024
8964234
Weights off at root of classification programs by default
gAldeia Aug 2, 2024
1bf8926
Fixed weight being displayed on the edge of SplitBest nodes
gAldeia Aug 2, 2024
dd10584
Fixed dynamic getting stuck. Changed MAB behavior for subtree mut.
gAldeia Aug 14, 2024
d4b87ef
Initializing operator bandit
not-gAldeia Aug 14, 2024
264bdd8
Stratified validation split if it is a classification problem
gAldeia Aug 19, 2024
2c37af7
Fixed bad logic with max_stall or max_time
gAldeia Aug 19, 2024
35dfb78
Fixed function set not initializing correctly with clf problems
gAldeia Aug 19, 2024
5a37674
Working on operator set bandit. new tests
gAldeia Aug 19, 2024
0e05f8f
Commenting out the couts
gAldeia Aug 19, 2024
555805d
Fixed update_best. removed some COUTs
gAldeia Aug 20, 2024
19170e2
Cleaning more couts
gAldeia Aug 20, 2024
9ccda17
Bandits for operators
gAldeia Aug 20, 2024
21377ee
Fixes
gAldeia Aug 20, 2024
f29ab5a
Re-run all notebooks
gAldeia Aug 20, 2024
c0e0ec8
Accuracy metric. Fixed hall of fame when merging fronts of multiple i…
gAldeia Sep 3, 2024
ed75c0a
New test to assess if accuracy metric is working
gAldeia Sep 3, 2024
839b431
Updated type annotations
gAldeia Sep 3, 2024
a9a10d0
Better interface for fully loading individuals from archive
gAldeia Sep 4, 2024
0c09719
Balanced accuracy
gAldeia Sep 12, 2024
d9a075f
Implementation of class weights in accuracy
gAldeia Sep 12, 2024
80edb4f
Fixed validation data being used in sel/surv steps
gAldeia Sep 12, 2024
e5eb9a7
TODO to remember to actually optimize it
gAldeia Sep 12, 2024
df6960b
Fix bad usage of update_fitness
gAldeia Sep 13, 2024
d8cc1ee
Fixed balanced_accuracy option not working
gAldeia Sep 13, 2024
70c6277
Fixed archive using validation score
gAldeia Sep 13, 2024
c5bd17a
Fixed models being re-fitted when searching for the best ind
gAldeia Sep 13, 2024
b90684b
Cleaning
gAldeia Sep 13, 2024
616f8a2
Calculating validation score for log stats
gAldeia Sep 13, 2024
341b856
Fixed meanLabel causing segfault during weight optimizer
gAldeia Sep 15, 2024
cc414e3
Stop doing batch rewards for bandits
gAldeia Sep 17, 2024
3da63de
Interface for giving context to MABs. Linear Bandit files
gAldeia Sep 17, 2024
bbfa112
Added `choose` method to bandits
gAldeia Sep 19, 2024
f3c8383
update needs to know the context for some learners
gAldeia Sep 19, 2024
373cb39
Fixed bug in calculating rewards. improved how we pass context to MABs
gAldeia Sep 19, 2024
6d6bc87
variation returns the context
gAldeia Sep 19, 2024
b31d310
Improved variation attempts. Fixed segfault in subtree mutation.
gAldeia Sep 23, 2024
df17aa3
Fixed archive not working with linear complexity
gAldeia Sep 23, 2024
8a1d2f4
Updated python to work with new variation interface
gAldeia Sep 23, 2024
0e0e078
Fixed best individual being overwritten by something worse
gAldeia Sep 24, 2024
f6f4480
Passing context to bandits when sampling terminals
gAldeia Sep 24, 2024
96cf141
Using bandits to sample from the search space directly
gAldeia Sep 25, 2024
ce90846
(finally) fixed best individual being replaced by something worse
gAldeia Sep 25, 2024
904d317
get_context implemented
gAldeia Sep 25, 2024
52368f3
Serializing mig prog
gAldeia Sep 26, 2024
57abba0
Linear contextual bandit. Time to debug
gAldeia Sep 26, 2024
a069b9c
Fixed missing include in bindings
gAldeia Sep 26, 2024
1e9ec26
Fixed probabilities not being updated by the bandits
gAldeia Sep 26, 2024
819e2a8
Improving tests
gAldeia Sep 27, 2024
5266b8c
Fixed linear bandit
gAldeia Sep 27, 2024
9aa9d44
Mamba migration
gAldeia Sep 27, 2024
83835f2
Removed cout statements
gAldeia Sep 27, 2024
169304a
Fixed bad logic creating context with different data types
gAldeia Oct 1, 2024
1d9de53
Fixed constant with zero weights
gAldeia Oct 2, 2024
7429ba6
Fixed segfault by mismatching context sizes
gAldeia Oct 2, 2024
4ccf09c
Fixed bandit using same probability for all arms
gAldeia Oct 2, 2024
fb776c4
Fixed wrong context being used to update crossover
gAldeia Oct 3, 2024
47f7965
Removed mean label. Starting to debug cx being always used
gAldeia Oct 3, 2024
455ae4c
Removed cout statements
gAldeia Oct 3, 2024
6483a00
(finally?) fixed update best not picking the best individual
gAldeia Oct 4, 2024
7283739
Normalizing probabilities. avoiding unecessary context elements
gAldeia Oct 6, 2024
4acf9e6
Better normalization of bandit probabilities
gAldeia Oct 7, 2024
8b80739
Removed cout statements
gAldeia Oct 7, 2024
133a95e
Trying to improve linear bandit performance
gAldeia Oct 8, 2024
f79067e
Fixed best validation score not using best_individual
gAldeia Oct 17, 2024
eba313f
Improved rewards and context
gAldeia Oct 17, 2024
f7cc737
re-run doc notebooks
gAldeia Oct 17, 2024
e754c78
Bad default value for shuffle_split
gAldeia Oct 21, 2024
6b4ebc0
Comments
gAldeia Oct 21, 2024
b57bd46
Improving json serialization
gAldeia Oct 21, 2024
9bc1d73
NSGA works globally insead than locally for each island
gAldeia Oct 21, 2024
dfa2883
Fixed bug when saving and loading populations with use_arch=False
gAldeia Oct 23, 2024
af44cec
Updated outputs. Example on how to save checkpoints on saving_loading…
gAldeia Oct 23, 2024
82995a2
Improved get_model("tree") and node labels
gAldeia Oct 28, 2024
10a4caa
Hiding threshold if equals to zero in tree representation
gAldeia Oct 29, 2024
9243121
Checking arg dtype for pretty print of split best operators on trees
gAldeia Oct 30, 2024
93e0a45
MeanLabel only for classification problems. Better weight initializat…
gAldeia Oct 30, 2024
f7505ef
Updated notebook outputs
gAldeia Oct 30, 2024
e2728b9
Fixed validation data leakage on lexicase selection
gAldeia Nov 5, 2024
e68be7a
Brush now works with max_gens=0. Improved c++ operations, slightly fa…
gAldeia Nov 5, 2024
10af3c1
Serializing population
gAldeia Nov 7, 2024
2fd7c39
Improving display of split best when splitting on boolean features
gAldeia Nov 7, 2024
2d2aada
Class weights for classification tasks
gAldeia Nov 7, 2024
6143ef0
Ensuring the array starts empty in e-lexicase cases
gAldeia Nov 8, 2024
b392994
Loaded population should be initial point as it is. stop reseting
gAldeia Nov 8, 2024
3f46f2a
Renamed objective `error` to `scorer`
gAldeia Nov 8, 2024
b0b485d
Updated default values for size and depth
gAldeia Nov 8, 2024
2451619
Class weights being initialized with only training partition, not val…
gAldeia Nov 8, 2024
691aa04
Fixed sample weights not working in lexicase
gAldeia Nov 8, 2024
650b42a
Updated class weight calculation
gAldeia Nov 13, 2024
37124ec
Updated log loss to behave like sklearns implementation with weights
gAldeia Nov 13, 2024
9796ee1
Updated class weights test
gAldeia Nov 13, 2024
fc524bf
operator[] for population; partial_fit() for BrushEstimators
gAldeia Nov 13, 2024
c130602
Fixed potential data leak: validation partition was being used during…
gAldeia Nov 16, 2024
9deb673
Last commit fixed null loss caused by inf/nan during fit. update note…
gAldeia Nov 16, 2024
4efb83d
New approach to use predictions as context
gAldeia Dec 5, 2024
3f3bdbb
Updated deap estimator with new Variator interface
gAldeia Dec 5, 2024
e08fb6c
Interactive pareto plots
gAldeia Dec 6, 2024
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
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
uses: actions/checkout@v3
-
name: Mamba Environment
uses: mamba-org/provision-with-micromamba@main
uses: mamba-org/setup-micromamba@v1
with:
environment-file: environment.yml
cache-env: true
cache-environment: true
cache-downloads: true
-
name: Install
Expand Down Expand Up @@ -53,10 +53,10 @@ jobs:
uses: actions/checkout@v3
-
name: Mamba Environment
uses: mamba-org/provision-with-micromamba@main
uses: mamba-org/setup-micromamba@v1
with:
environment-file: environment.yml
cache-env: true
cache-environment: true
cache-downloads: true
-
name: Install
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Special thanks to these contributors:
- Guilherme Aldeia ([@gAldeia](https://github.com/gAldeia))
- Fabricio Olivetti de Franca ([@folivetti](https://github.com/folivetti))
- Zongjun Liu ([@msnliu](https://github.com/msnliu))
- Daniel S. Herman
- Daniel S. Herman ([@hermands](https://github.com/hermands))


## Acknowledgments
Expand Down Expand Up @@ -68,7 +68,7 @@ Install the brush environment:

```
cd brush
conda env create
conda env create -f environment.yml
```

Install brush:
Expand Down
633 changes: 471 additions & 162 deletions docs/guide/archive.ipynb

Large diffs are not rendered by default.

8,030 changes: 8,030 additions & 0 deletions docs/guide/bandits.ipynb

Large diffs are not rendered by default.

3,146 changes: 3,146 additions & 0 deletions docs/guide/interactive_archive.ipynb

Large diffs are not rendered by default.

Loading
Loading