ANGELA JIAN
LOADING
回到課程總覽
第 25 篇 L11302 機器學習進階

集成學習:三個臭皮匠勝過一個諸葛亮

Angela Jian
Angela Jian 簡琬庭
iPAS AI 應用規劃師 / AI Product Builder

一、學習目標

  1. 理解為什麼集成學習(Ensemble Learning) 能比單一模型表現更好
  2. 掌握三大集成策略的原理與差異:Bagging、Boosting、Stacking
  3. 理解 Random Forest 如何在 Bagging 基礎上加入特徵隨機性
  4. 了解 Boosting 家族:AdaBoost、Gradient Boosting、XGBoost、LightGBM 的演進脈絡
  5. 熟悉偏差-變異數權衡(Bias-Variance Tradeoff) 與集成方法的對應關係

二、核心內容

2.1 為什麼需要集成學習?

任何單一機器學習模型都有盲點:決策樹容易過擬合、線性模型表達能力有限、神經網路需要大量資料。集成學習(Ensemble Learning) 的核心思想是:組合多個模型,讓它們互補,整體表現超越個體

生活類比:

你生病了,想確認診斷。如果只問一位醫生,他的判斷可能受限於他的專業背景或當天的狀態。但如果同時諮詢五位不同科別的醫生,最後綜合他們的意見——看法一致的部分更可信,個別醫生的偏見被平均掉。集成學習就是這種「多醫生會診」機制。

集成學習有效的三個前提

前提說明
多樣性(Diversity)各模型犯的錯誤不同,才能互相彌補
準確性(Accuracy)每個模型要比隨機猜測好,否則集成沒有意義
獨立性(Independence)模型之間的錯誤盡量不相關

集成方法的三大策略概覽

策略訓練方式代表演算法
Bagging平行訓練,各自獨立Random Forest
Boosting序列訓練,後者修正前者AdaBoost、XGBoost、LightGBM
Stacking多層訓練,元模型整合Stacking Ensemble

2.2 策略一:Bagging(自助聚合)

Bagging(Bootstrap Aggregating,自助聚合) 的流程:

  1. 從原始訓練集有放回地抽樣(Bootstrap Sampling),生成多個不同的子資料集
  2. 在每個子資料集上獨立、平行地訓練一個基礎模型(Base Learner)
  3. 最終預測時,投票(分類)平均(迴歸) 所有模型的輸出
原始資料集
    ↓ (有放回抽樣)
子資料集1 → 模型1 ─┐
子資料集2 → 模型2 ─┤→ 投票/平均 → 最終預測
子資料集3 → 模型3 ─┘

生活類比:

想了解台北市民對某政策的看法。你不只問一群人,而是隨機抽取十組各 500 人的樣本(有些人可能被多次抽到),對每組分別做民調,最後綜合十組的結論。這樣可以消除單一樣本的偏差,得到更穩定的估計——這就是 Bootstrap Sampling(自助抽樣) 的精神。

Bagging 的核心優勢

  • 降低變異數(Reduce Variance):各模型的隨機誤差互相平均後消除
  • 抗過擬合:即使個別模型過擬合,集成後結果更穩健
  • 可平行計算:各模型獨立訓練,速度快

考試重點:Bagging 的關鍵是有放回抽樣(Bootstrap Sampling with Replacement),各模型平行訓練,最後投票或平均。Bagging 的主要作用是降低變異數(Variance)


2.3 Random Forest:Bagging 加上特徵隨機性

Random Forest(隨機森林) 是目前最受歡迎的 Bagging 延伸,在 Bagging 的基礎上增加一個關鍵機制:特徵隨機性(Feature Randomness)

Random Forest 的流程:

  1. Bootstrap 抽樣,生成多個子資料集(同 Bagging)
  2. 每個決策樹在分裂節點時,不考慮所有特徵,而是隨機選取一個子集的特徵來選最佳分裂點
  3. 最終投票或平均

生活類比:

想像一場辯論賽,你有一百位辯手。如果每個人都看完所有資料,他們的論點會很相似——一旦資料有偏差,所有人都被誤導。但如果規定每位辯手只能隨機讀五份資料(從二十份中隨機選),每個人看到的資料不同,觀點更多元。特徵隨機性就是這個「每人只讀部分資料」的規定,讓每棵樹都長得不一樣,集成效果更好。

隨機森林 vs 一般 Bagging 決策樹

