2019年3月22日 星期五

[ML] 機器學習初學觀念 - Ensemble Learning


將多個訓練model合併, 投票或平均找出結果, 通常會比只有一個model效果較好, 可以使用bagging, boosting, stacking等方式


常用的esemble方法

stacking是將多個model結果當成下一個model的feature, 第二個model的訓練資料要跟第一層model的不一樣



隨機森林 (Bagging範例)

  • bagging + randomized feature set
  • 隨機切割訓練資料 + 隨機選取feature訓練成多的model
  • 最後使用多數決或平均整合成最後結果, 會需要較大運算資源
  • 隨機生成樹越多越好
  • 隨機選取feature數可以使用 根號feature數






AdaBoost & Gradient boostng(Boosting範例)
看全部的資料, 把每個分錯的資料增加權重, 再將每輪訓練出來的classifier進行加總成一個新的model, 目的是以前一個樹, 進行改良, 才往下一次走, 最後再整合起來


learing rate 把每一棵樹的prediction 在乘上一個小數字, 使得loss變大, 讓後面的樹容易修正

Gradient boosting vs random forest
一樣會產生很多樹, 但每棵樹都很簡單, 最後再整合起來
差別是random forest 每棵樹都是獨立不受彼此影響
gradient boosting根據前一棵樹結果進性改良, 只能一產生無法平行



  • 一般而言Boosting 比 Bagging準確些
  • XGBoost是改良版, 很常被使用

Ref:
  • 台灣人工智慧學校


沒有留言:

張貼留言