安装 scikit-learn#

有多种方式可以安装 scikit-learn:

  • 安装最新官方版本 。这是大多数用户最好的选择。它将提供一个稳定的版本,并且大多数平台都有预构建的包。

  • 安装由你的 操作系统或 Python 发行版提供的 scikit-learn 版本 。对于那些使用分发 scikit-learn 的操作系统或 Python 发行版的用户来说,这是一个快速选项。它可能不会提供最新的发布版本。

  • 从源代码构建包 。这对于想要最新功能并且不怕运行全新代码的用户来说是最佳选择。这也适用于希望为项目做出贡献的用户。

安装最新官方版本#

安装 64 位的 Python 3 版本,例如从 官方网站 下载。

现在创建一个 虚拟环境 (venv) 并安装 scikit-learn。注意,虚拟环境是可选的,但强烈推荐,以避免与其他包发生潜在冲突。

python -m venv sklearn-env
sklearn-env\Scripts\activate  # 激活
pip install -U scikit-learn

为了检查你的安装,你可以使用:

python -m pip show scikit-learn  # 显示 scikit-learn 版本和位置
python -m pip freeze             # 显示环境中所有已安装的包
python -c "import sklearn; sklearn.show_versions()"

安装 conda 使用 Anaconda 或 miniconda 安装程序

`miniforge 安装程序 <conda-forge/miniforge>`__(这些安装程序都不需要管理员权限)。然后运行:

conda create -n sklearn-env -c conda-forge scikit-learn
conda activate sklearn-env

为了检查您的安装,您可以使用:

conda list scikit-learn  # 显示 scikit-learn 版本和位置
conda list               # 显示环境中所有已安装的包
python -c "import sklearn; sklearn.show_versions()"

使用 homebrew 安装 Python 3( brew install python ) 或者从 官方网站 手动安装包。

现在创建一个 虚拟环境 (venv) 并安装 scikit-learn。 请注意,虚拟环境是可选的,但强烈推荐,以避免与其他包发生潜在冲突。

python -m venv sklearn-env
source sklearn-env/bin/activate  # 激活
pip install -U scikit-learn

为了检查您的安装,您可以使用:

python -m pip show scikit-learn  # 显示 scikit-learn 版本和位置
python -m pip freeze             # 显示环境中所有已安装的包
python -c "import sklearn; sklearn.show_versions()"

安装 conda 使用 Anaconda 或 miniconda 安装程序

`miniforge 安装程序 <conda-forge/miniforge>`__(这些安装程序都不需要管理员权限)。然后运行:

conda create -n sklearn-env -c conda-forge scikit-learn
conda activate sklearn-env

为了检查您的安装,您可以使用:

conda list scikit-learn  # 显示 scikit-learn 版本和位置
conda list               # 显示环境中所有已安装的包
python -c "import sklearn; sklearn.show_versions()"

Python 3 通常在大多数 Linux 发行版上默认安装。要检查您是否已安装,请尝试:

python3 --version
pip3 --version

如果您没有安装 Python 3,请从您的发行版包管理器安装 python3python3-pip

现在创建一个 虚拟环境 (venv) 并安装 scikit-learn。 请注意,虚拟环境是可选的,但强烈推荐,以避免与其他包发生潜在冲突。

python3 -m venv sklearn-env
source sklearn-env/bin/activate  # 激活
pip3 install -U scikit-learn

为了检查您的安装,您可以使用:

python3 -m pip show scikit-learn  # 显示 scikit-learn 版本和位置
python3 -m pip freeze             # 显示环境中所有已安装的包
python3 -c "import sklearn; sklearn.show_versions()"

安装 conda 使用 Anaconda 或 miniconda 安装程序

`miniforge 安装程序 <conda-forge/miniforge>`__(这些安装程序都不需要管理员权限)。然后运行:

conda create -n sklearn-env -c conda-forge scikit-learn
conda activate sklearn-env

为了检查您的安装,您可以使用:

conda list scikit-learn  # 显示 scikit-learn 版本和位置
conda list               # 显示环境中所有已安装的包
python -c "import sklearn; sklearn.show_versions()"

使用独立的虚拟环境如 pip venv 或 conda 可以安装特定版本的 scikit-learn 及其依赖,而不受已安装的 Python 包的影响。特别是在 Linux 上,不建议将 pip 包与发行版包管理器(apt、dnf、pacman…)管理的包一起安装。

请注意,您应该始终记得在每次启动新的终端会话时激活您选择的环境,然后再运行任何 Python 命令。

如果您还没有安装 NumPy 或 SciPy,您也可以使用 conda 或 pip 安装这些包。使用 pip 时,请确保使用 二进制轮子,并且 NumPy 和 SciPy 不会从源代码重新编译,这可能会在特定操作系统和硬件配置(如 Raspberry Pi 上的 Linux)下发生。

Scikit-learn 的绘图功能(即以 plot_ 开头和以 Display 结尾的函数和类)需要 Matplotlib。一些示例需要 Matplotlib、scikit-image、pandas 或 seaborn。scikit-learn 依赖的最小版本及其用途如下所列。

Dependency

Minimum Version

Purpose

numpy

1.19.5

build, install

scipy

1.6.0

build, install

joblib

1.2.0

install

threadpoolctl

3.1.0

install

cython

3.0.10

build

meson-python

0.16.0

build

matplotlib

3.3.4

benchmark, docs, examples, tests

scikit-image

0.17.2

docs, examples, tests

pandas

1.1.5

benchmark, docs, examples, tests

seaborn

0.9.0

docs, examples

memory_profiler

0.57.0

benchmark, docs

pytest

7.1.2

tests

pytest-cov

2.9.0

tests

ruff

0.2.1

