# 【學習筆記】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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up