自助聚合 是什麼?
Bagging:自助聚合 的完整解釋
Bagging (Bootstrap Aggregating) 是一種集成學習技術,透過對原始資料集進行多次有放回的抽樣,訓練多個模型,並將它們的預測結果進行平均或投票。
容易混淆
自助聚合 vs Boosting? 自助聚合:多模型並行訓練後投票或平均 Boosting:模型一個接一個接力修正錯誤 最關鍵的區別:Bagging 強調平行平均,Boosting 強調串接修正
自助聚合 vs 正則化? 自助聚合:偏向降方差 正則化:偏向限制模型複雜度 最關鍵的區別:Bagging 是集成方法,正則化是控制單模型
自助聚合 vs 隨機森林? 自助聚合:常搭配決策樹 隨機森林:在 Bagging 基礎上再加入特徵隨機抽取 最關鍵的區別:隨機森林可以視為 Bagging 的強化版
記住這句就好
很多個不太一樣的答案一起投票,通常更穩
實際案例
風險分類 每個子模型看不同抽樣資料,最後投票決定是否高風險,減少單一模型的偶然失誤
醫療判讀 多個模型對影像給出分數後再平均,結果常比只靠一個模型穩定
算法與應用
重點 你要看什麼 為什麼重要 抽樣 bootstrap 自助抽樣 每個模型看到的資料不完全一樣 組合 投票或平均 把高波動結果拉穩 效果 主要降方差 對容易過擬合的模型很有幫助
名字的由來與運作步驟
Bagging 是 Bootstrap Aggregating 的縮寫,中文譯作自助聚合或裝袋法。名字已經把做法講完了:先 bootstrap,再 aggregate。
第一步,Bootstrap(自助抽樣)。 從原始訓練集裡「有放回」地隨機抽出同樣數量的樣本,組成一份新的訓練集。因為是有放回,同一筆資料可能被抽中好幾次,也可能一次都沒被抽到。
第二步,各自訓練。 每一份抽樣資料訓練一個獨立的模型。這些模型彼此不影響,所以可以完全平行。
第三步,Aggregate(聚合)。 分類任務用多數決投票,回歸任務取平均。
為什麼有效,以及 OOB 這個免費的驗證集
有效的原因是降低變異數。單一棵深樹很容易過擬合,換一批資料訓練結果就大幅變動。但如果訓練很多棵、每棵看的資料都不太一樣,它們的錯誤方向會互相抵消,平均之後就穩定得多。
前提是這些模型要夠不一樣。如果每棵樹都長得差不多,平均起來沒有任何好處。隨機森林在 bagging 之上多做一件事就是為了這個:每次分裂只從隨機挑出的部分特徵裡選,強迫每棵樹走不同的路。
袋外估計(Out-of-Bag,OOB) 是 bagging 附帶的好處。有放回抽樣時,每一份訓練集平均只會涵蓋約 63.2% 的原始樣本,剩下約 36.8% 沒被抽到,這些就叫袋外樣本。
每一筆資料都可以拿沒看過它的那些樹來預測,統計起來就得到一個不需要另外切驗證集的效能估計。資料量不大時這特別有用,等於免費多出一份驗證資料。
那個 63.2% 不是經驗值,是算出來的:n 筆資料抽 n 次,某一筆一直沒被抽到的機率是 (1 − 1/n)ⁿ,n 夠大時趨近 1/e ≈ 0.368。
情境判斷
Q1:如果你的單一決策樹常常忽上忽下,Bagging 有沒有可能幫忙? → 有,因為它常用來降低高方差模型的不穩定性
Q2:如果模型本身已經很穩,而且偏差很高,Bagging 還是首選嗎? → 不一定,因為它主要降方差,對高偏差問題幫助有限
相關術語
常見問題
Bagging 一定要很多模型嗎?
通常模型越多越穩,但也要看成本與邊際效益。
Bagging 和 Random Forest 差在哪?
Random Forest 在 Bagging 之外還加入特徵隨機性,讓樹與樹之間差異更大。
Bagging 會讓模型變慢嗎?
訓練和推論都可能變重,但常能換到更穩的表現。