安装 scikit-learn#
有多种安装 scikit-learn 的方式
安装最新的正式版本。对于大多数用户来说,这是最好的方法。它将提供一个稳定版本,并且预构建的包适用于大多数平台。
安装由您的操作系统或 Python 发行版提供的 scikit-learn 版本。对于那些操作系统或 Python 发行版分发 scikit-learn 的用户来说,这是一个快速的选择。它可能无法提供最新的发布版本。
安装每夜构建版本。这是尝试将在下一个版本中发布的新功能(即最近合并到主分支的拉取请求中的功能)的最快方法;或者检查您遇到的错误是否已在上次发布后得到修复。
从源代码构建包。这主要适用于希望为项目做出贡献的用户,因为它允许安装项目的可编辑版本。
安装最新版本#
安装 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,请从您的发行版的包管理器中安装 python3 和 python3-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 这样的隔离环境,可以使用 pip 或 conda 安装特定版本的 scikit-learn 及其依赖项,而不受任何先前安装的 Python 包的影响。特别是在 Linux 下,不鼓励将 pip 包与由发行版包管理器(apt、dnf、pacman...)管理的包一起安装。
请注意,每当您启动新的终端会话时,您都应始终记得在运行任何 Python 命令之前激活您选择的环境。
如果您尚未安装 NumPy 或 SciPy,您也可以使用 conda 或 pip 安装它们。使用 pip 时,请确保使用 *二进制 wheel*,并且 NumPy 和 SciPy 不是从源代码重新编译的,这在使用特定的操作系统和硬件配置(例如 Raspberry Pi 上的 Linux)时可能会发生。
Scikit-learn 的绘图功能(即以 plot_ 开头的函数和以 Display 结尾的类)需要 Matplotlib。示例需要 Matplotlib,某些示例需要 scikit-image、pandas 或 seaborn。下面列出了 scikit-learn 依赖项的最低版本及其用途。
依赖项 |
最低版本 |
用途 |
|---|---|---|
numpy |
1.24.1 |
构建、安装 |
scipy |
1.10.0 |
构建、安装 |
joblib |
1.3.0 |
安装 |
threadpoolctl |
3.2.0 |
安装 |
cython |
3.1.2 |
构建 |
meson-python |
0.17.1 |
构建 |
matplotlib |
3.6.1 |
基准测试、文档、示例、测试 |
scikit-image |
0.22.0 |
文档、示例 |
pandas |
1.5.0 |
基准测试、文档、示例、测试 |
seaborn |
0.13.0 |
文档、示例 |
memory_profiler |
0.57.0 |
基准测试、文档 |
pytest |
7.1.2 |
测试 |
pytest-cov |
2.9.0 |
测试 |
ruff |
0.11.7 |
测试 |
mypy |
1.15 |
测试 |
pyamg |
5.0.0 |
测试 |
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 |
10.1.0 |
文档 |
pooch |
1.8.0 |
文档、示例、测试 |
sphinx-prompt |
1.4.0 |
文档 |
sphinxext-opengraph |
0.9.1 |
文档 |
plotly |
5.18.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 的包通过官方仓库提供,名称为 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(低级实现和绑定)、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 OS X 的 MacPorts#
MacPorts 包名为 py<XY>-scikit-learn,其中 XY 表示 Python 版本。可以通过键入以下命令安装
sudo port install py312-scikit-learn
适用于所有支持平台的 Anaconda 和 Enthought Deployment Manager#
Anaconda 和 Enthought Deployment Manager 都附带 scikit-learn 以及适用于 Windows、Mac OS X 和 Linux 的大量科学 python 库。
Anaconda 将 scikit-learn 作为其免费发行版的一部分提供。
Intel Extension for Scikit-learn#
Intel 维护一个优化的 x86_64 包,可通过 PyPI(通过 pip)以及 main、conda-forge 和 intel 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 时遇到任何问题,请在他们的 问题跟踪器 上报告问题。
适用于 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 注册表中解除此限制
在 Windows 开始菜单中键入“regedit”以启动
regedit。转到
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem键。编辑该键的
LongPathsEnabled属性的值并将其设置为 1。重新安装 scikit-learn(忽略以前损坏的安装)
pip install --exists-action=i scikit-learn
安装每夜构建版本#
scikit-learn 项目的持续集成服务器每晚为最新 Python 版本构建、测试和上传 wheel 包。
您可以使用 anaconda.org 的 PyPI 注册表中的 scientific-python-nightly-wheels 索引来安装 scikit-learn 的每夜构建版本
pip install --pre --extra-index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple scikit-learn
请注意,可能需要先卸载 scikit-learn 才能安装 scikit-learn 的每夜构建版本。