集成學習是一種通過結合多個模型來提升機器學習預測性能的方法。相較於單一模型,集成學習能產生更準確且穩定的結果,其核心理念是訓練一組分類器(或專家),並通過集體投票來決策。Bagging 和 Boosting 是集成學習中常見的兩種技術,這兩者都能減少單一模型的方差,從而提升模型的穩定性。Bagging跟Boosting 同為同質弱學習器模型,但其工作方式不同,我們將深入探討這兩者之間的差異。
一、Bagging
Bootstrap 聚合,通常稱為 Bagging,是一種機器學習集成方法,目的在提高統計分類和迴歸模型的穩定性和準確性。Bagging 通過減少變異數來避免過度擬合,通常應用於決策樹模型,這是一種模型平均方法的特例。
技術的說明如下:假設有一個包含 d 個元組的數據集 D,在每次迭代中,我們使用替換抽樣的方法(即允許重複選取元組)從 D 中抽取 d 個元組,生成訓練集 Di,並對每個訓練集訓練一個分類器模型 Mi,每個模型 Mi 都會生成其類別預測,最終的 Bagging 模型 M* 會對所有分類器的預測進行投票,並將得票最多的類別分配給未知樣本 X,Bagging 的實作步驟(分為四步驟)
1.從原始數據集中建立多個子集,每個子集包含相等數量的元組,並允許重複選取觀測值。
2.在每個子集上訓練一個基本模型。
3.每個模型在各自的訓練集上進行並行且獨立的學習。
4.將所有模型的預測結果進行組合,確定最終預測。
Figure 1 Bagging的示意圖
隨機森林模型就是應用了 Bagging 技術的最好例子,它通過隨機選擇特徵來生成多棵決策樹,這些隨機樹組成了一個隨機森林。
二、Boosting
Boosting 是一種集成方法,通過結合多個弱分類器來構建一個強分類器,這一過程涉及按順序訓練模型,每個新模型的目標是糾正前一個模型的錯誤。Boosting 的實作步驟(分為四步驟)
1.最初使用訓練數據建立第一個模型。
2.接下來的模型專注於糾正前一模型的錯誤。
3.為數據集中的每個數據點分配權重,錯誤分類的數據點會被賦予更高的權重,而正確分類的則賦予較低的權重。
4.隨後的模型從加權的數據集中學習,重點關注那些較難學習的樣本。
Figure 2 Boosting的示意圖
這個迭代過程會持續到整個訓練數據集被準確預測,或達到預先設定的最大模型數量。Boosting 演算法當中,其中最著名的是 AdaBoost,由 Robert Schapire 和 Yoav Freund 提出。AdaBoost 是一種自適應 Boosting 演算法,通過結合多個「弱分類器」來形成一個「強分類器」。AdaBoost演算法步驟:
1.初始化數據集並為每個數據點分配相等的權重。
2.將此數據集作為模型的輸入,識別錯誤分類的數據點。
3.增加錯誤分類數據點的權重,減少正確分類數據點的權重,並將權重歸一化。
4.如果達到預期結果,則完成演算法,否則重複步驟 2。
三、Bagging 與 Boosting 的相似之處
Bagging 和 Boosting 都是集成學習方法,具有以下相似之處:
1.兩者都通過從一個學習器中生成多個學習器來進行集成。
2.兩者都使用隨機採樣來生成多個訓練數據集。
3.兩者都通過對多個學習器進行平均或多數投票來做出最終決策。
4.兩者都能有效減少變異數並提高模型的穩定性。
參考資料:
https://www.geeksforgeeks.org/bagging-vs-boosting-in-machine-learning/
留言列表