scikit-learn

    scikit-learn/scikit-learn

    scikit-learn: machine learning in Python

    machine-learning
    data-analysis
    data-science
    python
    statistics
    Python
    BSD-3-Clause
    65.2K stars
    26.7K forks
    65.2K watching
    Updated 3/11/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    75

    Weekly Growth

    +0

    +0.0% this week

    Contributors

    1

    Total contributors

    Open Issues

    2.1K

    Generated Insights

    About scikit-learn

    .. -- mode: rst --

    |Azure| |Codecov| |CircleCI| |Nightly wheels| |Ruff| |PythonVersion| |PyPI| |DOI| |Benchmark|

    .. |Azure| image:: https://dev.azure.com/scikit-learn/scikit-learn/_apis/build/status/scikit-learn.scikit-learn?branchName=main :target: https://dev.azure.com/scikit-learn/scikit-learn/_build/latest?definitionId=1&branchName=main

    .. |CircleCI| image:: https://circleci.com/gh/scikit-learn/scikit-learn/tree/main.svg?style=shield :target: https://circleci.com/gh/scikit-learn/scikit-learn

    .. |Codecov| image:: https://codecov.io/gh/scikit-learn/scikit-learn/branch/main/graph/badge.svg?token=Pk8G9gg3y9 :target: https://codecov.io/gh/scikit-learn/scikit-learn

    .. |Nightly wheels| image:: https://github.com/scikit-learn/scikit-learn/actions/workflows/wheels.yml/badge.svg?event=schedule :target: https://github.com/scikit-learn/scikit-learn/actions?query=workflow%3A%22Wheel+builder%22+event%3Aschedule

    .. |Ruff| image:: https://img.shields.io/badge/code%20style-ruff-000000.svg :target: https://github.com/astral-sh/ruff

    .. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/scikit-learn.svg :target: https://pypi.org/project/scikit-learn/

    .. |PyPI| image:: https://img.shields.io/pypi/v/scikit-learn :target: https://pypi.org/project/scikit-learn

    .. |DOI| image:: https://zenodo.org/badge/21369/scikit-learn/scikit-learn.svg :target: https://zenodo.org/badge/latestdoi/21369/scikit-learn/scikit-learn

    .. |Benchmark| image:: https://img.shields.io/badge/Benchmarked%20by-asv-blue :target: https://scikit-learn.org/scikit-learn-benchmarks

    .. |PythonMinVersion| replace:: 3.10 .. |NumPyMinVersion| replace:: 1.24.1 .. |SciPyMinVersion| replace:: 1.10.0 .. |JoblibMinVersion| replace:: 1.3.0 .. |ThreadpoolctlMinVersion| replace:: 3.2.0 .. |MatplotlibMinVersion| replace:: 3.6.1 .. |Scikit-ImageMinVersion| replace:: 0.19.0 .. |PandasMinVersion| replace:: 1.5.0 .. |SeabornMinVersion| replace:: 0.9.1 .. |PytestMinVersion| replace:: 7.1.2 .. |PlotlyMinVersion| replace:: 5.14.0

    .. image:: https://raw.githubusercontent.com/scikit-learn/scikit-learn/main/doc/logos/scikit-learn-logo.png :target: https://scikit-learn.org/

    scikit-learn is a Python module for machine learning built on top of SciPy and is distributed under the 3-Clause BSD license.

    The project was started in 2007 by David Cournapeau as a Google Summer of Code project, and since then many volunteers have contributed. See the About us <https://scikit-learn.org/dev/about.html#authors>__ page for a list of core contributors.

    It is currently maintained by a team of volunteers.

    Website: https://scikit-learn.org

    Installation

    Dependencies

    
    scikit-learn requires:
    
    - Python (>= |PythonMinVersion|)
    - NumPy (>= |NumPyMinVersion|)
    - SciPy (>= |SciPyMinVersion|)
    - joblib (>= |JoblibMinVersion|)
    - threadpoolctl (>= |ThreadpoolctlMinVersion|)
    
    =======
    
    Scikit-learn plotting capabilities (i.e., functions start with ``plot_`` and
    classes end with ``Display``) require Matplotlib (>= |MatplotlibMinVersion|).
    For running the examples Matplotlib >= |MatplotlibMinVersion| is required.
    A few examples require scikit-image >= |Scikit-ImageMinVersion|, a few examples
    require pandas >= |PandasMinVersion|, some examples require seaborn >=
    |SeabornMinVersion| and Plotly >= |PlotlyMinVersion|.
    
    User installation
    

    If you already have a working installation of NumPy and SciPy, the easiest way to install scikit-learn is using pip::

    pip install -U scikit-learn
    

    or conda::

    conda install -c conda-forge scikit-learn
    

    The documentation includes more detailed installation instructions <https://scikit-learn.org/stable/install.html>_.

    Changelog

    See the changelog <https://scikit-learn.org/dev/whats_new.html>__ for a history of notable changes to scikit-learn.

    Development

    We welcome new contributors of all experience levels. The scikit-learn community goals are to be helpful, welcoming, and effective. The Development Guide <https://scikit-learn.org/stable/developers/index.html>_ has detailed information about contributing code, documentation, tests, and more. We've included some basic information in this README.

    Important links

    
    - Official source code repo: https://github.com/scikit-learn/scikit-learn
    - Download releases: https://pypi.org/project/scikit-learn/
    - Issue tracker: https://github.com/scikit-learn/scikit-learn/issues
    
    Source code
    ~~~~~~~~~~~
    
    You can check the latest sources with the command::
    
        git clone https://github.com/scikit-learn/scikit-learn.git
    
    Contributing
    ~~~~~~~~~~~~
    
    To learn more about making a contribution to scikit-learn, please see our
    `Contributing guide
    <https://scikit-learn.org/dev/developers/contributing.html>`_.
    
    Testing
    ~~~~~~~
    
    After installation, you can launch the test suite from outside the source
    directory (you will need to have ``pytest`` >= |PytestMinVersion| installed)::
    
        pytest sklearn
    
    See the web page https://scikit-learn.org/dev/developers/contributing.html#testing-and-improving-test-coverage
    for more information.
    
        Random number generation can be controlled during testing by setting
        the ``SKLEARN_SEED`` environment variable.
    
    Submitting a Pull Request
    

    Before opening a Pull Request, have a look at the full Contributing page to make sure your code complies with our guidelines: https://scikit-learn.org/stable/developers/index.html

    Project History

    The project was started in 2007 by David Cournapeau as a Google Summer of Code project, and since then many volunteers have contributed. See the About us <https://scikit-learn.org/dev/about.html#authors>__ page for a list of core contributors.

    The project is currently maintained by a team of volunteers.

    Note: scikit-learn was previously referred to as scikits.learn.

    Help and Support

    Documentation

    
    - HTML documentation (stable release): https://scikit-learn.org
    - HTML documentation (development version): https://scikit-learn.org/dev/
    - FAQ: https://scikit-learn.org/stable/faq.html
    
    Communication
    

    Main Channels ^^^^^^^^^^^^^

    Developer & Support ^^^^^^^^^^^^^^^^^^^^^^

    Social Media Platforms ^^^^^^^^^^^^^^^^^^^^^^

    Resources ^^^^^^^^^

    Citation

    
    If you use scikit-learn in a scientific publication, we would appreciate citations: https://scikit-learn.org/stable/about.html#citing-scikit-learn
    

    Discover Repositories

    Search across tracked repositories by name or description