維度一般 Bagging 決策樹Random Forest
資料抽樣Bootstrap 抽樣Bootstrap 抽樣
特徵選取每次分裂考慮所有特徵每次分裂只考慮隨機子集特徵
樹的多樣性較低更高
整體效果良好通常更好,過擬合風險更低

Random Forest 的實用特性

  • 可輸出特徵重要性(Feature Importance),幫助理解哪些變數最關鍵
  • 對缺失值和異常值相對穩健
  • 幾乎不需要資料標準化
  • 是機器學習競賽中快速建立 Baseline 的首選

考試重點:Random Forest = Bagging + 特徵隨機性(Feature Randomness)。每棵樹分裂時只考慮隨機選取的特徵子集,讓樹之間更多樣化,是 Bagging 效果進一步提升的關鍵。


2.4 策略二:Boosting(提升法)

Boosting 的核心思想和 Bagging 完全不同:不是平行訓練多個獨立模型,而是序列訓練——每一個新模型都專注於修正前一個模型的錯誤。

資料集 → 模型1(基礎) → 找出模型1的錯誤

        模型2(修正模型1的錯誤) → 找出剩餘錯誤

        模型3(修正模型1+2的錯誤) → ...

        加權組合所有模型 → 最終預測

生活類比:

你在準備考試,每次模擬考之後:第一次考試找出你的弱點(錯題),第二次重點複習那些錯題,第三次再針對還是錯的題目加強……每一輪都在修正前一輪的殘餘問題。Boosting 就是這種「每次針對弱點加強」的學習策略

Boosting 的核心優勢

  • 降低偏差(Reduce Bias):通過不斷修正錯誤,讓模型逐漸逼近真實答案
  • 精度通常高於 Bagging:因為有針對性地修正弱點
  • 缺點:序列訓練速度較慢;如果資料有噪音,可能過度擬合噪音

考試重點:Boosting 是序列訓練,每個模型修正前一個的錯誤,主要作用是降低偏差(Bias)。與 Bagging 的平行訓練、降低變異數形成對比,這是最常考的比較點。

AdaBoost(自適應提升)

AdaBoost(Adaptive Boosting) 是最早成熟的 Boosting 演算法,核心機制:

  • 初始時,每個樣本權重相同
  • 每一輪訓練後,被分類錯誤的樣本權重增加,被正確分類的樣本權重降低
  • 下一個模型會更「關注」那些高權重(難以正確分類)的樣本
  • 最終預測是所有模型的加權投票(準確率高的模型權重更大)

生活類比:

考試錯了的題,下次複習時在旁邊標上「★★★ 重要,必須再練」——AdaBoost 就是在自動幫你貼星星,讓下一輪的複習更聚焦在難題上。

Gradient Boosting(梯度提升)

Gradient Boosting 將 Boosting 問題轉化為梯度下降優化問題,每個新模型不是修正「被錯分的樣本」,而是直接擬合上一輪模型的殘差(Residuals)——也就是預測值和真實值之間的差距。

生活類比:

你預測明天氣溫為 25°C,實際是 28°C,殘差是 +3°C。下一個模型的任務就是預測這個「+3°C 的誤差」,把它補回來。每一輪都在補上一輪沒補到的誤差——Gradient Boosting 是逐步「補差」的過程


2.5 XGBoost 與 LightGBM:Gradient Boosting 的工業級實現

XGBoost(極端梯度提升)

XGBoost(Extreme Gradient Boosting) 在 Gradient Boosting 基礎上加入三大改進,成為資料科學競賽的長年霸主:

改進說明
正則化(Regularization)L1/L2 正則化防止過擬合,是與普通 Gradient Boosting 最大的差異
平行化(Parallelization)在尋找最佳分裂點時可以平行計算,訓練速度大幅提升
缺失值處理自動學習缺失值的最佳填補方向,不需要手動處理

生活類比:

如果 Gradient Boosting 是手工製作的高級家具——品質好,但費時費力;XGBoost 是引入了現代化工具和品質管控(正則化)的改良工坊——不只更快,品質更穩定,還能自動處理各種問題(缺失值)。

LightGBM(輕量梯度提升機)

LightGBM 由微軟提出,在 XGBoost 基礎上針對速度進一步優化:

