MilesCranmer commited on
Commit
d7b393d
1 Parent(s): dd17964

Update TODO

Browse files
Files changed (1) hide show
  1. README.md +5 -3
README.md CHANGED
@@ -289,14 +289,16 @@ pd.DataFrame, Results dataframe, giving complexity, MSE, and equations
289
  - [x] Declaration of the weights array every iteration
290
  - [x] Sympy evaluation
291
  - [x] Threaded recursion
 
292
  - [ ] Add true multi-node processing, with MPI, or just file sharing. Multiple populations per core.
293
  - Ongoing in cluster branch
 
 
294
  - [ ] Consider allowing multi-threading turned off, for faster testing (cache issue on travis). Or could simply fix the caching issue there.
295
  - [ ] Dump scores alongside MSE to .csv (and return with Pandas).
296
  - [ ] Consider returning only the equation of interest; rather than all equations.
297
  - [ ] Use @fastmath
298
  - [ ] Refresh screen rather than dumping to stdout?
299
- - [ ] Test suite
300
  - [ ] Add ability to save state from python
301
  - [ ] Calculate feature importances based on features we've already seen, then weight those features up in all random generations.
302
  - [ ] Calculate feature importances of future mutations, by looking at correlation between residual of model, and the features.
@@ -309,8 +311,6 @@ pd.DataFrame, Results dataframe, giving complexity, MSE, and equations
309
  - [ ] Use NN to generate weights over all probability distribution conditional on error and existing equation, and train on some randomly-generated equations
310
  - [ ] Add GPU capability?
311
  - Not sure if possible, as binary trees are the real bottleneck.
312
- - [ ] Performance:
313
- - Use an enum for functions instead of storing them?
314
  - [ ] Idea: use gradient of equation with respect to each operator (perhaps simply add to each operator) to tell which part is the most "sensitive" to changes. Then, perhaps insert/delete/mutate on that part of the tree?
315
  - [ ] For hierarchical idea: after running some number of iterations, do a search for "most common pattern". Then, turn that subtree into its own operator.
316
  - [ ] Additional degree operators?
@@ -321,4 +321,6 @@ pd.DataFrame, Results dataframe, giving complexity, MSE, and equations
321
  - [ ] Try Memoize.jl instead of manually caching.
322
  - [ ] Try threading over population. Do random sort, compute mutation for each, then replace 10% oldest.
323
  - [ ] Call function to read from csv after running
 
 
324
 
 
289
  - [x] Declaration of the weights array every iteration
290
  - [x] Sympy evaluation
291
  - [x] Threaded recursion
292
+ - [x] Test suite
293
  - [ ] Add true multi-node processing, with MPI, or just file sharing. Multiple populations per core.
294
  - Ongoing in cluster branch
295
+ - [x] Performance: - Use an enum for functions instead of storing them?
296
+ - Gets ~40% speedup on small test.
297
  - [ ] Consider allowing multi-threading turned off, for faster testing (cache issue on travis). Or could simply fix the caching issue there.
298
  - [ ] Dump scores alongside MSE to .csv (and return with Pandas).
299
  - [ ] Consider returning only the equation of interest; rather than all equations.
300
  - [ ] Use @fastmath
301
  - [ ] Refresh screen rather than dumping to stdout?
 
302
  - [ ] Add ability to save state from python
303
  - [ ] Calculate feature importances based on features we've already seen, then weight those features up in all random generations.
304
  - [ ] Calculate feature importances of future mutations, by looking at correlation between residual of model, and the features.
 
311
  - [ ] Use NN to generate weights over all probability distribution conditional on error and existing equation, and train on some randomly-generated equations
312
  - [ ] Add GPU capability?
313
  - Not sure if possible, as binary trees are the real bottleneck.
 
 
314
  - [ ] Idea: use gradient of equation with respect to each operator (perhaps simply add to each operator) to tell which part is the most "sensitive" to changes. Then, perhaps insert/delete/mutate on that part of the tree?
315
  - [ ] For hierarchical idea: after running some number of iterations, do a search for "most common pattern". Then, turn that subtree into its own operator.
316
  - [ ] Additional degree operators?
 
321
  - [ ] Try Memoize.jl instead of manually caching.
322
  - [ ] Try threading over population. Do random sort, compute mutation for each, then replace 10% oldest.
323
  - [ ] Call function to read from csv after running
324
+ - [ ] Add function to plot equations
325
+ - [ ] Sort this todo list by priority
326