astroautomata/SymbolicRegression.jl
Distributed High-Performance Symbolic Regression in Julia
What it solves
SymbolicRegression.jl allows users to discover analytic functional forms (symbolic expressions) that best fit a given dataset. Unlike standard machine learning models that act as "black boxes," this tool searches for human-readable mathematical equations that optimize a specific objective.
How it works
The library provides two primary interfaces:
- High-Level Interface: Uses
SRRegressorto fit and predict data. It integrates with the MLJ ecosystem for pipelines and tuning. It can handle multiple outputs viaMultitargetSRRegressor. - Low-Level Interface: Centered around the
equation_searchfunction, which takes a 2D array of features and a 1D array of targets to model.
Under the hood, expressions are represented as Node types (via DynamicExpressions.jl). The search process identifies a "Pareto front" of equations, representing the best trade-off between accuracy (loss) and complexity.
Who it’s for
Researchers and data scientists who need interpretable mathematical models rather than black-box predictions, and those working in scientific computing who want to extract physical laws from data.
Highlights
- Pareto Frontier: Identifies a set of dominating equations, allowing users to choose the best balance between simplicity and accuracy.
- Flexible Operators: Supports customizable binary and unary operators (e.g.,
+,-,*,cos,exp). - Symbolic Integration: Can export discovered equations to
SymbolicUtils.jlfor further mathematical simplification. - Interoperability: Provides a Python frontend via PySR and integrates with Julia's MLJ ecosystem.
相關
- 專案
- 專案
- 專案
- 專案
- 專案