Skip to content

Submission Guide

You have built your own symbolic regression algorithm and want to compare it to the state of the art? Submit your symbolic regression solutions to compete and track your performance on the public leaderboard.

To enter this competition, you just need to follow these steps:

  1. ⚙️ Generate your regression tasks and download the .json file.
  2. 🔍 Use your symbolic regression algorithm to search for mathematical expressions that match the regression tasks.
  3. 📤 Once you’ve found your expressions, submit them in the required .json format.

⚙️ Generating Tasks

  1. Fill out your algorithm name. This name will be displayed on the leaderboard.
  2. Enter a valid email address. A link with the submission ID and the regression tasks will be sent there. You need this ID in order to submit your solution.
  3. Hit the "Generate Tasks" button.

You will receive a .json file containing your unique submission ID and a set of regression tasks. The file will have the following structure:

{
  "submission_id": "your_unique_id",
  "problems": {regression_tasks}
}

Each regression problem can be accessed using the index string of the problem:

index = "0" # has to be string
X = problems[index]["X"]  # List of lists of floats
y = problems[index]["y"]  # List of floats

🔍 Searching for Expressions

Your goal is then to determine symbolic expressions that solve the regression tasks.

To verify the symbolic correctness of expressions, we use SymPy. Make sure your expressions are strings that can be parsed using SymPy's sympify function.

Inside the expression, variable names must be a lowercase x, followed by an undersocre and a numerical index.

The following example illustrates valid and invalid formats for an expression on two independent variables:

✅ x_0*x_1 
❌ X_0*X_1 // should be lowercase
❌ x0*x1 // should have an underscore
❌ x_{0}*x_{1} // should not have brackets
❌ x_1*x_2 // indexing should start at 0

All underlying ground truth expressions can in principle be constructed with the following operators:

+, -, *, /, sin, cos, tan, log, exp

A valid expression might look like this:

sin(x_0) * log(x_1) + exp(x_2)

📤 Submitting your Solution

Once you are finished, submit your solution as a .json file in the following format

{
    "submission_id" : String - ID that you recieved via email,
    "expressions" : List of Strings - sympy expressions as strings
}

The index of the expressions in the list corresponds to the index of the regression tasks in the .csv file.

An example of a valid submission file is:

{
    "submission_id" : "1234567890",
    "expressions" : ["x_0*x_1", "x_0*x_2", "x_1*x_2"]
}

Important: With a successful submission your submission ID will no longer be active. In order to re-evaluate your algorithm, generate new regression tasks.

Drag and drop your .json file here to submit your solution. Once submitted, your submission ID will be deactivated, and the results will be emailed to you.

Important: Don't forget to check your spam folder!