iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
自我挑戰組

Python資料分析學習地圖系列 第 23

Day 23 : 集成式學習

接下來的要介紹一個很重要的模型觀念 - 集成式學習。俗話說的好,三個臭皮匠勝過一個諸葛亮,而在機器學習又是怎麼應用呢?讓我們一起探索吧!

集成式學習

集成式學習(Ensemble Learning),是將數個監督式學習的模型集合起來,可以達到更好的模型成效。俗話說的話,三個臭皮匠勝過一個諸葛亮,就是這個道理!

若使用單一個模型,可能會有過度擬合資料等缺點;但是我們可以集眾人之力量,雖然每個模型可能是一個弱的分類器,但是有多個模型並綜合評估,可以達到互補且加分的效果。

依照處理方式的不同,又可以分為 Bagging、Boosting、Blending、Stacking。

  • 資料面:用不同的訓練資料、同一種模型,進行多次的訓練綜合的預測結果
  • 特徵面:用同樣的資料、不同的模型,綜合的預測結果
面向 方法 例子
資料面 Bagging Random Forest
資料面 Boosting XGBoost、LightGBM、GBDT、AdaBoost、CatBoost
特徵面 Blending 不同模型進行投票
特徵面 Stacking 不同模型進行堆疊

1. Bagging

裝袋法(Bootstrap Aggregating, Bagging),把訓練資料重新採樣之後,就可以產生不同組的訓練資料。常見的例子有隨機森林。

少數服從多數,透過不同的子集合進行不同子模型訓練,最終由子模型進行投票。

  • 每次將資料抽後放回
  • 建立多個相互獨立的模型
  • 最後進行平均或是依照權重進行多數決投票

Bootstrap 解釋

自助法或拔靴法,是一種從給定訓練集中有放回的均勻抽樣,也就是說,每當選中一個樣本,它等可能地被再次選中並被再次添加到訓練集中。
參考wiki

2. Boosting

目標是為了要避免學習錯誤,讓自己往學正確的東西。根據預測錯誤的資料調整其權重值,讓模型下次能學習比較好。

迭代訓練某個模型,根據 i-1 輪預測錯誤得到的情況來修正第 i 輪訓練樣本的權重。

舉例來說,老師會在之前學生錯過的題目增加配分的比重,若再次寫錯代表沒有學好。

3. Blending

混合不同種的模型,進行投票(權重可以自己定)。

4. Stacking

將預測的結果當作特徵,可以當作另一個模型的輸入值,因此又可以訓練一個新模型,如此重複地手段可以稱之為堆疊(Stacking)。


上一篇
Day 22 : 決策樹
下一篇
Day 24 : 隨機森林
系列文
Python資料分析學習地圖30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言