astroautomata/PySR
High-Performance Symbolic Regression in Python and Julia
What it solves
PySR solves the problem of finding interpretable, analytic equations that fit a dataset. Unlike standard machine learning models that act as "black boxes," PySR performs symbolic regression to discover the actual mathematical expressions that optimize a specific objective.
How it works
PySR uses a high-performance search engine written in Julia (SymbolicRegression.jl) accessible via a Python interface. It searches for symbolic expressions by performing hundreds of thousands of mutations and evaluations. It can also be used for "Symbolic Distillation," where it converts a complex neural network into a simpler analytic equation to make the network's behavior interpretable.
Who it’s for
It is designed for researchers and data scientists who need explicit mathematical formulas rather than just predictions, particularly those working with low-dimensional datasets or seeking to interpret deep neural networks.
Highlights
- High Performance: Engineered for speed and configurability with a multithreaded Julia backend.
- Flexible Operators: Supports custom binary and unary operators with specific complexity constraints.
- Interoperable: Exports learned equations into multiple formats, including SymPy, JAX, and PyTorch.
- Scikit-learn Style: Provides a familiar
PySRRegressorinterface for easy integration into Python workflows.
Related
- Project
- Project
- Project
- Project
- Project