# 【學習筆記】Ensemble Learning 在機器學習相關競賽中,集成學習 (Ensemble Learning) 是非常常使用到的技巧,而且能夠大幅提升預測的表現,擠進 leaderboard 前段班。 集成學習將**多個模型的結果組合在一起**,來獲得比單獨使用一種方法更好的結果。 ### 為何要使用集成學習? - 彌補單一模型的不足 每個模型在學習時都有其 bias 和 variance。單一模型可能在某些資料點上表現很好,但在其他點上卻不理想。集成學習可以通過集合這些不同模型的結果,平均掉個別模型的錯誤。 - 保留各種模型的優點 不同的模型可能從資料中學習到不同的模式和關係,集成多種類型的模型可以利用它們各自的優勢,從資料中獲得更豐富的資訊。 ### Voting 由多個 base learner 進行投票,獲得高分的結果即為最終結果。 - Hard Voting 直接根據 learner 預測的標籤進行多數決 - Soft Voting 平均每一個 learner 預測樣本為某一個標籤的**機率值**,計算得到的最終機率才是對應的預測結果 ### Averaging 平均多個 base learner 的結果來獲得最終預測值,即 $$ P_\text{ens}(x) = \frac{1}{N}\sum^N_{i = 1} P_i(x) $$ 當然也可以使用加權平均 $$ P_\text{ens}(x) = \sum^N_{i = 1} w_i P_i(x) $$ ### Bagging Bagging 使用在同質的 weak leaners,使用一種稱為 bootstrap resampling 的技術,從一個初始訓練資料集中衍生出多個新資料集,具體而言,一個訓練資料集包含 n 筆樣本,bootstrap resampling 會從該資料集中複製 n 個樣本到一個新的子樣本資料集,其中一些可能會出現多次,而另一些則可能完全被排除,新的子樣本資料集就是 bootstrap sample。這些 bootstrap samples 會個別用來訓練 base learners,最後再將這些 base learner 的預測結果用於投票或者平均得到結果。 隨機森林就是 bagging 的一種應用,隨機森林演算法透過 bagging 建立多個 decision tree,再將他們的結果整合起來。  ### Boosting Boosting 也是考慮同質的 weak learners,此演算法使用一連串的集成,每一個 learner 都會根據先前的錯誤進行學習,用以修正錯誤,最後再將所有 learner 的結果總合在一起產生最終的預測。 兩種最著名的 Boosting 方法: - AdaBoost (Adaptive Boosting): 在訓練下一個學習器時,AdaBoost 會為前一個學習器錯誤分類的樣本增加權重,讓下一個學習器優先處理錯誤分類的樣本。 - Gradient Boosting: 讓每個新的 learner 去預測當前集成模型對損失函數的負梯度(或者說是當前的 residual),以彌補預測的差距。  ### Stacking Stacking 通常集成異質模型,具體做法是:從相同的資料集訓練多個 learner,但每個使用不同的訓練演算法。接著每個 learner 會對一個未見過的資料集進行預測,這些第一層模型的預測結果隨後被彙整起來,並用於訓練最終的模型,即 meta learner。 用於訓練 meta learner 的資料集必須與訓練 base learner 的資料集不同,如果使用相同的資料集來訓練,可能會導致 overfitting,因為 base learner 已經看過這些 meta learner 的訓練資料。實務上可以使用 K-Fold cross validation 來實現,對於某個 base model $M_i$,將他的 validation set 用 $M_i$ 來預測得到 out-of-fold prediction $OOF_i$,最終 k 個模型可以讓我們得到 $D = \{OOF_1, OOF_2, ..., OOF_k\}$,用來訓練 meta learner。  ### Blending Blending 其實是 stacking 的一種,主要特點是 Blending 通常會將資料集分割成兩個部分:base training set 和 holdout set。所有 base learner 都在 base training set 上進行訓練,對 holdout set 進行預測後,再用這些預測的結果訓練 meta model。Blending 放棄了 K-Fold cross validation 的複雜性,因此效率較高,但是 meta model 的訓練集較小。 --- Reference: [1] https://zh.wikipedia.org/zh-tw/%E9%9B%86%E6%88%90%E5%AD%A6%E4%B9%A0 [2] https://blog.csdn.net/hellocsz/article/details/102486312 [3] https://www.ibm.com/think/topics/ensemble-learning [4] https://medium.com/@stevenyu530_73989/stacking-and-blending-intuitive-explanation-of-advanced-ensemble-methods-46b295da413c
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.