Skip to content

Releases: MilesCranmer/SymbolicRegression.jl

v0.22.1

07 Aug 02:02
5c95478
Compare
Choose a tag to compare

SymbolicRegression v0.22.1

Diff since v0.22.0

v0.22.0

07 Aug 00:23
ee52cc7
Compare
Choose a tag to compare

What's Changed

  • (Algorithm modification) Evaluate on fixed batch when building per-population hall of fame in #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 #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 #245
  • CompatHelper: bump compat for DynamicExpressions to 0.12, (keep existing compat) in #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.
  • Renames some parameters in #234
    • npop => population_size
    • npopulations => populations
    • This is just to match PySR's API. Also note that the deprecated parameters will still work, and there will not be a warning unless you are running with --depwarn=yes.
  • Ensure that predict uses units if trained with them in #244
    • If you train on a dataset that has physical units, this ensures that MLJ.predict will output predictions in the same units. Before this change, MLJ.predict would return numerical arrays with no units.

Full Changelog: v0.21.5...v0.22.0

v0.21.5

02 Aug 02:32
969baf8
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.21.4...v0.21.5

v0.21.4

01 Aug 13:38
286c4c6
Compare
Choose a tag to compare

SymbolicRegression v0.21.4

Diff since v0.21.3

Closed issues:

  • [Cleanup] Better implementation of batching (#88)

Merged pull requests:

  • CompatHelper: bump compat for LossFunctions to 0.11, (keep existing compat) (#238) (@github-actions[bot])
  • Enable compatibility with MLJTuning.jl (#239) (@MilesCranmer)

v0.21.3

27 Jul 04:25
ae5b57b
Compare
Choose a tag to compare

What's Changed

  • Batching inside optimization loop + batching support for custom objectives by @MilesCranmer in #235

Full Changelog: v0.21.2...v0.21.3

v0.21.2

23 Jul 00:55
41edab5
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.21.1...v0.21.2

v0.21.1

22 Jul 06:24
7197c47
Compare
Choose a tag to compare

What's Changed

  • Update DynamicExpressions.jl version by @MilesCranmer in #232
    • Makes Zygote.jl an extension

Full Changelog: v0.21.0...v0.21.1

v0.21.0

22 Jul 00:01
dc7c2d4
Compare
Choose a tag to compare

What's Changed

  • #228 and #230 and #231
    • Dimensional analysis (#228)
      • Allows you to (softly) constrain discovered expressions to those that respect physical dimensions
      • Pass vectors of DynamicQuantities.jl Quantity type to the MLJ interface.
      • OR, specify X_units, y_units to low-level equation_search.
    • 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 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)

Full Changelog: v0.20.0...v0.21.0

v0.20.0

05 Jul 14:15
9935579
Compare
Choose a tag to compare

SymbolicRegression v0.20.0

Diff since v0.19.1

Closed issues:

  • [Feature]: MLJ integration (#225)

Merged pull requests:

v0.19.1

19 Jun 06:36
fe71e63
Compare
Choose a tag to compare

SymbolicRegression v0.19.1

Diff since v0.19.0

Merged pull requests:

  • CompatHelper: bump compat for StatsBase to 0.34, (keep existing compat) (#202) (@github-actions[bot])
  • (Soft deprecation) change varMap to variable_names (#219) (@MilesCranmer)
  • (Soft deprecation) rename EquationSearch to equation_search (#222) (@MilesCranmer)
  • Fix equation splitting for unicode variables (#223) (@MilesCranmer)