SMAC3 documentation!

SMAC is a tool for algorithm configuration. It optimizes configurations of arbitrary algorithms across a set of instances. This includes, but is not limited to, optimization of parameters of hard combinatorial problem solvers and hyperparameter optimization of various machine learning algorithms. The main core consists of Bayesian Optimization in combination with a simple racing mechanism on the instances to efficiently decide which of two configurations performs better.



For a detailed description of its main idea, we refer to:

Hutter, F. and Hoos, H. H. and Leyton-Brown, K. Sequential Model-Based Optimization for General Algorithm Configuration In: Proceedings of the conference on Learning and Intelligent OptimizatioN (LION 5)

The SMAC3 package is not meant to be a reference implementation for SMAC according the above cited LION paper. Please use SMAC v2 (Java) for comparisons against SMAC.


If you used SMAC in one of your research projects, please cite us:

title={SMAC v3: Algorithm Configuration in Python},
author={Marius Lindauer and Katharina Eggensperger and Matthias Feurer and Stefan Falkner and André Biedenkapp and Frank Hutter},

SMAC3 is mainly written in Python 3 and continuously tested with Python 3.7-3.9. Its Random Forest is written in C++11.