Skip to content

v2.0.0a1

Pre-release
Pre-release

Choose a tag to compare

@MilesCranmer MilesCranmer released this 08 Oct 22:01
b56c0fe

This is an alpha release of v2.0.0. There will still be changes before the release of v2.0.0, likely including new hyperparameter defaults.

What's Changed

Major changes

Multiple features (update backend to 2.0) (#999)

This PR updates the backend to SymbolicRegression.jl 2.0.0-alpha.8 and exposes several major new features:

  • N-ary operators: Support for operators with arbitrary arity (not just unary/binary)
    • Added 3-arity operators: fma (fused multiply-add), clamp, etc.
    • This can be used via a new operators parameter dictionary: operators={1: ["sin"], 2: ["+", "*"], 3: ["clamp"]}
  • Equation guesses: Pass initial equation guesses to guide the search using the guesses parameter to fit
    • For example: guesses=["sin(x0 * 2.1 - 0.5)", "x0 * 3.0 + x2"] provides two guesses
    • Control injection rate with fraction_replaced_guesses
  • Advanced autodiff backends: Experimental support for Mooncake.jl and Enzyme.jl
    • Enzyme.jl support via autodiff_backend="Enzyme" (fragile/experimental)
    • Mooncake.jl (experimental - currently disabled pending upstream fix)
  • Feature node mutation: New mutation operator that directly modifies which features are used
    • Control mutation weight with weight_mutate_feature
  • Worker management:
    • worker_imports: specify Julia packages to import on workers
    • worker_timeout: control timeout for worker processes

Automatic batching for big data (#1045)

Other changes

Full Changelog: v1.5.9...v2.0.0a1