特性傳統 Gradient BoostingXGBoostLightGBM
樹的生長策略按層生長(Level-wise)按層生長按葉生長(Leaf-wise)
訓練速度最快
記憶體使用最低
在大資料上的效果尚可良好最佳

Leaf-wise 生長 vs Level-wise 生長

傳統方法像蓋樓,每一層都要鋪滿才能蓋下一層;LightGBM 像長藤蔓,優先往最有潛力的方向(最大損失減少的葉子)繼續生長,不管其他葉子——因此在同樣計算量下,能建出更準確的樹。


2.6 策略三:Stacking(堆疊法)

Stacking(Stacked Generalization,堆疊泛化) 的流程比 Bagging 和 Boosting 都複雜:

  1. 第一層(Base Layer):訓練多個不同類型的基礎模型(如:決策樹、SVM、神經網路、Logistic Regression)
  2. 將基礎模型的輸出(預測結果) 作為新特徵
  3. 第二層(Meta Layer):訓練一個元模型(Meta-model),學習如何最佳地組合基礎模型的輸出
訓練資料

基礎模型1(決策樹)  ─┐
基礎模型2(SVM)     ─┤→ 基礎模型的預測 → 元模型 → 最終預測
基礎模型3(神經網路)─┘

生活類比:

想像一個法庭審判。多位專家證人(基礎模型)各自從不同角度提供證詞——法醫說死亡原因、心理學家說行為動機、財務專家說資金流向。最後,法官(元模型)綜合所有專家的意見,做出最終判決。Stacking 就是這個「多專家 + 法官整合」的架構

Stacking 的關鍵特點

  • 基礎模型種類越多元越好(不同演算法帶來不同角度的資訊)
  • 元模型通常用簡單模型(如 Logistic Regression),避免過擬合
  • 需要使用交叉驗證(Cross-validation) 生成基礎模型的預測,避免資料洩漏

考試重點:Stacking 使用多個異質性基礎模型(不同演算法),再用元模型(Meta-model) 整合它們的輸出。元模型的輸入是基礎模型的預測值,而非原始特徵——這是 Stacking 的核心概念,也是與 Bagging/Boosting 最大的差異。


2.7 三大策略全面比較

維度BaggingBoostingStacking
訓練方式平行(獨立)序列(後者修正前者)兩層(基礎層 + 元層)
基礎模型同質(通常同一演算法)同質(通常同一演算法)異質(不同演算法)
主要降低變異數(Variance)偏差(Bias)偏差 + 變異數
過擬合風險中(資料有噪音時偏高)高(需仔細設計)
訓練速度快(可平行)慢(必須序列)慢(多層訓練)
代表演算法Random ForestXGBoost、LightGBM、AdaBoostStacking Ensemble
使用難度低(參數少)中(需調較多超參數)高(設計複雜)

2.8 偏差-變異數權衡(Bias-Variance Tradeoff)

理解集成方法的底層邏輯,需要先理解偏差-變異數權衡(Bias-Variance Tradeoff)

概念說明類比
偏差(Bias)模型預測的平均誤差——模型是否對準了目標?射箭時,每次都射偏右邊
變異數(Variance)模型預測的分散程度——模型是否穩定?射箭時,落點四散不集中
高偏差(欠擬合)模型太簡單,連訓練資料都學不好弓箭手技術差,系統性偏左
高變異數(過擬合)模型太複雜,記住了訓練資料的噪音弓箭手不穩定,射得到處都是

集成方法與偏差-變異數的關係

Bagging → 降低變異數(Variance↓),偏差幾乎不變
          適合:本身偏差低但變異數高的模型(如完整決策樹)

Boosting → 降低偏差(Bias↓),但可能增加變異數
           適合:本身偏差高但變異數低的模型(如淺層決策樹/Stump)

生活類比:

Bagging 像讓一百位射手各自練習後取平均落點——就算每個人各有偏差,平均之後偏差不變,但落點的分散程度大幅降低(變異數降低)。

Boosting 像一位射手每次射完後調整瞄準角度——逐步把系統性偏差(Bias)修正掉,讓準心越來越正,但調整過度可能造成不穩定(變異數增加)。

考試重點Bagging 主要降低變異數(Variance),Boosting 主要降低偏差(Bias)。這是考題最常考的對比。決策樹天生「高變異數」,所以最適合用 Bagging(Random Forest)。淺層決策樹(Stump)天生「高偏差」,最適合用 Boosting(AdaBoost)。