tests

black

24.3.0

tests

mypy

1.9

tests

pyamg

4.0.0

tests

polars

0.20.23

docs, tests

pyarrow

12.0.0

tests

sphinx

7.3.7

docs

sphinx-copybutton

0.5.2

docs

sphinx-gallery

0.16.0

docs

numpydoc

1.2.0

docs, tests

Pillow

7.1.2

docs

pooch

1.6.0

docs, examples, tests

sphinx-prompt

1.4.0

docs

sphinxext-opengraph

0.9.1

docs

plotly

5.14.0

docs, examples

sphinxcontrib-sass

0.3.4

docs

sphinx-remove-toctrees

1.0.0.post1

docs

sphinx-design

0.5.0

docs

pydata-sphinx-theme

0.15.3

docs

conda-lock

2.5.6

maintenance

Warning

Scikit-learn 0.20 是支持 Python 2.7 和 Python 3.4 的最后一个版本。 Scikit-learn 0.21 支持 Python 3.5-3.7。 Scikit-learn 0.22 支持 Python 3.5-3.8。 Scikit-learn 0.23-0.24 需要 Python 3.6 或更高版本。 Scikit-learn 1.0 支持 Python 3.7-3.10。 Scikit-learn 1.1、1.2 和 1.3 支持 Python 3.8-3.12。 Scikit-learn 1.4 需要 Python 3.9 或更高版本。

第三方分发的 scikit-learn#

一些第三方分发版提供了与它们的包管理系统集成的 scikit-learn 版本。

这些分发版可以简化用户的安装和升级过程,因为集成包括了自动安装 scikit-learn 所需的依赖项(numpy、scipy)的能力。

以下是提供自己的 scikit-learn 版本的 OS 和 Python 分发版的不完全列表。

Alpine Linux#

Alpine Linux 的包通过 官方仓库 提供,名为 py3-scikit-learn 用于 Python。可以通过输入以下命令来安装:

sudo apk add py3-scikit-learn

Arch Linux#

Arch Linux 的包通过 官方仓库 提供,名为 python-scikit-learn 用于 Python。可以通过输入以下命令来安装:

sudo pacman -S python-scikit-learn

Debian/Ubuntu#

Debian/Ubuntu 的包分为三个不同的包,分别名为 python3-sklearn (Python 模块)、 python3-sklearn-lib (低级实现和绑定)、 python3-sklearn-doc (文档)。注意,scikit-learn 需要 Python 3,因此需要使用带有 python3- 前缀的包名。可以使用 apt-get 安装这些包:

sudo apt-get install python3-sklearn python3-sklearn-lib python3-sklearn-doc

Fedora#

Fedora 的包名为 python3-scikit-learn ,适用于 Python 3 版本,这是 Fedora 中唯一可用的版本。可以使用 dnf 安装:

sudo dnf install python3-scikit-learn

NetBSD#

scikit-learn 可以通过 pkgsrc-wip 获取: https://pkgsrc.se/math/py-scikit-learn

MacPorts for Mac OSX#

MacPorts 包的名称是 py<XY>-scikits-learn ,其中 XY 表示 Python 版本。可以通过输入以下命令来安装:

sudo port install py39-scikit-learn

Anaconda 和 Enthought Deployment Manager 适用于所有支持的平台#

都提供了 scikit-learn,以及大量适用于 Windows、Mac OSX 和 Linux 的科学 Python 库。

Anaconda 在其免费发行版中提供了 scikit-learn。

Intel Extension for Scikit-learn#

Intel 维护了一个针对 x86_64 架构优化的包,可通过 pip 在 PyPI 中获取,以及在 mainconda-forgeintel conda 渠道中获取:

conda install scikit-learn-intelex

这个包包含了许多估计器的 Intel 优化版本。每当没有替代实现时,scikit-learn 实现将作为后备。这些优化的求解器来自 oneDAL C++ 库,针对 x86_64 架构进行了优化,并且针对多核 Intel CPU 进行了优化。

请注意,这些求解器默认情况下未启用,请参阅 scikit-learn-intelex 文档以获取更多使用场景的详细信息。直接导出示例:

from sklearnex.neighbors import NearestNeighbors

通过自动化持续集成运行完整的 scikit-learn 测试套件来检查与标准 scikit-learn 求解器的兼容性,报告在 intel/scikit-learn-intelex。如果您在使用 scikit-learn-intelex 时遇到任何问题,请在他们的 issue tracker 上报告问题。

WinPython for Windows#

WinPython 项目将 scikit-learn 作为附加插件分发。

故障排除#

如果在安装 scikit-learn 时遇到意外失败,您可以将问题提交到 issue tracker 。在此之前,请确保检查以下常见问题。

Windows 上文件路径长度限制导致的错误#

如果 Python 安装在嵌套位置(例如用户主目录下的 AppData 文件夹结构),当达到 Windows 的默认路径大小限制时,pip 可能无法安装包,例如:

C:Usersusername>C:UsersusernameAppDataLocalMicrosoftWindowsAppspython.exe -m pip install scikit-learn Collecting scikit-learn … Installing collected packages: scikit-learn ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: ‘C:\Users\username\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\sklearn\datasets\tests\data\openml\292\api-v1-json-data-list-data_name-australian-limit-2-data_version-1-status-deactivated.json.gz’

在这种情况下,可以通过使用 regedit 工具在 Windows 注册表中解除该限制:

  1. 在 Windows 开始菜单中输入 “regedit” 以启动 regedit

  2. 转到 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 键。

  3. 编辑该键的 LongPathsEnabled 属性的值并将其设置为 1。

  4. 重新安装 scikit-learn(忽略之前的损坏安装):

    pip install --exists-action=i scikit-learn