Update backend: x^y
instead of abs(x)^y
, and high-precision constants
#191
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This updates the backend to v0.12, which includes a couple of changes:
abs(x)^y
tox^y
. Expressions using these operators will now simply avoid cases where their output is NaN. This avoids letting the search exploit weird functional forms which one might wish to not use.PySRRegressor(precision=64)
, the constants will also be 64-bit precision. As a side effect, this also increases the speed of evaluation, since there is type stability.This also sets the default parsimony to 0.0. I felt like it makes a lot of assumptions about the dataset scale to set any value for the default parsimony, so it's better to just leave the default turned off. The search will still find simple expressions; but it will not be as biased towards them, especially when the baseline loss is large.