scikit-optimize
Sequential model-based optimization toolbox.
What it is and what it does
Scikit-Optimize implements sequential model-based optimization for functions that are expensive to evaluate, noisy, or lack gradient information. It builds on numpy, scipy, and scikit-learn to provide methods like Gaussian process minimization that iteratively suggest promising parameter values, evaluate them, and refine the model. The library is designed for hyperparameter tuning, experimental design, and other settings where you need to find good inputs without access to derivatives or with high evaluation cost.
The package offers both high-level functions for simple use cases and lower-level Optimizer classes for fine-grained control over the optimization loop. It includes plotting utilities for visualizing the objective function landscape and optimization progress, available via an optional extra that adds matplotlib.
Use it for:
- Tune machine learning model hyperparameters when grid or random search is too slow
- Optimize expensive simulation or experimental parameters with noisy outcomes
- Find optimal configurations for systems where each evaluation takes significant time or resources
- Explore high-dimensional parameter spaces without gradient information
- Visualize and understand objective function behavior across parameter ranges
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Scikit-Optimize is a library for optimizing expensive, noisy black-box functions using sequential model-based optimization methods, without requiring gradients.
Yes, with caution on maintenance. Scikit-Optimize is a solid, permissively licensed tool for black-box optimization with low install friction and no known vulnerabilities. However, the last release was 801 days ago and maintenance is dormant. If your use case is stable and you do not need recent dependency updates or bug fixes, it is safe to use; if you need active support or compatibility with the latest Python or dependency versions, verify that the fork's current state meets your needs before committing.
Install
scikit-optimize on PyPI
pip
pip install scikit-optimizeuv
uv add scikit-optimizepoetry
poetry add scikit-optimizeInstalling scikit-optimize
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance is dormant—the last release was 801 days ago, though the repository remains active and the maintainer has PyPI credentials. Dependencies are stable and well-established (joblib, numpy, scipy, scikit-learn).
License in practice
BSD 3-clause permissive license allows commercial and private use with minimal restrictions, requiring only license and copyright notice retention.
Quickstart
pip install scikit-optimize
import numpy as np
from scikit-optimize import gp_minimize
def f(x):
return (numpy.sin(5 * x[0]) * (1 - numpy.tanh(x[0] ** 2)) +
numpy.random.randn() * 0.1)
res = gp_minimize(f, [(-2.0, 2.0)])
Verify before relying
- Whether the dormant maintenance status (801 days since last release) affects compatibility with recent Python or dependency versions
- Current state of open issues and pull requests on the fork repository
- Whether plotting functionality requires explicit installation of the [plots] extra
Package facts
| License | BSD 3-clause (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — joblib, pyaml, numpy, scipy, scikit-learn, packaging |
| Maintenance | dormant — 801 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 810,537/month — #5,008 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: scikit_optimize-0.10.2-py2.py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
bayesian-optimizationBayesian optimization using Gaussian processes…
permissive · top 15,000 on PyPI
better-optimizeA wrapper around scipy's optimize.minimize and…
permissive · top 15,000 on PyPI
cvxoptcvxopt is a Python library for solving convex…
unclear · top 5,000 on PyPI
hyperoptHyperopt performs serial and parallel…
permissive · top 5,000 on PyPI
roptropt is a Python module for running robust…
copyleft · top 15,000 on PyPI
directsearchSolves unconstrained and linearly constrained…
copyleft · top 15,000 on PyPI
botorchBoTorch provides a modular, PyTorch-based…
permissive · top 5,000 on PyPI
nevergradNevergrad is a gradient-free optimization…
permissive · top 15,000 on PyPI
keras-tunerKerasTuner automates hyperparameter…
permissive · top 15,000 on PyPI
cmaCMA-ES is a derivative-free numerical…
permissive · top 5,000 on PyPI