Skip to main content
Documentation

Symbolic Regression software: what exists and how to choose

Symbolic Regression searches for the formula behind a table of data, its form and its constants together. The software for it comes in four forms: libraries you program against, desktop applications, functions inside a larger system, and hosted services. This page lists what exists, says what each is for, and helps you decide, including when the answer is not Symbolic Regression at all, and when it is not us.
Reviewed 11 October 2026. Each description follows the tool's own public pages, linked from its name. We state what a tool is and what it needs, and we do not rank or score anyone. If something here is wrong or out of date, tell us and we will correct it.

First: is Symbolic Regression what you need?

Often it is not. Other kinds of tool answer other questions, and several of them answer theirs faster.
Your situationThe kind of toolExamples
One input, and you know the family of the curveCurve fitting. You pick the form, the tool works out its constants, in seconds.MATLAB Curve Fitting Toolbox, Origin, a trendline in a spreadsheet such as Excel
A hypothesis to test, with a study design behind itA statistics package. You specify the model, and it gives you the estimates and the tests that a journal or a reviewer expects.R, IBM SPSS Statistics, Stata, JMP
Predictions as accurate as possible, and nobody has to read the modelAutoML. It trains and tunes many kinds of model and returns the most accurate.H2O AutoML, auto-sklearn, AutoGluon, DataRobot
A trained model that you now have to explainExplanation methods applied to the model afterwards, or a model type built to be inspected.SHAP, LIME, InterpretML
A quick first look at a fileAn AI assistant that writes and runs code on the file you upload. An answer in seconds, good for exploring.
What happened, watched over timeA dashboard for totals, trends and breakdowns.Power BI
You want to build the analysis yourself, step by stepNotebooks and libraries.Jupyter, scikit-learn
Several inputs, no form you could name in advance, and the result has to be readableSymbolic Regression. The rest of this page.

Libraries you program against

The research community works with these. Most are open source, they run on your own machine, and they put the search in your hands. You write code to load the data, run the search and judge the result.
ToolWhat it is, in its own descriptionFormLicenceWhat you need
PySR, with SymbolicRegression.jlAn open-source tool for Symbolic Regression in Python, developed alongside the Julia library that does the search. It keeps the best expression found at each complexity and lets you select among them, and exports to LaTeX, SymPy, JAX and PyTorch.Python library and Julia package; runs on your own machineOpen source (Apache 2.0)Programming in Python; installed with pip or conda
Operon, with pyoperonA C++ framework for Symbolic Regression, with Python bindings and a scikit-learn interface in pyoperon. Its stated purpose is accurate and interpretable white-box models.C++ library and Python package; runs on your own machineOpen source (MIT)Programming in Python or C++
gplearnGenetic programming in Python with an interface modelled on scikit-learn, deliberately limited to Symbolic Regression problems. It offers a regressor, a classifier for two classes and a transformer that builds new inputs.Python library; runs on your own machineOpen source (BSD 3-Clause)Programming in Python, with scikit-learn
PySINDyA package for the sparse identification of nonlinear dynamical systems: from measurements over time it infers the governing differential equations. A method of its own for dynamical systems.Python library; runs on your own machineOpen source (MIT)Programming in Python; data recorded over time
AI FeynmanAn implementation of the AI Feynman method, a physics-inspired method for Symbolic Regression published by Udrescu and Tegmark. It returns expressions along a trade-off between error and complexity.Python package with compiled parts, for Linux and macOS; runs on your own machineOpen source (MIT)Programming in Python
FeynA Symbolic Regression package by Abzu that uses the QLattice to generate models.Python packageSee the publisherProgramming in Python

Desktop applications

For working without code, on your own computer.
ToolWhat it is, in its own descriptionFormLicenceWhat you need
TuringBotDesktop software for Symbolic Regression. It lists the best solution found for each size and exports solutions as Python, C or C++, LaTeX and plain text. It can also be run from the console and from Python.Desktop application for Windows, macOS and LinuxCommercial, with a free versionNo programming; a text or CSV file
HeuristicLabA framework for heuristic and evolutionary algorithms with a graphical user interface, developed by the Heuristic and Evolutionary Algorithms Laboratory. Symbolic Regression is one of the kinds of problem it covers.Desktop application on the Microsoft .NET FrameworkOpen source (GNU GPL 3)A desktop installation

