Optimization with SpotOptim
Organizations: Bartz & Bartz GmbH, 51643 Gummersbach, Germany
Abstract
The spotoptim package implements surrogate-model-based optimization of expensive black-box functions in Python. Building on two decades of Sequential Parameter Optimization (SPO) methodology, it provides a Kriging-based optimization loop with Expected Improvement, support for continuous, integer, and categorical variables, noise-aware evaluation via Optimal Computing Budget Allocation (OCBA), and multi-objective extensions. A success-rate-based restart mechanism detects stagnation while preserving the best solution found. The package returns scipy-compatible OptimizeResult objects and accepts any scikit-learn-compatible surrogate model. Built-in TensorBoard logging provides real-time monitoring of convergence and surrogate quality. This report describes the architecture and module structure of spotoptim, provides worked examples including neural network hyperparameter tuning, and compares the framework with BoTorch, Optuna, RayTune, BOHB, SMAC, and Hyperopt. The package is open-source (AGPL-3.0).
Figures & tables
| Parameter | Role |
|---|---|
| max_iter=200 | Hard evaluation budget. Stops the run if nothing else triggers first. |
| n_initial=5 | Each LHS design (initial and every restart) uses 5 points. |
| window_size=3 | Success rate is averaged over the last 3 infill iterations. |
| restart_after_n=3 | 3 consecutive iterations with success-rate = 0 trigger a restart. |
| max_restarts=2 | After 2 restarts in a row that fail to improve best_y_ , stop early. |
Black-Box Optimization
Black-box optimization finds high-quality solutions when objectives can only be queried, not directly analyzed or differentiated.
See all 176 papers