auto-sklearn is an automated machine learning library offering a scikit-learn-compatible interface for classification and regression. It performs hyperparameter optimization via Bayesian optimization (SMAC), integrates meta-learning to warm-start the search from prior runs, and builds ensembles using Caruana's ensemble selection. The codebase is modular: pipeline components (classifiers, regressors, preprocessors) are defined with ConfigSpace and can be extended via a third-party component system. Parallel execution uses dask, and custom metrics, cross-validation splitters, and early stopping are supported. The repository also contains a substantial research component—precomputed meta-features and algorithm run data stored in ARFF format—and scripts for reproducing experiments. The architecture is well-tested with a comprehensive test suite, though some dependencies are pinned to older versions and there is moderate technical drift.
This is a mature Python library for global optimization of expensive black-box functions using Bayesian optimization. It provides the `BayesianOptimization` class that iteratively fits a Gaussian process regressor (via scikit-learn) to observed function evaluations and uses an acquisition function (Upper Confidence Bound, Expected Improvement, Probability of Improvement, or combined) to propose the next point to evaluate. The library supports constrained optimization, domain reduction, mixed continuous/integer/categorical parameters, asynchronous/parallel optimization, and state persistence. Its architecture is modular: acquisition functions are organized in a strategy pattern, parameters are polymorphic with a base class for custom types, constraints are modeled with separate GPs, and domain reduction is implemented as a transformer. The core algorithm is well-tested and documented, with examples ranging from toy functions to hyperparameter tuning. It is not a research notebook collection or data pipeline; it is a production-grade library intended for integration into optimization workflows.