A Julia package for surrogate-based optimization and parameter space exploration. Agos.jl provides tools for defining complex search spaces, sampling strategies, and surrogate models for approximating expensive objective functions.
- Hierarchical search spaces —
HypercubeSearchSpacefor independent dimensions,HypergridSearchSpacefor conditional/hierarchical parameter spaces - Multiple sampling strategies — Random, Latin Hypercube, Sobol sequences, and distribution-based sampling
- Surrogate models — Support Vector Machines (LIBSVM), Gaussian Processes, and XGBoost-based Random Forests with uncertainty quantification
- Flexible dimension types — Numerical intervals, interval sets, and categorical dimensions
- Adapter system — Transform between parameter spaces (e.g., categorical to numerical) with bidirectional support
using Pkg
Pkg.add(url="https://github.com/grlap/Agos.jl")using Agos
# Simple hypercube space
space = HypercubeSearchSpace("params", [
IntervalDimension("x", Interval(0.0, 1.0)),
IntervalDimension("y", Interval(-5.0, 5.0)),
CategoricalDimension("kernel", CategoricalSet([:rbf, :matern]))
])
# Hierarchical space with conditional parameters
grid = HypergridSearchSpace("config", [
CategoricalDimension("optimizer", CategoricalSet([:adam, :sgd]))
])
adam_space = HypercubeSearchSpace("adam_params", [
IntervalDimension("learning_rate", Interval(1e-4, 1e-1)),
IntervalDimension("beta1", Interval(0.8, 0.999))
])
join!(grid, adam_space, "optimizer", :adam)sampler = LatinHypercubeSampler()
points = sample!(sampler, space, 100) # returns a DataFrame# Gaussian Process
gp = GPSurrogateModel()
add_points!(gp, X, y)
predictions = predict(gp, X_new)
# Random Forest with uncertainty
rf = RandomForestSurrogateModel()
add_points!(rf, X, y)
v = variance(rf, X_new)
q = quantiles(rf, X_new)| Component | Description |
|---|---|
| Dimensions | IntervalDimension, IntervalSetDimension, CategoricalDimension |
| Search Spaces | HypercubeSearchSpace, HypergridSearchSpace |
| Samplers | RandomSampler, LatinHypercubeSampler, SobolSampler, DistributionSampler |
| Surrogate Models | SVMSurrogateModel, GPSurrogateModel, RandomForestSurrogateModel |
| Adapters | CategoricalToNumericalDimensionAdapter, DimensionalSearchSpaceAdapter |
See the example/ directory for usage examples including sampling, surrogate modeling, visualization, and interval operations.
MIT License — see LICENSE for details.