iPAS 備考專區 登入

iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用・114 年第二次・L23・第 18 題

XGBoost 相較於傳統 GBDT 有哪些技術改進?

原題

下列何者最能同時反映 XGBoost(eXtreme Gradient Boosting)相較於傳統梯度提升決策樹(Gradient Boosting Decision Tree, GBDT)的主要技術改進?

白話

XGBoost 是一種在傳統梯度提升決策樹(GBDT)基礎上改進的機器學習方法,在許多競賽和實務場景中都有很好的表現。

題目要問的是:XGBoost 和傳統 GBDT 相比,最核心的技術改進是哪些?

問你:XGBoost 相較於傳統 GBDT 最主要的技術改進是什麼?

一句話總結

XGBoost 相較於傳統 GBDT 的核心改進是:在損失函數中加入正則化項抑制過擬合,同時支援缺失值自動處理,以及透過近似分割演算法實現並行化訓練,大幅提升了速度和泛化能力。

情境

先感受問題:傳統 GBDT 有什麼瓶頸?

「元和數據」的 ML 工程師小凱參加 Kaggle 信用風險預測競賽。他用傳統 GBDT 訓練,遇到幾個問題:

  • 資料中有大量缺失值(客戶的部分財務欄位沒填),要花很多時間預處理。
  • 模型訓練很慢,1000 棵樹要跑好幾小時,無法快速迭代。
  • 驗證集和訓練集的誤差差距很大,過擬合嚴重,但調正則化很麻煩。

切換到 XGBoost 之後,這三個問題都大幅改善:缺失值自動處理、並行化讓訓練快了 10 倍、正則化直接內建在目標函數裡。最後排名也從前 40% 衝進前 5%。

舊方法

傳統 GBDT 的主要限制

  1. 沒有內建正則化:傳統 GBDT 的目標函數只包含損失(loss),沒有正則化項,容易過擬合,需要外部調參(如限制樹深、設定最小樣本數)來間接控制複雜度。
  2. 無法自動處理缺失值:傳統 GBDT 不能直接處理缺失值,需要工程師手動填補(均值填補、前向填補等),增加前處理複雜度。
  3. 訓練速度慢(無法並行):Boosting 的樹是「序列」建立的(第 N+1 棵樹依賴第 N 棵的殘差),但樹內部的分割點搜尋本身是可以並行的,傳統 GBDT 沒有充分利用這一點。
  4. 記憶體效率低:傳統實作將整份資料常駐記憶體,大型資料集訓練時可能超出可用記憶體。
  5. 分割點搜尋效率低:傳統方法對每個特徵的每個可能分割點都精確計算,計算成本隨特徵數和樣本數線性增長。

新方法

XGBoost 的三大核心改進

小凱換用 XGBoost 後的三個主要改進:

改進一:正則化目標函數。XGBoost 把正則化項(L1 或 L2)直接加進目標函數,不是靠超參數間接控制,讓模型在訓練時自動權衡「擬合好」和「不過複雜」,泛化能力更強。

改進二:缺失值自動處理。XGBoost 對每個特徵學習一個「缺失值應往左節點還是右節點」的預設分配方向,讓缺失值在樹分割時自動找到最好的去處,不需要手動填補。

改進三:並行化訓練。雖然 Boosting 的樹序列建立無法並行,但 XGBoost 的樹內部分割點搜尋(Near-exact Greedy Algorithm)採用近似直方圖法,讓不同特徵的最優分割點可以並行計算,大幅加速訓練。

這就是選項 A 講的:引入正則化項以抑制過擬合,並支援缺失值自動處理與並行化訓練。

錯選項

為什麼其他選項是錯的

B改以隨機森林架構取代樹模型以提升準確率

字面在說什麼

隨機森林(Random Forest)是另一種集成學習方法,準確率通常也很高。

為什麼不對

XGBoost 仍然使用決策樹(CART)作為弱學習器,並未改用隨機森林架構。而且隨機森林和 GBDT 是不同的集成策略:隨機森林用 Bagging(並行建多棵獨立的樹),GBDT 和 XGBoost 用 Boosting(序列建樹,每棵樹修正前一棵的殘差)。XGBoost 是 GBDT 的改進,不是替換成隨機森林。

誰會選錯

把「集成學習的改進」自動聯想到「換更好的集成架構」的人,把 Bagging 和 Boosting 混為一談。XGBoost 的改進是在 Boosting 框架內的工程優化,不是換一套完全不同的集成策略。

C以類神經網路取代弱分類器

字面在說什麼

如果把 GBDT 裡的弱學習器(決策樹)換成神經網路,效果是否更強?

為什麼不對

XGBoost 的弱學習器仍然是決策樹(CART),不是神經網路。XGBoost 的改進方向是讓決策樹的組合效果更強、更快、更不過擬合,不是引入完全不同類型的學習器。把 Boosting 的弱學習器換成神經網路是一個不同的研究方向,不是 XGBoost 的改進。

誰會選錯

認為「深度學習永遠更好,所以改進一定是加入神經網路」的人。在結構化資料上,XGBoost 的決策樹組合往往比神經網路效果更好,XGBoost 的改進不需要、也不應該引入神經網路。

D採用批次正規化技術提升模型穩定性

字面在說什麼

批次正規化(Batch Normalization)是深度學習中穩定訓練、加速收斂的常用技術。

為什麼不對

批次正規化是深度神經網路的技術,適用於連續層激活值的分布標準化,和 XGBoost 這種決策樹集成方法完全沒有關聯。XGBoost 的「正規化」是損失函數中的正則化項(限制葉節點數量和葉節點權重),不是批次正規化。兩個詞都有「正規化」但意義完全不同。

誰會選錯

把「批次正規化(Batch Normalization)」和「正則化(Regularization)」混淆的人。前者是深度學習的訓練穩定化技術,後者是控制模型複雜度的懲罰項,雖然名稱相似,但屬於完全不同的概念。

變形題

同個考點下次怎麼變形

延伸

想再往下看,這 5 個

答案、題目或解析有問題?回報這題

出處:iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用 第 18 題

看官方原文 PDF

原題 © 經濟部產業發展署,AITerms.tw 僅作教學解析使用,本站解析以 CC BY-NC-SA 4.0 授權。