安裝 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()"

使用miniforge 安裝程式安裝 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()"

使用miniforge 安裝程式安裝 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()"

使用miniforge 安裝程式安裝 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 時,請確保使用二進制輪子,並且不要從原始碼重新編譯 NumPy 和 SciPy,這在使用特定作業系統和硬體配置 (例如 Raspberry Pi 上的 Linux) 時可能會發生。

Scikit-learn 的繪圖功能 (即,以 plot_ 開頭的函數和以 Display 結尾的類別) 需要 Matplotlib。範例需要 Matplotlib,而某些範例需要 scikit-image、pandas 或 seaborn。scikit-learn 相依性的最低版本及其用途列在下方。

相依性

最低版本

用途

numpy

1.19.5

建置、安裝

scipy

1.6.0

建置、安裝

joblib

1.2.0

安裝

threadpoolctl

3.1.0

安裝

cython

3.0.10

建置

meson-python

0.16.0

建置

matplotlib

3.3.4

基準測試、文件、範例、測試

scikit-image

0.17.2

文件、範例、測試

pandas

1.1.5

基準測試、文件、範例、測試

seaborn

0.9.0

文件、範例

memory_profiler

0.57.0

基準測試、文件

pytest

7.1.2

測試

pytest-cov

2.9.0

測試

ruff

0.5.1

測試

black

24.3.0

測試

mypy

1.9

測試

pyamg

4.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

7.1.2

文件

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

2.5.6

維護

警告

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 的作業系統和 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 OSX 的 MacPorts#

MacPorts 套件名為 py<XY>-scikits-learn,其中 XY 表示 Python 版本。可以透過輸入以下命令來安裝

sudo port install py39-scikit-learn

所有支援平台的 Anaconda 和 Enthought Deployment Manager#

AnacondaEnthought Deployment Manager 都隨附 scikit-learn,以及 Windows、Mac OSX 和 Linux 的大量科學 Python 程式庫。

Anaconda 作為其免費發行版的一部分提供 scikit-learn。

Intel Extension for Scikit-learn#

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 求解器的相容性。如果您發現 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