{"data":{"slug":"scikit-optimize-scikit-optimize","name":"scikit-optimize","tagline":"Sequential model-based optimization with a `scipy.optimize` interface","github_url":"https://github.com/scikit-optimize/scikit-optimize","owner":"scikit-optimize","repo":"scikit-optimize","owner_avatar_url":"https://avatars.githubusercontent.com/u/18578550?v=4","primary_language":"Python","stars":2826,"forks":559,"topics":["bayesian-optimization","bayesopt","binder","hacktoberfest","hyperparameter","hyperparameter-optimization","hyperparameter-search","hyperparameter-tuning","machine-learning","optimization","scientific-computing","scientific-visualization","scikit-learn","sequential-recommendation","visualization"],"archived":true,"github_pushed_at":"2024-02-23T07:05:22+00:00","maintenance_label":"Archived","url":"https://www.graphcanon.com/tools/scikit-optimize-scikit-optimize","markdown_url":"https://www.graphcanon.com/tools/scikit-optimize-scikit-optimize.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/scikit-optimize-scikit-optimize","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=scikit-optimize-scikit-optimize","description":"Sequential model-based optimization with a  `scipy.optimize` interface","homepage_url":"https://scikit-optimize.github.io","license":"BSD-3-Clause","open_issues":318,"watchers":3,"ai_summary":null,"readme_excerpt":"|Logo|\n\n|pypi| |conda| |Travis Status| |CircleCI Status| |binder| |gitter| |Zenodo DOI|\n\nScikit-Optimize\n===============\n\nScikit-Optimize, or ``skopt``, is a simple and efficient library to\nminimize (very) expensive and noisy black-box functions. It implements\nseveral methods for sequential model-based optimization. ``skopt`` aims\nto be accessible and easy to use in many contexts.\n\nThe library is built on top of NumPy, SciPy and Scikit-Learn.\n\nWe do not perform gradient-based optimization. For gradient-based\noptimization algorithms look at\n``scipy.optimize``\n`here <http://docs.scipy.org/doc/scipy/reference/optimize.html>`_.\n\n.. figure:: https://github.com/scikit-optimize/scikit-optimize/blob/master/media/bo-objective.png\n   :alt: Approximated objective\n\nApproximated objective function after 50 iterations of ``gp_minimize``.\nPlot made using ``skopt.plots.plot_objective``.\n\nImportant links\n---------------\n\n-  Static documentation - `Static\n   documentation <https://scikit-optimize.github.io/>`__\n-  Example notebooks - can be found in examples_.\n-  Issue tracker -\n   https://github.com/scikit-optimize/scikit-optimize/issues\n-  Releases - https://pypi.python.org/pypi/scikit-optimize\n\nInstall\n-------\n\nscikit-optimize requires\n\n* Python >= 3.6\n* NumPy (>= 1.13.3)\n* SciPy (>= 0.19.1)\n* joblib (>= 0.11)\n* scikit-learn >= 0.20\n* matplotlib >= 2.0.0\n\nYou can install the latest release with:\n::\n\n    pip install scikit-optimize\n\nThis installs an essential version of scikit-optimize. To install scikit-optimize\nwith plotting functionality, you can instead do:\n::\n\n    pip install 'scikit-optimize[plots]'\n\nThis will install matplotlib along with scikit-optimize.\n\nIn addition there is a `conda-forge <https://conda-forge.org/>`_ package\nof scikit-optimize:\n::\n\n    conda install -c conda-forge scikit-optimize\n\nUsing conda-forge is probably the easiest way to install scikit-optimize on\nWindows.\n\n\nGetting started\n---------------\n\nFind the minimum of the noisy function ``f(x)`` over the range\n``-2 < x < 2`` with ``skopt``:\n\n.. code:: python\n\n    import numpy as np\n    from skopt import gp_minimize\n\n    def f(x):\n        return (np.sin(5 * x[0]) * (1 - np.tanh(x[0] ** 2)) +\n                np.random.randn() * 0.1)\n\n    res = gp_minimize(f, [(-2.0, 2.0)])\n\n\nFor more control over the optimization loop you can use the ``skopt.Optimizer``\nclass:\n\n.. code:: python\n\n    from skopt import Optimizer\n\n    opt = Optimizer([(-2.0, 2.0)])\n\n    for i in range(20):\n        suggested = opt.ask()\n        y = f(suggested)\n        opt.tell(suggested, y)\n        print('iteration:', i, suggested, y)\n\n\nRead our `introduction to bayesian\noptimization <https://scikit-optimize.github.io/stable/auto_examples/bayesian-optimization.html>`__\nand the other examples_.\n\n\nDevelopment\n-----------\n\nThe library is still experimental and under heavy development. Checkout\nthe `next\nmilestone <https://github.com/scikit-optimize/scikit-optimize/milestones>`__\nfor the plans for the next release or look at some `easy\nissues <https://github.com/scikit-optimize/scikit-optimize/issues?q=is%3Aissue+is%3Aopen+label%3AEasy>`__\nto get started contributing.\n\nThe development version can be installed through:\n\n::\n\n    git clone https://github.com/scikit-optimize/scikit-optimize.git\n    cd scikit-optimize\n    pip install -e.\n\nRun all tests by executing ``pytest`` in the top level directory.\n\nTo only run the subset of tests with short run time, you can use ``pytest -m 'fast_test'`` (``pytest -m 'slow_test'`` is also possible). To exclude all slow running tests try ``pytest -m 'not slow_test'``.\n\nThis is implemented using pytest `attributes <https://docs.pytest.org/en/latest/mark.html>`__. If a tests runs longer than 1 second, it is marked as slow, else as fast.\n\nAll contributors are welcome!\n\n\nMaking a Release\n~~~~~~~~~~~~~~~~\n\nThe release procedure is almost completely automated. By tagging a new release\ntravis will build all required packages and push them to PyPI. To make a release\ncreate a new iss","github_created_at":"2016-03-20T21:10:54+00:00","created_at":"2026-07-11T23:36:38.403641+00:00","updated_at":"2026-07-11T23:36:46.954928+00:00","categories":[{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"}],"tags":[{"slug":"bayesian-optimization","name":"bayesian-optimization"},{"slug":"bayesopt","name":"bayesopt"},{"slug":"binder","name":"binder"},{"slug":"hacktoberfest","name":"hacktoberfest"},{"slug":"hyperparameter","name":"hyperparameter"},{"slug":"hyperparameter-optimization","name":"hyperparameter-optimization"},{"slug":"hyperparameter-search","name":"hyperparameter-search"},{"slug":"hyperparameter-tuning","name":"hyperparameter-tuning"}],"trust":{"provenance":{"is_fork":false,"github_id":54340642,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T23:36:39.937Z","maintenance":{"label":"Archived","score":8,"methodology":"github_public_v1","releases_90d":0,"days_since_push":869,"last_release_at":"2021-10-12T15:33:19Z"},"security_summary":{"status":"findings","scanner":"osv@v1","low_count":17,"high_count":0,"last_scan_at":"2026-07-11T23:36:40.430Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-11T23:36:39.673Z"},"languages":{"value":["python"],"source":"github.language+pyproject.toml","observed_at":"2026-07-11T23:36:39.673Z"},"license_spdx":{"value":"BSD-3-Clause","source":"github.license","observed_at":"2026-07-11T23:36:39.673Z"}}}}