---
title: "極限梯度提升（XGBoost）"
slug: xgboost
language: zh-TW
source: https://aiterms.tw/terms/xgboost
updated_at: 2026-07-30
tags: [機器學習, 梯度提升, XGBoost, 工業級, 表格資料]
ipas_term: false
---

# 極限梯度提升（XGBoost）

一個高效、可擴展的梯度提升實現，引入二階導數、正則化和缺失值處理，成為工業級標準。

## 完整說明

XGBoost（eXtreme Gradient Boosting，極限梯度提升）由 Tianqi Chen 在 2014 年開源，是梯度提升框架在工程實現上的一次重大飛躍。相比於傳統的梯度提升，XGBoost 加入了二階泰勒展開、內建正則化、自動缺失值處理、並列處理等優化，使訓練速度快 10 倍，性能更優，同時支持自定義損失函數和評估指標。XGBoost 自發布以來就統治了 Kaggle 競賽，至今仍是最常用的表格資料機器學習工具。

## 常見問題

### XGBoost 中二階梯度（Hessian）為什麼這麼重要？

梯度（一階導數）告訴我們「損失函數在當前點的方向」，Hessian（二階導數）告訴我們「這個方向的曲率有多大」。直觀比喻：一階梯度告訴你「下山往哪走」，二階梯度告訴你「陡峭程度」，幫助你決定步長和更新的激進程度。在最優化中，二階信息（如牛頓法）通常比一階方法（如梯度下降）更精確、收斂更快。XGBoost 在分裂點選擇時使用 Hessian，能更精確地評估每個分裂的收益，結果是更優的樹結構，同等模型複雜度下性能更好，或同等性能下模型更簡潔。這是 XGBoost 相比傳統梯度提升的關鍵優勢之一。

### 什麼時候應該用 XGBoost，什麼時候用 LightGBM？

選擇的主要考量是資料規模和調優精力：資料量 < 100 萬且需要快速迭代 → XGBoost 優先，因為它對超參數容錯度高，預設參數通常表現不錯；資料量 > 100 萬或追求競賽最高分 → LightGBM 優先，它的訓練速度和記憶體效率明顯更優，並且若有充分調優能達到更好的性能；若有大量類別特徵且不想手工編碼 → CatBoost。在沒有明確瓶頸的情況下，XGBoost 是最穩妥的選擇，因為社區最大、教學資源最豐富、出問題最容易找到解決方案。

### XGBoost 怎麼用早停防止過擬合？

做法很簡單：在 fit 時傳入 eval_set（驗證集）和 early_stopping_rounds，XGBoost 會在每輪迭代後在驗證集上評估，若驗證性能連續 early_stopping_rounds 輪（如 10 輪）沒有改善，就停止訓練。示例：`model.fit(X_train, y_train, eval_set=[(X_val, y_val)], early_stopping_rounds=10, verbose=50)`。早停的驗證集應該獨立於訓練集（不能混入訓練資料的一部分，否則對評估是欺騙），且大小至少幾千樣本。早停結合較低的學習率（0.01–0.05）是防止 XGBoost 過擬合的標配做法，往往比複雜的正則化調優更有效。

---

來源：https://aiterms.tw/terms/xgboost
快查頁：https://aiterms.tw/terms/xgboost
最後更新：2026/07/30
深度解說：https://aiterms.tw/learning/what-is-xgboost