Releases: MilesCranmer/PySR
Releases · MilesCranmer/PySR
v0.16.1
What's Changed
- Automated update to backend: v0.22.2 by @MilesCranmer in #404
Backend changes
- Expand aqua test suite (MilesCranmer/SymbolicRegression.jl#246) (@MilesCranmer)
- Return more descriptive errors for poorly defined operators (MilesCranmer/SymbolicRegression.jl#247) (@MilesCranmer)
Backend Changelog: Diff since v0.22.1
PySR Changelog: v0.16.0...v0.16.1
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
v0.15.4
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 settingconstraints
, 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.
- This seems like the most common configuration mistake in PySR: using the
Full Changelog: v0.15.3...v0.15.4
v0.15.3
What's Changed
- Use unicode in printing without needing to decode by @MilesCranmer in #398
Full Changelog: v0.15.2...v0.15.3
v0.15.2
What's Changed
- Ensure files are read as utf-8 on all operating systems by @MilesCranmer in #396
Full Changelog: v0.15.1...v0.15.2
v0.15.1
What's Changed
- Fix compat with old scikit-learn versions by @MilesCranmer in #393
Full Changelog: v0.15.0...v0.15.1
v0.15.0
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)
- Allows you to (softly) constrain discovered expressions to those that respect physical dimensions
- Specify
X_units
andy_units
(see https://astroautomata.com/PySR/examples/#10-dimensional-constraints)
- 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 thanx1
. y =
is printed at the start (ory₁ =
for multi-output). With units this becomes, for example,y[kg] =
.
- By default, only 5 significant digits are now printed, rather than the entire float. You can change this with the
- 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
- Easier to convert from MLJ interface to SymbolicUtils (via
- Dimensional analysis (228)
Backend Changelog: MilesCranmer/SymbolicRegression.jl@v0.20.0...v0.21.0
PySR Changelog: v0.14.3...v0.15.0
v0.14.3
What's Changed
- Self-repairing PyCall installation to lower entrance barrier for new users by @MilesCranmer and @mkitti in #363
Full Changelog: v0.14.2...v0.14.3
v0.14.2
What's Changed
- Recommend user install with
--enable-shared
by @MilesCranmer in #352 - Automated update to backend: v0.19.1 by @MilesCranmer in #355
Backend
Merged pull requests on backend:
- CompatHelper: bump compat for StatsBase to 0.34, (keep existing compat) (MilesCranmer/SymbolicRegression.jl#202) (@github-actions[bot])
- (Soft deprecation) change
varMap
tovariable_names
(MilesCranmer/SymbolicRegression.jl#219) (@MilesCranmer) - (Soft deprecation) rename
EquationSearch
toequation_search
(MilesCranmer/SymbolicRegression.jl#222) (@MilesCranmer) - Fix equation splitting for unicode variables (MilesCranmer/SymbolicRegression.jl#223) (@MilesCranmer)
Full Changelog: v0.14.1...v0.14.2
v0.14.1
What's Changed
- Automated update to backend: v0.19.0 by @MilesCranmer in #340
- ~30% faster startup time on first search (https://github.com/MilesCranmer/SymbolicRegression.jl/releases/tag/v0.19.0)
- Let user know when compilation is taking place by @MilesCranmer in #341
Full Changelog: v0.14.0...v0.14.1