Skip to content

v0.16.0

Compare
Choose a tag to compare
@MilesCranmer MilesCranmer released this 07 Aug 03:18
· 607 commits to master since this release
245512a

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.
  • (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 uses Node() explicitly to build expressions, so did not rely on method invalidation at any point.

Backend Changelog: MilesCranmer/SymbolicRegression.jl@v0.21.5...v0.22.1

PySR Changelog: v0.15.4...v0.16.0