Miles Cranmer

Results 356 issues of Miles Cranmer

PySR should be able to reuse parts of an equation. In theory, a PySR equation (`Node`) type could have a single subtree used by multiple parts of the expression, as...

feature (importance: high)

Can probably speed up the tree evaluation with these clever suggestions from @mkitti: https://discourse.julialang.org/t/faster-zeros-with-calloc/69860

feature (importance: low)

Operators should be default use NaNMath https://github.com/mlubin/NaNMath.jl, instead of my versions which simply map input to the valid domain like `log(abs(x))`. Since the evaluator already detects NaNs by default, this...

For example, say you would like to search for partial differential equations with genetic algorithms. You would define operators such as finite difference gradients, laplacians, or summations–and then search for...

feature (importance: mid)

It might be more intuitive to call an expression like so: ```julia options = Options(binary_operators=(+, -, *)) x1, x2 = Node("x1"), Node("x2") tree = x1 * x2 - x1 X...

feature (importance: low)

cc @kazewong This is an attempt to use `evalGradTreeArray` in the constant optimization. This function computes the explicit Zygote.jl-based derivatives of an expression with respect to its constants, so _in...

Right now, only operators which are already in `Base` are defined for `::Node` type automatically when declaring `Options`: https://github.com/MilesCranmer/SymbolicRegression.jl/blob/966026391b809f4642e7a93d873ee986737293ed/src/Options.jl#L446-L453 I'm not sure if this is necessary. It would be great...

feature (importance: low)

I would like for SymbolicRegression.jl to have a mode that is much more abstract in terms of what operators are allowed. e.g., vector/matrix, or even symbolic operations. This would enable...

It would be great if SymbolicRegression.jl supported differential operators. To implement this with minimal changes, you could have a single operator for each variable. For example, `unary_operators=(dx[1], dx[2])` would create...

feature (importance: low)

In the current code, using `batching=true` doesn't seem to get nearly as good a speedup as simply inputting a smaller dataset. This indicates either the random slicing is taking too...