安装 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  # activate
pip install -U scikit-learn

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

python -m pip show scikit-learn  # show scikit-learn version and location
python -m pip freeze             # show all installed packages in the environment
python -c "import sklearn; sklearn.show_versions()"

使用conda-forge 安装程序安装 conda(无需管理员权限)。然后运行

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

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

conda list scikit-learn  # show scikit-learn version and location
conda list               # show all installed packages in the environment
python -c "import sklearn; sklearn.show_versions()"

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

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

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

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

python -m pip show scikit-learn  # show scikit-learn version and location
python -m pip freeze             # show all installed packages in the environment
python -c "import sklearn; sklearn.show_versions()"

使用conda-forge 安装程序安装 conda(无需管理员权限)。然后运行

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

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

conda list scikit-learn  # show scikit-learn version and location
conda list               # show all installed packages in the environment
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  # activate
pip3 install -U scikit-learn

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

python3 -m pip show scikit-learn  # show scikit-learn version and location
python3 -m pip freeze             # show all installed packages in the environment
python3 -c "import sklearn; sklearn.show_versions()"

使用conda-forge 安装程序安装 conda(无需管理员权限)。然后运行

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

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

conda list scikit-learn  # show scikit-learn version and location
conda list               # show all installed packages in the environment
python -c "import sklearn; sklearn.show_versions()"

使用诸如 pip venv 或 conda 之类的隔离环境,可以独立于任何以前安装的 Python 软件包,使用 pip 或 conda 安装特定版本的 scikit-learn 及其依赖项。特别是在 Linux 下,不鼓励将 pip 软件包与发行版(apt、dnf、pacman 等)包管理器管理的软件包一起安装。

请注意,每当您启动新的终端会话时,在运行任何 Python 命令之前,您都应始终记住激活您选择的环境。

如果您尚未安装 NumPy 或 SciPy,您也可以使用 conda 或 pip 安装它们。使用 pip 时,请确保使用 binary wheels(二进制轮子),并且 NumPy 和 SciPy 不会从源代码重新编译,这在使用特定操作系统和硬件配置(例如树莓派上的 Linux)时可能会发生。

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

依赖项

最低版本

用途

numpy

1.22.0

构建、安装

scipy

1.8.0

构建、安装

joblib

1.2.0

安装

threadpoolctl

3.1.0

安装

cython

3.0.10

构建

meson-python

0.16.0

构建

matplotlib

3.5.0

基准测试、文档、示例、测试

scikit-image

0.19.0

文档、示例、测试

pandas

1.4.0

基准测试、文档、示例、测试

seaborn

0.9.0

文档、示例

memory_profiler

0.57.0

基准测试、文档

pytest

7.1.2

测试

pytest-cov

2.9.0

测试

ruff

0.11.7

测试

mypy

1.15

测试

pyamg

4.2.1

测试

polars

0.20.30

文档、测试

pyarrow

12.0.0

测试

sphinx

7.3.7

文档

sphinx-copybutton

0.5.2

文档

sphinx-gallery

0.17.1

文档

numpydoc

1.2.0

文档、测试

Pillow

8.4.0

文档

pooch

1.6.0

文档、示例、测试

sphinx-prompt

1.4.0

文档

sphinxext-opengraph

0.9.1

文档

plotly

5.14.0

文档、示例

sphinxcontrib-sass

0.3.4

文档

sphinx-remove-toctrees

1.0.0.post1

文档

sphinx-design

0.6.0

文档

pydata-sphinx-theme

0.15.3

文档

towncrier

24.8.0

文档

conda-lock

3.0.1

维护

警告

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 要求 Python 3.6—3.8。

Scikit-learn 0.24 要求 Python 3.6—3.9。

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 和 1.5 支持 Python 3.9—3.12。

Scikit-learn 1.6 支持 Python 3.9—3.13。

Scikit-learn 1.7 要求 Python 3.10 或更新版本。

scikit-learn 的第三方发行版#

一些第三方发行版提供了与其软件包管理系统集成的 scikit-learn 版本。

这可以大大简化用户的安装和升级过程,因为这种集成包含了自动安装 scikit-learn 所需的依赖项(numpy、scipy)的功能。

以下是提供自己版本的 scikit-learn 的操作系统和 Python 发行版的不完整列表。

Alpine Linux#

Alpine Linux 的软件包通过官方仓库提供,Python 版本为 py3-scikit-learn。可以通过输入以下命令安装

sudo apk add py3-scikit-learn

Arch Linux#

Arch Linux 的软件包通过官方仓库提供,Python 版本为 python-scikit-learn。可以通过输入以下命令安装

sudo pacman -S python-scikit-learn

Debian/Ubuntu#

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

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

Fedora#

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

sudo dnf install python3-scikit-learn

NetBSD#

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

适用于 Mac OSX 的 MacPorts#

MacPorts 软件包名为 py<XY>-scikits-learn,其中 XY 表示 Python 版本。可以通过输入以下命令安装

sudo port install py312-scikit-learn

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

AnacondaEnthought Deployment Manager 都附带 scikit-learn 以及大量适用于 Windows、Mac OSX 和 Linux 的科学 Python 库。

Anaconda 将 scikit-learn 作为其免费发行版的一部分提供。

适用于 Scikit-learn 的 Intel 扩展#

Intel 维护一个优化的 x86_64 软件包,可在 PyPI(通过 pip)以及 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

通过在 intel/scikit-learn-intelex 上报告的自动化持续集成,检查与标准 scikit-learn 求解器的兼容性。如果您在使用 scikit-learn-intelex 时遇到任何问题,请在其问题跟踪器上报告。

适用于 Windows 的 WinPython#

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

故障排除#

如果您在安装 scikit-learn 时遇到意外故障,可以向问题跟踪器提交问题。在此之前,请务必检查以下常见问题。

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

如果 Python 安装在嵌套位置,例如用户主目录下的 AppData 文件夹结构中,则 pip 在达到 Windows 默认路径大小限制时可能会安装软件包失败,例如

C:\Users\username>C:\Users\username\AppData\Local\Microsoft\WindowsApps\python.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