Skip to content

Releases: MilesCranmer/PySR

v0.16.1

10 Aug 21:44
a58d992
Compare
Choose a tag to compare

What's Changed

Backend changes

Backend Changelog: Diff since v0.22.1
PySR Changelog: v0.16.0...v0.16.1

v0.16.0

07 Aug 03:18
245512a
Compare
Choose a tag to compare

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

v0.15.4

04 Aug 22:13
c3b662d
Compare
Choose a tag to compare

What's Changed

  • Warn user when using power laws by @MilesCranmer in #399
    • This seems like the most common configuration mistake in PySR: using the ^ operator without setting constraints, leading to extremely complex expressions with poor generalization properties. Thus, this warning will let the user know about it if they set up ^ without constraints.

Full Changelog: v0.15.3...v0.15.4

v0.15.3

02 Aug 22:20
bd5fc10
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.15.2...v0.15.3

v0.15.2

01 Aug 22:23
228d437
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.15.1...v0.15.2

v0.15.1

30 Jul 20:38
3a9acd3
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.15.0...v0.15.1

v0.15.0

28 Jul 22:30
563d8eb
Compare
Choose a tag to compare

What's Changed

  • Backend version update in #389. Includes:
    • Dimensional analysis (see docs examples page)
    • Printing improvements
    • Many misc changes (see below)

Backend Changes

  • MilesCranmer/SymbolicRegression.jl#228 and MilesCranmer/SymbolicRegression.jl#230 and MilesCranmer/SymbolicRegression.jl#231 and MilesCranmer/SymbolicRegression.jl#235
    • Dimensional analysis (228)
    • Printing improvements (228)
      • By default, only 5 significant digits are now printed, rather than the entire float. You can change this with the print_precision option.
      • In the default printed equations, x₁ is used rather than x1.
      • y = is printed at the start (or y₁ = for multi-output). With units this becomes, for example, y[kg] =.
    • Misc
      • Easier to convert from MLJ interface to SymbolicUtils (via node_to_symbolic(::Node, ::AbstractSRRegressor)) (228)
      • Improved precompilation (228)
      • Various performance and type stability improvements (228)
      • Inlined the recording option to speedup compilation (230)
      • Updated Julia tutorials to use MLJ rather than low-level interface (228)
      • Moved JSON3.jl to extension (231)
      • Use PackageExtensionsCompat.jl over Requires.jl (231)
      • Require LossFunctions.jl to be 0.10 (231)
      • Batching inside optimization loop + batching support for custom objectives by (235)
      • Update docker defaults: Julia=1.9.1; Python=3.10.11 in #371

Backend Changelog: MilesCranmer/SymbolicRegression.jl@v0.20.0...v0.21.0

PySR Changelog: v0.14.3...v0.15.0

v0.14.3

04 Jul 16:37
2c4d7e9
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.14.2...v0.14.3

v0.14.2

20 Jun 14:44
bfea5b8
Compare
Choose a tag to compare

What's Changed

Backend

Diff since v0.19.0

Merged pull requests on backend:

Full Changelog: v0.14.1...v0.14.2

v0.14.1

28 May 18:32
d823f99
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.14.0...v0.14.1