Eureqa is a desktop software for Symbolic Regression that left the market. Here we will present an alternative called TuringBot, a program similar to Eureqa that uses Simulated Annealing to discover formulas from data.
What is TuringBot?
TuringBot is a desktop software that runs on both Windows and Linux. By loading your dataset in .txt or .csv format into the program, you can easily start searching for mathematical formulas that connect the variables.
The results will be shown in real time in the form of a list of formulas of increasing complexity to choose from.
TuringBot is similar to Eureqa in many ways, but we think that TuringBot is superior in some respects: TuringBot has been shown to be better at discovering Physics equations than Eureqa, it contains base functions that Eureqa does not, and it is overall much more straightforward to use.
How does it work?
Similarly to Eureqa, the program makes a random search for formulas that connect variables on a dataset.
Prior to running the symbolic regression search, you can choose a number of settings, including:
- The error metric to be used: Mean relative error, Classification accuracy, Mean error, RMS error, F-score, Correlation coefficient, Hybrid (CC+RMS), Maximum error, Maximum relative error, Nash-Sutcliffe efficiency
- The base functions to be used: * / pow fmod smaller greater equal different logical_or logical_and sin cos tan asin acos atan exp log log2 sqrt sinh cosh tanh asinh acosh atanh abs floor ceil round sign tgamma lgamma erf moving_average delay
- Whether to use cross-validation.
Several other settings are also available; you can find the full list on the Documentation.
Examples of TuringBot in use
Here are some examples of TuringBot being applied to practical problems:
- Classification using symbolic regression
- Forecasting the growth of a company with a formula
- Decision boundary discovery with symbolic regression
- A regression model example and how to generate it
If you have a table of numbers and want to predict one of the columns as a function of the other ones, then you can certainly apply TuringBot to it.
Symbolic Regression is a powerful technique that helps get to the bottom of a machine learning problem. By trying different formulas and keeping track of the best ones encountered so far, we can discover accurate and highly nontrivial models that connect the variables of a dataset.