2.9 實戰建議:何時用哪種方法?

情境推薦方法原因
快速建立 BaselineRandom Forest幾乎不需要調參,效果穩定
表格資料競賽(Kaggle 等)XGBoost / LightGBM業界公認最強表格資料模型
資料量非常大(百萬筆以上)LightGBM速度最快、記憶體效率最高
追求最高精度(時間充裕)Stacking組合多種模型,上限更高
資料有大量噪音Random Forest(Bagging)Boosting 在噪音資料上容易過擬合
特徵工程後的結構化資料XGBoost對特徵交互作用的捕捉能力強

XGBoost 的超參數調優重點

超參數作用調整方向
n_estimators樹的數量搭配 Early Stopping 使用
max_depth樹的最大深度3-8 之間,越大越易過擬合
learning_rate每棵樹的貢獻比例越小越穩定,但需要更多樹
subsample每棵樹使用的樣本比例0.6-0.9,降低變異數
colsample_bytree每棵樹使用的特徵比例0.6-0.9,類似 Random Forest 的特徵隨機性

三、關鍵名詞中英對照

中文英文說明
集成學習Ensemble Learning組合多個模型提升整體性能的學習策略
自助聚合Bagging (Bootstrap Aggregating)有放回抽樣、平行訓練、投票/平均
有放回抽樣Bootstrap Sampling with Replacement抽完的樣本放回去,可被再次抽到
隨機森林Random ForestBagging + 特徵隨機性,基礎模型為決策樹
特徵重要性Feature Importance模型輸出的各特徵對預測的貢獻程度
提升法Boosting序列訓練,每個模型修正前一個的錯誤
自適應提升AdaBoost (Adaptive Boosting)給錯分樣本更高權重的 Boosting 方法
梯度提升Gradient Boosting通過擬合殘差進行序列提升的方法
殘差Residuals模型預測值與真實值之間的差距
極端梯度提升XGBoost (Extreme Gradient Boosting)加入正則化和平行化的改良 Gradient Boosting
輕量梯度提升機LightGBM (Light Gradient Boosting Machine)按葉生長策略的高速 Gradient Boosting
按葉生長Leaf-wise Growth優先展開損失減少最多的葉子節點
堆疊法Stacking (Stacked Generalization)用元模型整合多個異質基礎模型輸出的策略
基礎模型Base Learner / Base Model集成架構中的個別子模型
元模型Meta-modelStacking 中整合基礎模型輸出的第二層模型
偏差Bias模型預測的系統性誤差,偏差高代表欠擬合
變異數Variance模型對訓練資料波動的敏感程度,變異數高代表過擬合
偏差-變異數權衡Bias-Variance Tradeoff降低偏差往往增加變異數,兩者需要平衡
早停法Early Stopping當驗證集效果不再提升時停止訓練,防止過擬合

四、考試重點提示

考試重點:三大集成策略的訓練方式——Bagging 是平行訓練(各模型獨立);Boosting 是序列訓練(後一個模型修正前一個的錯誤);Stacking 是兩層訓練(基礎模型 + 元模型)。這是最常考的三路比較題。

考試重點Bagging 降低變異數(Variance),Boosting 降低偏差(Bias)。記憶口訣:Bagging 讓「亂」的模型「穩」下來(降低 Variance);Boosting 讓「差」的模型「準」起來(降低 Bias)。

考試重點Random Forest = Bagging + 特徵隨機性(Feature Randomness)。關鍵差異:Random Forest 在每個節點分裂時只從隨機選取的特徵子集中找最佳分裂,普通 Bagging 決策樹則考慮所有特徵。這個機制讓各棵樹更多樣化。

考試重點XGBoost 的三大優勢:正則化(防過擬合)、平行化(訓練快)、自動處理缺失值。XGBoost 是「Gradient Boosting + 正則化」,LightGBM 進一步加入「按葉生長(Leaf-wise)」讓速度更快。

考試重點Stacking 的元模型(Meta-model) 的輸入是基礎模型的預測結果,而非原始特徵。基礎模型應使用不同種類的演算法(異質性),才能帶來互補資訊。元模型通常選用簡單模型(如 Logistic Regression)避免過擬合。

考試重點:Boosting 在含有大量噪音的資料上容易過擬合(因為它會努力擬合每個被錯分的樣本,包括噪音),此時 Bagging(Random Forest)是更穩健的選擇。


