什麼是 集成學習(Ensemble Learning)?

集成學習透過結合多個弱學習器,建立一個強學習器,以提高模型的準確性和泛化能力,常見方法包括Bagging、Boosting和Stacking。

核心概念

集成學習的核心概念是「集體智慧」。單個弱學習器可能表現不佳,但透過將多個弱學習器的預測結果結合起來,可以得到一個更準確、更穩定的預測結果。集成學習的關鍵在於如何有效地結合多個弱學習器,以及如何確保弱學習器之間的多樣性。

集成學習方法可以分為以下幾類:

  • Bagging (Bootstrap Aggregating): Bagging透過對原始資料集進行多次有放回的抽樣,生成多個不同的訓練集,然後在每個訓練集上訓練一個弱學習器。最後,將所有弱學習器的預測結果進行平均或投票,得到最終的預測結果。Bagging可以有效地降低模型的方差,減少過擬合的風險。
  • Boosting: Boosting是一種迭代的集成學習方法。它首先訓練一個弱學習器,然後根據該弱學習器的表現,調整訓練資料的權重,使得下一個弱學習器更加關注被前一個弱學習器錯誤分類的樣本。Boosting透過迭代的方式,逐步提高模型的準確性。常見的Boosting演算法包括AdaBoost、Gradient Boosting Machine (GBM) 和 XGBoost。
  • Stacking: Stacking是一種分層的集成學習方法。它首先訓練多個不同的弱學習器,然後將這些弱學習器的預測結果作為新的特徵,訓練一個元學習器 (Meta-Learner)。元學習器負責學習如何有效地結合這些弱學習器的預測結果。Stacking可以有效地利用不同弱學習器的優勢,提高模型的準確性。

運作原理

Bagging的運作原理:

  1. Bootstrap抽樣: 從原始資料集中進行有放回的抽樣,生成多個不同的訓練集。每個訓練集的大小與原始資料集相同,但其中可能包含重複的樣本。
  2. 訓練弱學習器: 在每個訓練集上訓練一個弱學習器。弱學習器可以是決策樹、支持向量機或神經網路等。
  3. 預測結果結合: 對於新的樣本,每個弱學習器都會給出一個預測結果。將所有弱學習器的預測結果進行平均(對於迴歸問題)或投票(對於分類問題),得到最終的預測結果。

Boosting的運作原理 (以AdaBoost為例):

  1. 初始化權重: 為每個訓練樣本分配一個初始權重。通常,所有樣本的初始權重相等。
  2. 迭代訓練: 進行多輪迭代,每輪迭代訓練一個弱學習器。
  3. 調整權重: 在每輪迭代中,根據弱學習器的表現,調整訓練樣本的權重。被弱學習器錯誤分類的樣本的權重會增加,被正確分類的樣本的權重會減少。
  4. 計算弱學習器的權重: 根據弱學習器的準確性,計算該弱學習器的權重。準確性越高的弱學習器,權重越高。
  5. 預測結果結合: 對於新的樣本,每個弱學習器都會給出一個預測結果。將所有弱學習器的預測結果進行加權平均(對於迴歸問題)或加權投票(對於分類問題),得到最終的預測結果。權重由步驟4計算得出。

Stacking的運作原理:

  1. 訓練弱學習器 (Base Learners): 將原始資料集分成訓練集和驗證集。在訓練集上訓練多個不同的弱學習器。
  2. 生成元特徵 (Meta-Features): 使用訓練好的弱學習器對驗證集進行預測,將預測結果作為新的特徵,稱為元特徵。
  3. 訓練元學習器 (Meta-Learner): 使用元特徵和驗證集的真實標籤,訓練一個元學習器。元學習器負責學習如何有效地結合這些弱學習器的預測結果。
  4. 預測結果結合: 對於新的樣本,首先使用弱學習器進行預測,得到元特徵。然後,使用元學習器對元特徵進行預測,得到最終的預測結果。

實際應用

集成學習在許多領域都有廣泛的應用,包括:

  • 影像分類: 集成學習可以用於提高影像分類的準確性。例如,可以使用多個卷積神經網路 (CNN) 進行集成學習,提高影像分類的準確性。
  • 自然語言處理: 集成學習可以用於提高文本分類、情感分析和機器翻譯的準確性。例如,可以使用多個Transformer模型進行集成學習,提高機器翻譯的品質。
  • 金融風險評估: 集成學習可以用於提高信用評分和欺詐檢測的準確性。例如,可以使用多個決策樹模型進行集成學習,提高信用評分的準確性。
  • 醫療診斷: 集成學習可以用於提高疾病診斷的準確性。例如,可以使用多個機器學習模型進行集成學習,提高疾病診斷的準確性。
  • 推薦系統: 集成學習可以用於提高推薦系統的準確性。例如,可以使用多個協同過濾模型進行集成學習,提高推薦的準確性。

實際案例:使用XGBoost進行金融欺詐檢測

金融欺詐檢測是一個典型的集成學習應用場景。欺詐交易通常具有一些特定的模式,但這些模式可能很難被單個機器學習模型捕捉到。使用XGBoost等Boosting演算法可以有效地結合多個弱學習器的優勢,提高欺詐檢測的準確性。XGBoost可以處理高維度資料、缺失值和不平衡資料,並且具有很高的效率和可擴展性。

常見誤區

  • 集成學習一定會提高模型效能: 集成學習並不總是能提高模型效能。如果弱學習器之間的差異性不足,或者元學習器訓練不當,可能會導致集成學習的效能下降。因此,在應用集成學習之前,需要仔細評估其對模型效能的影響。
  • 弱學習器越強越好: 集成學習的關鍵在於弱學習器之間的多樣性,而不是弱學習器的強度。如果弱學習器太強,可能會導致集成學習的過擬合。因此,通常選擇一些簡單的、容易訓練的弱學習器。
  • 集成學習的模型一定很複雜: 集成學習的模型複雜度取決於弱學習器的數量和複雜度。如果弱學習器的數量太多,或者弱學習器太複雜,可能會導致集成學習的模型過於複雜,難以解釋。因此,需要權衡模型效能和可解釋性。
  • Stacking一定比Bagging和Boosting好: Stacking是一種更複雜的集成學習方法,它通常可以取得比Bagging和Boosting更好的效能。但是,Stacking也更容易過擬合,並且需要更多的計算資源。因此,在選擇集成學習方法時,需要根據具體情況進行選擇。

總之,集成學習是一種強大的機器學習技術,可以有效地提高模型的準確性和泛化能力。但是,在應用集成學習時,需要仔細評估其對模型效能和可解釋性的影響,並選擇合適的集成學習方法。

相關術語

常見問題

← 回到 集成學習 快查頁

延伸學習

想看 集成學習 的完整影片教學?前往 美第奇 AI 學院