Skip to main content
Documentation

Models

Diafunc supports automatic modeling through Ufinq, our Symbolic Regression technology. The platform analyzes your data automatically and discovers a model for each target. A model shows the relationships in the data and can also be used for predictions.

Symbolic regression is a model-discovery method that searches the space of mathematical expressions for a function that describes a given dataset. The resulting model is a mathematical expression which approximately describes the relationship between the targets and the inputs. Diafunc says target for the column a model predicts and input for a column it reads; other tools and the literature use other names for the two. Also called: labels or dependent variables (targets), features or independent variables (inputs).

It aims at simple, explainable models that generalize beyond the observations (with known target values) they were found on. The result is a white-box model that a person can read, where black-box methods such as deep learning return parameters that cannot be read.
observationsthe discovered modely = 3 · sin(x)² + 1

Ufinq Technology

Ufinq, the automatic modeling and symbolic regression technology behind Diafunc, is a long-term research effort. Symbolic regression serves a core aim of data science: extracting understanding from data.

Ufinq

Manual Modeling

You can build a model from scratch by providing all observations yourself.

Manual Modeling
diafunc
    .model()
    .observe(2, 2)
    .observe(8, 8)
    .observe(50, 50)
    .observe(250, 250);

Modeling based on Selections

Modeling usually runs on selections, because they work on every kind of data source (tables, element attributes, ...) and read more fluently.

Modeling based on Selections
selections
    .model()
    .input("x1Key")
    .input("x2Key")
    .target("yKey");

input declares an input and target declares a target: the FDK uses the same words as the rest of Diafunc.

Modeling based on Tables

A table becomes a data source by selecting its rows.

Modeling based on Tables
table
    .selectRows()
    .model()
    .input("x1Column")
    .input("x2Column")
    .target("yColumn");

Live Output

While the search runs, the notebook shows its progress. Afterwards the model's own page reports the figures measured during the search: quality, complexity and error on the rows the search worked with, the time it took and the share of the credit budget it used. A report leaves these figures out of its model chapter, because it leads with the same measures on rows the search never saw.

Result

When modeling completes, the report leads with the model as a formula, says in plain words what it does, and shows how good it is: quality, complexity and error measured on rows the search never saw, and how the formula compares with a straight line through the same data.

Held-out prediction

Modeling deterministically holds out the first rows of the dataset so the resulting model can be evaluated on data it has never seen. Applying the model to the held-out rows produces actual-vs-predicted pairs that show how well it generalizes, which the training error alone cannot show.

Automatic analyses use the held-out rows to render a scatter chart of actual vs. predicted values inside the per-target Prediction sub-chapter.

Input importance

Each model exposes importance metrics for each input that explain which inputs the output relies on:

MetricDescription
Permutation importanceHow much the model's accuracy drops when the values of a single input are shuffled.
SensitivityHow sharply the model's output changes as a single input changes.
OccurrencesHow many times an input appears inside the symbolic expression.
Residual correlationCorrelation between an input and the model's residual error: a non-zero value hints that the input could still be better exploited.

In automatic analyses, the top five inputs of each model are surfaced in the Findings narrative; the full set is available from the FDK on the model entity.

Plain-English explanations

Models can also be restated in plain English for a non-technical audience. In automatic analyses this restatement is produced by the platform's language model and leads with the top inputs, so a reader who skips the formula still learns which inputs the model relies on most.

What next?