Tunny Icon
TunnyDocs

The next-gen Grasshopper optimization tool.

Surrogate Models

Surrogate models fit a function to the trial data, then predict the objective across a dense grid to visualize the response surface (PDP Chart 2D).

Model Comparison

Model Speed Nonlinear Best for
Ridge < 100 ms No Linear responses, any N
Random Forest < 2,000 ms Yes Nonlinear / discontinuous / noisy
GP-FITC < 10,000 ms Yes Smooth, any N — default GP
GP-VFE < 10,000 ms Yes Smooth, any N — conservative/smoother fit
GP-MOE < 30,000 ms Yes Discontinuous / regime-switching / multi-modal

All GP variants (GP-FITC, GP-VFE, GP-MOE) are backed by egobox-gp / egobox-moe (Apache-2.0) and use M = min(N, 100) inducing points. When N ≤ 100 this is mathematically equivalent to an exact GP with noise estimation.

How to Choose

flowchart TD
    shape{"Response shape?"}
    shape -- "Linear" --> ridge["Ridge (fastest)"]
    shape -- "Nonlinear / noisy / tabular" --> rf["Random Forest<br/>(LightGBM RF backend)"]
    shape -- "Smooth nonlinear" --> smooth{"Smooth nonlinear"}
    smooth -- "Default" --> gpfitc["GP-FITC"]
    smooth -- "Surface looks overfit/spiky" --> gpvfe["GP-VFE<br/>(smoother, more conservative)"]
    smooth -- "Discontinuous / multi-regime" --> gpmoe["GP-MOE"]

R² Interpretation

All models report R² against training data. Higher is better, but training-set R² can be inflated by overfitting.

Action
≥ 0.8 Model fits well; surface is reliable
< 0.5 Switch to a more expressive model