在學習 Random Forest 時,許多文章中都提到了 Bagging 與 Boosting。
另外,在戴士翔老師【Python實作】生活中的資料科學,用模型挑出高C/P智慧型手機一文中也曾出現 XGBoosting。
究竟這些 Bagging, Boosting, XGBoosting 是什麼呢?
Bagging, Boosting 是兩種不同的集成方法。
而集成方法是將不同的分類器集合,並進行綜合預測的方法。
Random Forest 就是一種常見的 Bagging 方法; GBM, XGBoosting, LightGBM, CatBoost 則是 Boosting 方法。
Bagging(裝袋法)
將資料丟進袋子中,以取後放回的方式進行抽取。最後將各分類器的結果進行多數決。
以 Random Forest 為例,每棵決策樹都是一次取後放回的結果;最後將每棵樹的結果在進行一次多數決。
Boosting(提升法)
Y1 = f(x) + h(x) = (前幾個調過權重的分類器 f(x)) + (用f(x)產生的一個新分類器h(x))
Y2 = Y1 + u(x) = (f(x) + h(x)) + u(x) = (前幾個調過權重的分類器(f(x) + h(x))) + (用 Y1 產生的一個新分類器u(x))
依上面方法不斷重複進行,並不斷地做線性加總,最後就會得到一個 MSE 較小的預測結果。