Inside a larger system

If you already work in one of these systems, the capability is there.
ToolWhat it is, in its own descriptionFormLicenceWhat you need
FindFormula in the Wolfram LanguageA function that finds functions approximating your data, and reports a score, a complexity and an error for each.A function of the Wolfram LanguageCommercial, as part of the Wolfram LanguageThe Wolfram Language, for example in Mathematica
Eureqa models in DataRobotEureqa was developed commercially by Nutonian, which DataRobot acquired in 2017. Eureqa models are documented today as part of the DataRobot platform, where each run gives models along a trade-off between complexity and accuracy.A family of models inside the DataRobot platformCommercial, as part of DataRobotA DataRobot account
DataModelerSoftware by Evolved Analytics that builds on Mathematica. Its site describes transparent, exportable models.Software on top of MathematicaCommercialA Mathematica licence

Hosted services

Nothing to install. The search runs on the provider's servers, which also means that your data leaves your machine.
ToolWhat it is, in its own descriptionFormLicenceWhat you need
OccamA hosted server for the Model Context Protocol that discovers equations from numerical data. It offers runs of PySR and of SINDy to AI assistants.Hosted service, reached from an AI assistantCommercial, with a free tierAn AI assistant that speaks the Model Context Protocol
DiafuncA hosted platform: you upload a table and choose what to explain, and an automated analysis discovers one readable model per target and writes a full report around it. See below for what it is not.Hosted platform, in the browser, over an API and from the command lineCommercial, with free credits to startNo programming; a table in one of many formats

How to choose

You program, and you want control over the search. Take a library. PySR and Operon are open source and are both measured on SRBench, the public benchmark of the field.
You want to choose among candidates yourself. Several tools return a set of expressions, from short and rough to long and exact, and leave the choice to you. PySR, TuringBot, AI Feynman and the Eureqa models in DataRobot describe their results this way.
You want a desktop application and no code. TuringBot and HeuristicLab.
Your data is a system changing over time, and you want its differential equations. PySINDy is built for exactly that.
Your data must not leave your machine. A library or a desktop application. A hosted service, ours included, is not for you.
You want to change the method or run it on your own hardware. An open-source library. Ufinq, the technology behind Diafunc, is closed source.
You want one answer with the evidence around it, and no code. That is what Diafunc is for.

Where Diafunc stands, and where it does not

Diafunc is not a library. You upload a table, choose the column to explain and launch. An automated analysis discovers one readable model per target, measures it on rows the search never saw, compares it with simple baselines, lists its concerns about its own model, and writes the report. The model leaves as standalone code in Python, JavaScript, SQL, R and more.
What that costs you, stated plainly:
It is hosted. Hosted in the EU, operated by us. Your table is uploaded.
It is closed source. You cannot download Ufinq, change the search or run it yourself. The papers, designs and benchmark results are public at ufinq.com.
It takes time. The shortest analysis runs for about an hour. If you need an answer in minutes, it is the wrong tool.
It returns one model, not a list. If you want to weigh candidates against each other yourself, a tool that returns the whole set suits you better.
It is paid beyond the start. New accounts get 50,000 free credits, about five full analyses, with no credit card. The open-source libraries above cost nothing.
We do not claim that it finds better models. Ufinq is benchmark-tested: evaluated on SRBench, the standard Symbolic Regression benchmark. The results, against PySR, Operon and gplearn on the same data, time and seeds, are public at ufinq.com/benchmarks, including where Ufinq is ahead, level and behind. Read them and judge for yourself.

The benchmark of the field

SRBench describes itself as a living benchmark for Symbolic Regression. It is maintained by the Cava Lab and open-source contributors, and its 2025 edition evaluates more than twenty methods on public datasets. Of the tools on this page, its method lists name PySR, Operon, gplearn and the QLattice, and the 2021 edition AI Feynman. If you compare methods, start there and not with a vendor's page, this one included.

What next?