Go to file
scikit-learn-bot ca6a8919ab
🔒 🤖 CI Update lock files for scipy-dev CI build(s) 🔒 🤖 (#33659)
Co-authored-by: Lock file bot <noreply@github.com>
2026-03-30 10:21:11 +02:00
.binder MNT Bump Python to 3.12 in Binder environment (#32267) 2025-09-25 10:48:55 +02:00
.circleci 🔒 🤖 CI Update lock files for main CI build(s) 🔒 🤖 (#32902) 2026-01-08 10:15:02 +01:00
.devcontainer MAINT add jupyter extension and pre-commit in devcontainer (#32342) 2025-10-21 16:10:06 +00:00
.github Raise if fit and predict use different array API namespaces or devices (continued) (#33076) 2026-03-25 14:22:30 +00:00
.spin
asv_benchmarks Enable config setting `sparse_interface` to control sparray and spmatrix creation (#31177) 2026-03-11 07:04:06 +01:00
benchmarks Enable config setting `sparse_interface` to control sparray and spmatrix creation (#31177) 2026-03-11 07:04:06 +01:00
build_tools 🔒 🤖 CI Update lock files for scipy-dev CI build(s) 🔒 🤖 (#33659) 2026-03-30 10:21:11 +02:00
doc MNT align type of `multiclass_colors_` for list and colormap in `DecisionBoundaryDisplay` (#33651) 2026-03-27 17:18:04 +00:00
examples DOC fix colors and typos in example on Multinomial and One-vs-Rest Decision Boundaries (#33622) 2026-03-27 14:30:11 +01:00
maint_tools MNT: externals: bump array-api-compat to v1.13 (#32962) 2026-01-05 09:30:56 +00:00
sklearn MNT align type of `multiclass_colors_` for list and colormap in `DecisionBoundaryDisplay` (#33651) 2026-03-27 17:18:04 +00:00
.codecov.yml CI add codecov to GitHub Action workflow (#31941) 2025-08-28 18:24:01 +02:00
.coveragerc CI Use sys.monitoring with coverage to speed-up Python >= 3.12 builds (#29473) 2024-12-02 18:07:40 +01:00
.git-blame-ignore-revs MNT Update .git-blame-ignore-revs with import change PRs (#31858) 2025-07-31 14:36:25 +02:00
.gitattributes CI Clean-up after Azure -> GHA move (#33403) 2026-03-02 14:43:28 +01:00
.gitignore MAINT Add notes-towncrier.rst to .gitignore (#30153) 2024-10-29 14:47:53 +01:00
.mailmap
.pre-commit-config.yaml MNT Use consistent ruff version in pre-commit and linting (#32849) 2025-12-18 10:04:02 +01:00
AGENTS.md Tell agents to disclose that they were used (#32584) 2025-10-30 14:54:29 +01:00
CITATION.cff DOC Add CITATION.cff (#29581) 2024-08-20 14:43:22 +00:00
CODE_OF_CONDUCT.md DOC add a point about org bans due to AI (#32254) 2025-09-26 10:46:27 +02:00
CONTRIBUTING.md DOC add a point about org bans due to AI (#32254) 2025-09-26 10:46:27 +02:00
COPYING MNT Update year to 2026 in COPYING (#32992) 2026-01-05 09:47:40 +01:00
Makefile MNT Fix 'make clean' for free-threaded Python (#32531) 2025-10-20 16:18:36 +02:00
README.rst CI Clean-up after Azure -> GHA move (#33403) 2026-03-02 14:43:28 +01:00
SECURITY.md MNT Update SECURITY.md for 1.8.0 (#32881) 2025-12-10 21:07:51 -05:00
meson.build MNT Use find_program in meson.build for tempita step (#31058) 2025-03-24 18:13:30 +01:00
pyproject.toml CI Clean-up after Azure -> GHA move (#33403) 2026-03-02 14:43:28 +01:00

README.rst

.. -*- mode: rst -*-

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


.. |GitHubActions| image:: https://github.com/scikit-learn/scikit-learn/actions/workflows/unit-tests.yml/badge.svg
   :target: https://github.com/scikit-learn/scikit-learn/actions/workflows/unit-tests.yml?query=branch%3Amain

.. |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.11
.. |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.22.0
.. |PandasMinVersion| replace:: 1.5.0
.. |SeabornMinVersion| replace:: 0.13.0
.. |PytestMinVersion| replace:: 7.1.2
.. |PlotlyMinVersion| replace:: 5.18.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
^^^^^^^^^^^^^

- **Website**: https://scikit-learn.org
- **Blog**: https://blog.scikit-learn.org
- **Mailing list**: https://mail.python.org/mailman/listinfo/scikit-learn

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

- **GitHub Discussions**: https://github.com/scikit-learn/scikit-learn/discussions
- **Stack Overflow**: https://stackoverflow.com/questions/tagged/scikit-learn
- **Discord**: https://discord.gg/h9qyrK8Jc8

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

- **LinkedIn**: https://www.linkedin.com/company/scikit-learn
- **YouTube**: https://www.youtube.com/channel/UCJosFjYm0ZYVUARxuOZqnnw/playlists
- **Facebook**: https://www.facebook.com/scikitlearnofficial/
- **Instagram**: https://www.instagram.com/scikitlearnofficial/
- **TikTok**: https://www.tiktok.com/@scikit.learn
- **Bluesky**: https://bsky.app/profile/scikit-learn.org
- **Mastodon**: https://mastodon.social/@sklearn@fosstodon.org

Resources
^^^^^^^^^

- **Calendar**: https://blog.scikit-learn.org/calendar/
- **Logos & Branding**: https://github.com/scikit-learn/scikit-learn/tree/main/doc/logos

Citation
~~~~~~~~

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