HOWTO · Python

在 Python 中安裝 XGBoost

本文說明如何在 Python 中安裝 XGBoost。XGBoost 是一個用於梯度提升決策樹的開源函式庫。

本頁內容

XGBoost 是一個用於梯度提升決策樹的開源函式庫。若要在 Python 中使用,請在專案執行所在的環境中透過 pip 或 conda 安裝。若需要自訂建置方式,或套件版本不支援目前的設定,則可考慮從原始碼建置;這是進階選項。

選擇安裝方式

如果專案已使用 pip,且採用標準的 Python 環境,請選擇 pip。如果專案由 conda 管理,並希望透過其環境與套件工具一併管理相依套件,請選擇 conda。除非了解該環境如何解析套件,否則請避免在同一個環境中混用套件管理工具。

先選取或啟用要使用的環境,再執行該環境的套件管理工具。本文草稿中的套件指令尚未執行。安裝前,請查閱 XGBoost 官方安裝指南及版本文件,確認目前的套件安裝方式,以及支援的 Python 版本與平台組合。

使用 pip 安裝 XGBoost

在預定使用的 Python 環境終端機中執行 python -m pip install xgboost。使用 python -m pip 可將 pip 與該解譯器關聯,降低套件被安裝到另一個 Python 安裝環境的可能性。如果系統中的指令名稱是 python3,請改用 python3 -m pip install xgboost。

若要更新現有的 pip 安裝,請在相同環境中執行 python -m pip install --upgrade xgboost。留意 pip 顯示的相依性或相容性訊息,並依照下方的驗證步驟確認安裝情況。

使用 conda 安裝 XGBoost

先啟用專案使用的 conda 環境,再依照 XGBoost 官方安裝指南中的 conda-forge 指令操作;目前的指令是 conda install -c conda-forge py-xgboost。此指令會選用 conda-forge 頻道和 Python 套件。套件是否可用可能因平台與版本而異,因此安裝或更新前請查閱該指南,並使用其中列出的套件名稱與頻道。

從原始碼建置 XGBoost

若進階使用者需要自訂 XGBoost,或現有套件無法符合其平台與需求,可從原始碼建置。請依照 XGBoost 官方原始碼建置指南,查看適用於作業系統與版本的必要條件及指令。該指南涵蓋原生建置流程與 Python 套件安裝;請遵循最新步驟,不要直接套用通用指令順序,因為建置需求與指令可能會變動。請將建置完成的 Python 套件安裝到專案使用的相同環境中。

驗證安裝並排除常見問題

請使用專案選定的 Python 解譯器執行這段獨立檢查。範例會顯示已安裝的 XGBoost 版本;如果該解譯器找不到套件,則會印出明確訊息。範例中的提示文字維持英文,並未翻譯。

import importlib.util

if importlib.util.find_spec("xgboost") is None:
    print("XGBoost is not installed in this Python environment.")
else:
    import xgboost

    print(f"XGBoost {xgboost.__version__}")
XGBoost is not installed in this Python environment.

如果檢查結果顯示未安裝 XGBoost,但你確實已安裝,請比對安裝時使用的解譯器與執行應用程式時使用的解譯器。使用 pip 時,python -m pip show xgboost 可檢查與該解譯器關聯的套件;使用 conda 時,conda list xgboost 可檢查目前啟用的環境。請在同一個已啟用的環境中安裝並驗證。如果環境相符,請查看完整的匯入錯誤訊息,並在變更相依套件前,查閱適用於作業系統、Python 版本及 XGBoost 版本的官方安裝指南。

常見問題

可以在虛擬環境中安裝 XGBoost 嗎?

可以。先啟用 venv 或 conda 環境,再使用該環境的套件管理工具安裝 XGBoost,並以該環境的 Python 解譯器執行驗證檢查。

支援哪些 Python 版本與平台?

支援情況取決於 XGBoost 版本及可用的套件建置檔。請查閱官方版本文件與安裝文件,確認預定安裝版本支援的 Python 版本及平台。

可以將 XGBoost 與其他機器學習函式庫搭配使用嗎?

XGBoost 提供 Python 套件,可在 Python 專案中與其他函式庫搭配使用。若要進行特定整合,請參閱相關函式庫的最新文件,並確認已安裝的版本彼此相容。