v0.16.0
What's Changed
- Backend version update in #400. Includes:
- Algorithmic improvements to batching
- Code quality improvements (some method ambiguities, old exports)
Backend changes
- (Algorithm modification) Evaluate on fixed batch when building per-population hall of fame in MilesCranmer/SymbolicRegression.jl#243
- This only affects searches that use
batching=true
. It results in improved searches on large datasets, as the "winning expression" is not biased towards an expression that landed on a lucky batch. - Note that this only occurs within an iteration. Evaluation on the entire dataset still happens at the end of an iteration and those loss measurements are used for absolute comparison between expressions.
- This only affects searches that use
- (Algorithm modification) Deprecates the
fast_cycle
feature in MilesCranmer/SymbolicRegression.jl#243. Use of this parameter will have no effect.- Was removed to ease maintenance burden and because it doesn't have a use. This feature was created early on in development as a way to get parallelism within a population. It is no longer useful as you can parallelize across populations.
- Add Aqua.jl to test suite in MilesCranmer/SymbolicRegression.jl#245 for code quality control
- CompatHelper: bump compat for DynamicExpressions to 0.12, (keep existing compat) in MilesCranmer/SymbolicRegression.jl#242
- Is able to avoids method invalidations when using operators to construct expressions manually by modifying a global constant mapping of operator => index, rather than
@eval
-ing new operators. - This only matters if you were using operators to build trees, like
x1 + x2
. All internal search code usesNode()
explicitly to build expressions, so did not rely on method invalidation at any point.
- Is able to avoids method invalidations when using operators to construct expressions manually by modifying a global constant mapping of operator => index, rather than
Backend Changelog: MilesCranmer/SymbolicRegression.jl@v0.21.5...v0.22.1
PySR Changelog: v0.15.4...v0.16.0