隨堂小測驗

Q1. 下列哪一項最能描述 Bagging(Bootstrap Aggregating)的訓練流程?

  • A. 依序訓練多個模型,每個模型專門修正前一個模型的錯誤
  • B. 對原始資料進行有放回抽樣,生成多個子資料集,平行訓練多個模型,最後投票或平均
  • C. 先訓練多個基礎模型,再用這些模型的輸出作為特徵訓練第二層元模型
  • D. 給被錯誤分類的樣本增加權重,讓後續模型更關注難分類的樣本

Q2. Random Forest(隨機森林)在 Bagging 的基礎上,額外加入了什麼機制使效果更好?

  • A. 序列訓練,讓後一棵樹修正前一棵樹的殘差
  • B. 使用元模型(Meta-model)整合所有決策樹的輸出
  • C. 每個節點分裂時,只從隨機選取的特徵子集中找最佳分裂點,增加樹的多樣性
  • D. 對被錯分的訓練樣本增加抽樣權重,使下一棵樹更關注困難樣本

Q3. 關於 Bagging 和 Boosting 對「偏差-變異數」的影響,下列敘述何者正確?

  • A. Bagging 主要降低偏差(Bias);Boosting 主要降低變異數(Variance)
  • B. Bagging 主要降低變異數(Variance);Boosting 主要降低偏差(Bias)
  • C. Bagging 和 Boosting 都主要降低變異數(Variance)
  • D. Bagging 和 Boosting 都主要降低偏差(Bias)

Q4. Stacking(堆疊法)的「元模型(Meta-model)」的輸入資料是什麼?

  • A. 原始訓練資料的所有特徵
  • B. 只有樣本標籤(Label),不包含任何特徵
  • C. 各基礎模型(Base Models)的預測結果,作為新的特徵
  • D. Bootstrap 抽樣後的子資料集

Q5. 某資料科學家在 Kaggle 競賽中處理一個有 500 萬筆資料的表格資料集,需要在有限時間內得到最高精度。下列哪種方法最適合?

  • A. 單一決策樹(Decision Tree),因為最易解釋
  • B. Random Forest,因為幾乎不需要調參
  • C. LightGBM,因為採用按葉生長策略,在大資料量下速度最快且效果優秀
  • D. Stacking,因為組合最多模型,精度必然最高

解答與解析

題號答案解析
Q1BBagging(Bootstrap Aggregating)的核心流程是:① 對原始資料進行有放回抽樣(Bootstrap Sampling with Replacement),生成多個子資料集;② 在各子資料集上平行、獨立地訓練基礎模型;③ 預測時投票(分類)平均(迴歸)。選 A 描述的是 Boosting;選 C 描述的是 Stacking;選 D 描述的是 AdaBoost 的樣本加權機制。
Q2CRandom Forest 在 Bagging 的基礎上加入特徵隨機性(Feature Randomness):每棵決策樹在每個節點分裂時,不考慮所有特徵,而是從隨機選取的特徵子集中尋找最佳分裂點。這讓各棵樹的結構更加多樣化,集成效果更好,進一步降低過擬合風險。選 A 是 Boosting;選 B 是 Stacking;選 D 是 AdaBoost。
Q3B這是最核心的考點:Bagging 主要降低變異數(Variance)——通過平均多個模型的隨機誤差,讓整體預測更穩定;Boosting 主要降低偏差(Bias)——通過序列修正錯誤,讓模型逐漸逼近真實答案。記憶口訣:Bagging 讓「亂」變「穩」(Variance↓),Boosting 讓「差」變「準」(Bias↓)。
Q4CStacking 的運作分兩層:第一層基礎模型(Base Models)對訓練資料做預測;第二層元模型(Meta-model)的輸入正是這些基礎模型的預測結果,而非原始特徵。元模型學習如何最佳地組合各基礎模型的預測,做出最終判斷。這個設計讓元模型能利用不同演算法各自的優勢。
Q5CLightGBM 是處理大規模表格資料的首選:① 採用按葉生長(Leaf-wise)策略,在同等計算量下建出更準確的樹;② 記憶體效率最高;③ 速度在三種 Gradient Boosting 實現中最快。500 萬筆資料、時間有限的情境下,LightGBM 優於 XGBoost。Stacking 雖然精度上限高,但設計複雜、訓練耗時,選 D 忽略了「時間有限」的限制條件。